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 hedef seçicileri ve nasıl kullanıldıklarını anlamak için bunu okuyun: Minecraft wiki article <https://minecraft.gamepedia.com/Commands#Target_selectors>.

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.