指令標註與分支架構

在開始本教程之前,請先細閱快速開始

指令標註

完整的指令標註參數如下

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Commander {

    String name(); //名稱 (必填)

    String description(); //介紹 (必填)

    boolean playerOnly() default false; // 僅限玩家

    String permission() default ""; // 權限

    String[] alias() default {}; // 別名

}

playerOnly 並不會自動把 commandSender 轉換成 玩家類別,你仍然需要手動進行形態轉換。

分支架構

在本框架,創建分支指令可謂極其簡單。在大型指令系統下,本框架有助你細分各個支點的功能。

public class TesterRegistry implements ComponentsRegistry {

    // 本框架允許你無限創建分支指令。
    @Override
    public void registerCommand(CommandRegistry<CommandSender> commandRegistry) {
        commandRegistry.command(TestCommand.class, c -> {

            c.command(TestSayCommand.class);

            c.command(TestCalculateCommand.class, cc -> {

                cc.command(TestCalculateAddCommand.class);

                cc.command(TestCalculateMinusCommand.class);

            });

            c.command(TestConfigCommand.class, cc -> {

                cc.command(TestConfigCheckCommand.class);

                cc.command(TestConfigEditCommand.class);

                cc.command(TestConfigReloadCommand.class);

            });

            c.command(TestServiceCommand.class, cc -> {

                cc.command(TestServiceByeCommand.class);

                cc.command(TestServiceHelloCommand.class);

            });

            c.command(TestSchedulerCommand.class, cc ->{

                cc.command(TestSchedulerOneCommand.class);

                cc.command(TestSchedulerTwoCommand.class);

            });
        });
    }

    @Override
    public void registerListeners(ListenerRegistry<Listener> listenerRegistry) {
    }


}

最后更新于