UID872性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2020-3-29最后登录1970-1-1
|
楼主 |
发表于 2022-2-24 20:01:27|显示全部楼层 IP:河北省
| 开发者-注册指令 |
|
创建你的命令
如果你想要给你的addon添加插件指令,比如: /bw mycmd ,请继续阅读本章:
1. 新建一个继承了:com.andrei1058.bedwars.command.SubCommand的类:
- public class TutorialCommand extends SubCommand {
-
- //提供你的命令的有关信息
- public TutorialCommand(ParentCommand parent, String name) {
- super(parent, name);
- }
-
- @Override
- //执行你的命令:(和Bukkit一样,这也是一个boolean方法)
- public boolean execute(String[] args, CommandSender s) {
- return false;
- }
- }
复制代码 2. 接下来你就需要提供一些你的指令的信息:
- public TutorialCommand(ParentCommand parent, String name) {
- super(parent, name);
- // 如果你的指令是提供给op使用的,下面项请开启:
- setOpCommand(true); //否则所有玩家都能使用
- //你想让它在/bw列表里面被看见吗?
- //只有op可以看见指令列表
- //因为玩家收到的是从信息文件里面获取的一段静态的
- //如果你把这个设置成true,你需要同时填写:setDisplayInfo()
- showInList(true);
- //这是在指令 /bw里面的介绍
- //它需要你提供一个文本的元件(其实就是hovertext),如果你不知道怎么使用
- //你可以用这个方法: com.andrei1058.bedwars.arena.Misc.msgHoverClick()
- setDisplayInfo(Misc.msgHoverClick("description", "hover description","run this on click", ClickEvent.Action.RUN_COMMAND));
- //这个值决定了指令在 /bw列表里面的顺序
- //最高为20
- //越小,则在列表的越上面,反之亦然
- setPriority(14);
-
- //如果这个指令是用于地图生成的,保持开启
- setArenaSetupCommand(false);
- }
复制代码 3. 在你处理你的代码之前加上:
- @Override
- public boolean execute(String[] args, CommandSender s) {
- //this will send "cmd not found" msg to the console
- if (!(s instanceof Player)) return false;
-
- Player p = (Player) s;
-
- if (args[0].equalsIgnoreCase("apple")){
- p.getInventory().addItem(new ItemStack(Material.APPLE));
- }
-
- //如果这个指令成功执行了,return值应为true(和Bukkit一样!)
- //重申一遍,如果return为false,将会返回一个“未知命令”的标识
- return true;
- }
复制代码 4. 注册你的指令!
你只需要初始化这个类
- @Override
- public void onEnable() {
- //如果插件(BedWar1058)不存在,就卸载你的插件
- if (Bukkit.getPluginManager().isPluginEnabled("BedWars1058")) {
- getLogger().severe("BedWars1058 was not found. Disabling...");//其实这个你也可以改成别的= =
- setEnabled(false);
- return;
- }
-
- //你的指令是: /bw tutorial apple
- //com.andrei1058.bedwars.commands.main.MainCommand
- BedWars bedwarsAPI = Bukkit.getServicesManager().getRegistration(BedWars.class).getProvider();
- new TutorialCommand(bedwarsAPI.getBedWarsCommand(), "tutorial");
- }
复制代码 |
|
34#2022-2-24 20:01:27回复(0)收起回复 |