上一期我们讲解了监听器,这一期我们讲解指令
这个可能有点不太理解,所以请认真看。

onCommand()

打开我们的idea,然后在主类里写一个onCommand方法下面时代码

@Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        return true;
    }

这个应该很简单吧,我就不讲解了,不明白的私聊我,或者在下面评论。

注册

我们知道监听器主类都需要注册,命令也同样需要,不过这个有点和他们不一样,这个需要在plugin.yml里面,

commands:
   cmd:
      description: 这是一个命令.

cmd时你想要的命令,你可以替换成你的,description是对命令的介绍,

开始写命令

回到 onCommand().
首先我们要从sender这获取到他使用的是什么命令.
Command类下的getName()可以直接获取到这条命令的名称.

 String cmd = null;
        cmd = command.getName();
        if (cmd.equalsIgnoreCase("cmd")) {
            sender.sendMessage("Hello World");
        }

在onCommand方法里写这个命令
这个意思时如果输入cmd,那么将会发送Hello World。
这个应该时你的全部代码

 @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,
在下面写入我们的代码

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方法中写入

Bukkit.getPluginCommand("cmd").setExecutor(new cmd());

再次尝试


2.我们的指令不一定需要cmd,所以还需要玩家。下面我来教大家怎么判断玩家
我们可以用if-----else
只需要加入

if (sender instanceof Player) {
sender.sendMessage("Hello World"); //所要执行的内容
}else{
sender.sendMessage("你必须时一个玩家");  //所要执行的内容
}

再次尝试


好了这一期就到这里,感谢您认真看完,下期再见!!!