Metin oluşturma
Metin API’sı, sohbet mesajlarında oyunculara gönderilebilen biçimlendirilmiş metin oluşturmak için kullanılır ve kitaplar ve işaretler gibi yerlerde de kullanılabilir.
Biçimlendirilmemiş Metin
Çoğu zaman, tek ihtiyacınız olan biçimlenmemiş metindir. Biçimlenmemiş metin, metin oluşturucunun kullanımını gerektirmez, oluşturması en kolay metin formlarındandır.
Örnek:
import org.spongepowered.api.text.Text;
Text unformattedText = Text.of("Hey! This is unformatted text!");
Aşağıda gösterilan bu kod alıntısı, renksiz, biçimlenmemiş ve text actions ile ayarlanmış metin dönecektir.
Metin oluşturucu
Yazı geliştirici arayüzler, “blok-geliştirme” tarzında biçimlenmiş metinlerin oluşmasını sağlar.
Tüyo
Yazılım tasarımındaki, geliştirici modelinin amacını anlamak için bunu okuyun: Wikipedia article <https://en.wikipedia.org/wiki/Builder_pattern>.
Renkler
Metin oluşturucunun bir kullanımı, aşağıda gösterildiği gibi metne renk eklemesidir.
Örnek: renkli metin
import org.spongepowered.api.text.format.TextColors;
Text coloredText = Text.builder("Woot! Golden text is golden.").color(TextColors.GOLD).build();
TextColors sınıfı ile belirtilmiş herhangi bir renk , metin renklendirilirken kullanılabilir. Farklı renklerde ek metinler eklenerek, çok sayıda renk metin içinde kullanılabilir:
Örnek: Çok renkli Metin
Text multiColoredText = Text.builder("Sponges are ").color(TextColors.YELLOW).append(
Text.builder("invincible!").color(TextColors.RED).build()).build();
Stil
Geliştirici aynı zamanda metine, altını çizme ve italik yazma gibi stiller eklemek için de kullanılabilir.
Örnek: Stillendirilmiş Yazı
import org.spongepowered.api.text.format.TextStyles;
Text styledText = Text.builder("Yay! Styled text!").style(TextStyles.ITALIC).build();
Renklerle olduğu gibi, birden fazla stil zincirleme bağlanarak, ayrı stillendirilmiş textlerle kullanılabilir.
Örnek: Çok stilli Metin
Text multiStyledText = Text.builder("I'm italicized! ").style(TextStyles.ITALIC)
.append(Text.builder("I'm bold!").style(TextStyles.BOLD).build()).build();
Boyama ve Şekillendirme Kısayolu
Text#of(Object…) metodu, metininize çok daha kısa şekilde renk eklemek ve onu stillendirmek için kolay bir yol sağlar.
Örnek: Renk & Tarz Kısayolları
Text colorAndStyleText = Text.of(TextColors.RED, TextStyles.ITALIC, "Shortcuts for the win!");
Metin eylemleri
Metin Geliştirici aynı zamanda metinleriniz için aksiyonlar yaratma yeteneği sunar. Her aksiyon TextActions sınıfı içinde belirtilip, metinler için aksiyon oluştururken kullanılır. Aşağıdaki metot, metin aksiyonlarının neler yapabileceğinin küçük bir örneğidir.
Örnek: Hareketli Metin
import org.spongepowered.api.text.action.TextActions;
Text clickableText = Text.builder("Click here!").onClick(TextActions.runCommand("tell Spongesquad I'm ready!")).build();
Yukarıdaki metotta, oyuncular belirtilmiş komutu çalıştırmak için “Buraya Tıkla!” yazısını tıklayabilirler.
Not
TextActions#changePage(int) gibi bazı metin aksiyonları, yalnızca kitap öğeleriyle kullanılabilir.
Tüyo
Aynı renkler gibi, birden fazla aksiyon metinlere uygulanabilir. Geliştirici Model Arayüzü sayesinde, metin aksiyonları renklerle birlikte kullanılabilir de.
Seçiciler
Hedef seçiciler, oyunları veya belli kriterlere uyan varlıkları hedef almak için kullanılır. Hedef seçiciler küçük eklentiler yaratırken kullanışlıdır ama çok geniş aralıkta uygulamaları vardır.
Tüyo
Minecraft’ta hangi seçicilerin olduğunu ve onları nasıl kullanabileceğinizi öğrenmek için, şu `Minecraft wiki makalesini<http://minecraft.gamepedia.com/Commands#Target_selectors>`__ okuyun.
Metindeki seçicileri kullanmak için, Selector.Builder arayüzünü kullanmalısınız. Bu aşağıdaki örnekte resmedilmiştir.
Örnek: Seçici-üretilmiş Metin
import org.spongepowered.api.text.selector.Selector;
Text adventurers = Text.builder("These players are in adventure mode: ").append(
Text.of(Selector.parse("@a[m=2]"))
).build();
Bu örnekte, hedef seçici @a[m=2]
, macera modundaki her çevrimiçi oyuncuyu hedef alıyor. Bu metod çağırıldığında, macera modundaki her çevrimiçi oyuncunun kullanıcı adının olduğu bir Metin dönecek.