ELDependenci
目前版本 (v2.0)
目前版本 (v2.0)
  • 歡迎使用 ELDependenci
  • 與原版開發方式的比較
  • 快速開始
  • 進階教程
    • 指令標註與分支架構
    • 指令參數解析
      • 創建自定義參數
      • 多形態參數
    • 注入自定義服務
      • 注入服務提供器
      • 注入多重實作方式
        • 透過辨識標註進行注入
      • 覆蓋原有服務
    • 文件配置操作
      • 訊息文件配置
      • 文件池配置
      • 多語言文件
  • 其他參考
    • 框架內置 API Services
      • 日誌輸出
      • 計時器 (僅限 Bukkit)
      • 物品編輯 (僅限 Bukkit)
      • 訊息編輯
      • 文件池服務
    • 框架內置指令參數解析
    • 版本更新
      • v2.0.3
      • v2.0.2
      • v2.0.1
      • v2.0
      • v0.1.7
      • v0.1.6
      • v0.1.5
      • v0.1.4
      • v0.1.3
      • v0.1.2
      • v0.1.1
      • v0.0.8
      • v0.0.7
      • v0.0.6
      • v0.0.5
      • v0.0.4
      • v0.0.3
  • 以此框架為延伸的擴充插件
    • 官方擴充插件列表
    • 製作你的第一個擴充插件
      • 擴充插件範例詳解
      • 自定義安裝
  • 源碼
  • 下載
  • Javadocs 文件
  • 聯絡我們
    • Discord
由 GitBook 提供支持
在本页
  1. 進階教程

指令標註與分支架構

上一页快速開始下一页指令參數解析

最后更新于3年前

CtrlK
  • 指令標註
  • 分支架構

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

指令標註

完整的指令標註參數如下

@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) {
    }


}