之所以隔了这么长时间才写这篇文章,是因为这几天有事,加上最近有一个编程问题困扰了我好久,我便放弃了开发插件,想着出于责任,还是把文章写完吧。即使自己写教程,也不敢自称老师,我还是学生,在学习java这条路上,我一直都是学生,有问题一起切磋交流。
目录
命令基础
onCommand()方法
现在你已经知道如何注册一个事件并做出响应,但是如果你只是想要在命令输入之后做出响应呢? 你可以使用onCommand()方法 这个代码的作用是当玩家输入“/”时,监听该操作并执行相关语句"/" . 举个例子来说.输入 "/do something" 将会执行onCommand()方法 此种情况下,因为没有特定的行为被编程,所以并不会发生任何事情。 请避免使用和bukkit所提供的指令重名的指令 例如.指令"give"已经被好几个插件使用了, 如果你执行了另外一个"give"指令, 你的插件将会和这些插件冲突。 你必须在插件的"plugin.yml"注册你的指令 否则这个方法将不会被触发。 onCommand()方法必须返回一个布尔值(true或false)。 如果返回值是true,你不会看到什么明显的事情发生。 但如果返回值是false,则会返回你的plugin.yml里的'usage:property'然后发送给命令使用者.当使用
onCommand
方法时, 你需要填写4个参数.CommandSender sender
- 发送命令的对象Command cmd
- 被执行的指令
String commandLabel
- 被执行指令的别名
String[] args
- 该指令的自变量数组。例如.指令 /hello abc def 中, abc 会被存放进args[0]中, def 被存放进args[1]中。
代码示例:
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
// 如果这里注册了多条命令则使用
if (command.equalsIgnoreCase("basic")) {
// 你要写的代码
return true;
} //如果以上内容成功执行,则返回true
// 这里的return false则是返回指令的usage的信息(如果有)
// 如果执行失败,则返回false.
return false;
}
和之前一样,上面必须加:
import org.bukkit.command.Command; import org.bukkit.command.CommandSender;
其中equalsIgnoreCase是忽略大小写,除了这里要这这个代码,还要在plugin.yml写入你的指令:
commands: basic: aliases: b description: This is a demo command. usage: /<command> [player] permission: <plugin name>.basic permission-message: You don't have <permission>
basic
- 指令名称- aliases - 指令别名