上一期我们讲解了监听器,这一期我们讲解指令 这个可能有点不太理解,所以请认真看。
onCommand()
打开我们的idea,然后在主类里写一个onCommand方法下面时代码
1 2 3 4
| @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { return true; }
|
这个应该很简单吧,我就不讲解了,不明白的私聊我,或者在下面评论。
注册
我们知道监听器主类都需要注册,命令也同样需要,不过这个有点和他们不一样,这个需要在plugin.yml里面,
1 2 3
| commands: cmd: description: 这是一个命令.
|
cmd时你想要的命令,你可以替换成你的,description是对命令的介绍,
开始写命令
回到 onCommand(). 首先我们要从sender这获取到他使用的是什么命令. Command类下的getName()可以直接获取到这条命令的名称.
1 2 3 4 5
| String cmd = null; cmd = command.getName(); if (cmd.equalsIgnoreCase("cmd")) { sender.sendMessage("Hello World"); }
|
在onCommand方法里写这个命令 这个意思时如果输入cmd,那么将会发送Hello World。 这个应该时你的全部代码
1 2 3 4 5 6 7 8
| @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { String cmd = null; cmd = command.getName(); if (cmd.equalsIgnoreCase("cmd")) { sender.sendMessage("Hello World"); } return true;
|
尝试
输入help+插件名字,就可以看到插件的命令。
拓展
1.我们把命令写在主类有点不方便,所以我们要新建一个类。 然后给这个类implements CommandExecutor, 在下面写入我们的代码
1 2 3 4 5 6 7 8 9 10
| public class cmd implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { String cmd = null; cmd = command.getName(); if (cmd.equalsIgnoreCase("cmd")) { sender.sendMessage("Hello World"); } return true; } }
|
这是全部代码 然后回到主类注册,记得把主类之前的删除,然后 在onEnable方法中写入
1
| Bukkit.getPluginCommand("cmd").setExecutor(new cmd());
|
再次尝试
2.我们的指令不一定需要cmd,所以还需要玩家。下面我来教大家怎么判断玩家 我们可以用if—–else 只需要加入
1 2 3 4 5
| if (sender instanceof Player) { sender.sendMessage("Hello World"); }else{ sender.sendMessage("你必须时一个玩家"); }
|
再次尝试
好了这一期就到这里,感谢您认真看完,下期再见!!!