1.創建指令名稱
打開plugin.yml文件。
這邊內容聽說只能中文。
加入開頭的指令名稱,看你想怎命名。
在使用時就會像是這樣/backhome。
description 就指令的說明,隨便打。
aliases指令的縮寫,可以用/bh來代表/backhome這指令。
2.創建指令運行類
通常我會創建個文件夾,來放有關指令的東西。
右鍵選擇backhome文件夾->選擇新建->軟體包。
在打上你認為代表指令的英文,例如command,輸入完後Enter確定。
在右鍵點擊command文件夾->選擇新建->選擇Java類。
再輸入你想要的運行指令的東東名稱,例如MainCommand。
在打開剛剛創的運行指令的東東,輸入以下代碼。
public class MainCommand implements CommandExecutor {
@Override return false; |
輸入完後會有紅色的錯誤字,只要點擊紅色字,在案Alt+Enter。
就會幫你把需要的地方補完,這些東西是紅紅字東東的路徑。
再來是在插件的進入地方,加入對這指令運行的監聽。
打開BackHome文件,在插件啟動的地方加入這段。
getPluginCommand裡面就是填你在plugins所命名的指令名稱。
setExecutor則是填你的命令運行的文件,會用new MainCommand()是因為要創建一個新的,因為原本他不存在。
現在開始編寫一個測試指令。
打開MainCommand,看到sender和 args。
sender代表命列的運行者,可以是控制台或任何玩家。
args代表/backhome後面的指令值。
例如/backhome set 1, args[0] 就會代表set , args[1] 就會代表1,以此類推。
請輸入以下代碼,來測試指令是否有效。
if(args.length == 1){ if(args[0].equals(“test”)){ BackHome.backHome.getLogger().info(testMessage); if(sender instanceof Player){ Player player = (Player) sender; player.sendMessage(testMessage); } } } |
前面加兩條/就會變成註解。
3.創建指令提示補全
在command文件夾下創建一個TabCommand,並輸入以下代碼。
public class TabCommand implements TabCompleter { @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args){ List<String> commandList = new ArrayList<>(); if(args.length == 1){ commandList.add(“test”); } return commandList; } } |
以下是基本內容。
完成的內容
命令補全也是跟命令運行一樣,要加入監聽。
Bukkit.getPluginCommand(“backhome”).setTabCompleter(new TabCommand());
3.指令的測試
在控制台運行的結果
因為剛剛有創建命令補全,到第1個位置就會顯示你要提示的命令。
運行結果