我的世界Bukkit服务器插件开发教程(二)命令

二、命令

这一章节,我们会讲讲怎么开发一个可以输入指令的插件
首先你需要知道指令(命令)
都应该用过cmd吧,比如/ping/pause/cls等,这些就是指令
那么怎么自己开发一个可以输入指令的插件呢?

编写教程

老规矩,照样继承JavaPlugin,来重写一下加载和卸载两个方法

public class MyCommand extends JavaPlugin {
	public void onEnable() {
		say("插件已加载");
	}
	
	public void onDisable() {
		say("插件已卸载");
	}

	public void say(String s) {
		CommandSender sender = Bukkit.getConsoleSender();
		sender.sendMessage(s);
	}
}

那么此时需要添加一个新成员:onCommand
也需要重写一下,参数不变(废话)

public boolean onCommand(CommandSender sender, Command cmd, String label, String args[]) {
	//...
	return true;	
}
  • CommandSender:输入指令的玩家
  • Command:执行的命令
  • label:被执行命令的别名
  • args:命令参数,如/ping s,s就是参数,args[0]就是s

注意看重载的方法是布尔类型的,那么一定有返回值true或者是false
如果返回值是false会把plugin.yml提示信息发送给玩家
现在我想输入一个命令test,并想返回一条消息:Hello World!

if(label.equalsIgnoreCase("test"))
{
	return true;
}

这个if是判断玩家输入的是否是/test(不区分大小写)
如果是,则:

sender.sendMessage("Hello World!");

如果不是,则返回false


如果你还想让输入这个指令的玩家有一定的权限,则if中需要改为

if(label.equalsIgnoreCase("test")&&sender.hasPermission("test.me"))

另外的权限:
1.如果想判断玩家是不是管理员可以这么写:

//是不是管理员
if(sender.isOp())

2.判断输入此命令的是控制台还是游戏中的玩家

Player p = (Player)sender;
//是不是玩家
if(p instanceof Player) {
	//...
}

至此我们就写完了

plugin.yml

等等你忘了!plugin.yml还需加一些什么东西!
新加如下代码:

commands: 
  test: 
    #描述这个命令
    description: My first command.
    #用法
    usage: /<command>
    #执行此命令的人所需的权限
    permission: test.me
    #没有权限的提示消息
    permission-message: 你不能执行它. 

每个冒号后面一定要跟着一个空格
分级的话,要多加两个空格


上一篇:我的世界Bukkit服务器插件开发教程(一)第一个插件
下一篇:我的世界Bukkit服务器插件开发教程(三)容器和物品堆

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值