Alt komutlar

: Javadoc: CommandSpec oluşturucu şu şekilde hiyerarşik komut yapılarını desteklemektedir:

  • `` / mail`` (üst komut)

    • `` / mail`` (alt komut)

    • `` / mail read`` `(alt komut)

Her alt komut ayrı bir CommandSpec tir ve düzenli bir komutun olduğu gibi oluşturulabilir.

import org.spongepowered.api.text.Text;
import org.spongepowered.api.command.spec.CommandSpec;

// /mail read
CommandSpec readCmd = CommandSpec.builder()
    .permission("myplugin.mail.read")
    .description(Text.of("Read your inbox"))
    .executor(...)
    .build();

// /mail send
CommandSpec sendCmd = CommandSpec.builder()
    .permission("myplugin.mail.send")
    .description(Text.of("Send a mail"))
    .arguments(...)
    .executor(...)
    .build();

Komut hizmeti üzerine kaydedilmek yerine alt komutlar, :javadoc:`CommandSpec.Builder#child(CommandCallable, String…)`metodu kullanılarak ana komutları üzerinde kaydedilirler. Bir takma ad listesiyle kaydedilirler. Sunulan ilk takma ad, birincil olandır ve kullanım mesajında görünecektir.

import org.spongepowered.api.Sponge;

CommandSpec mailCommandSpec = CommandSpec.builder()
    .permission("myplugin.mail")
    .description(Text.of("Send and receive mails"))
    .child(readCmd, "read", "r", "inbox")
    .child(sendCmd, "send", "s", "write")
    .build();

Sponge.getCommandManager().register(plugin, mailCommandSpec, "mail", "email");

Not

Eğer bir :javadoc: ‘CommandExecutor’ üst komut için ayarlandı ise, değişkenler alt komut adlarından biriyle eşleşmezse bir yedek olarak kullanılır. Bir yürütmenin ayarlanması zorunlu değildir.