从零开始教你编写Spigot插件(三)

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

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("你必须时一个玩家");  //所要执行的内容
}

再次尝试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4h4rQkJS-1670736339878)(https://cdn.jsdelivr.net/gh/Mallor-WYB/cdn/img/1596859102463.png)]
好了这一期就到这里,感谢您认真看完,下期再见!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值