所以这是我的代码:
这是我的plugin.yml:
name:Testing Plugin 版本:1.0.0 主要:me.TechnicPR.Main
命令: 卡梅伦 描述:说世界上最好的开发者!
但是出于某种原因,当我做/卡梅隆时,它说未知的命令,当我做/它什么都不显示时。
答案 0 :(得分:1)
你必须缩进你的信息。 e.g
name: Name
version: 1.0
main: my.main.class
commands:
example:
description: Example command
如果它只是StackOverflow,请在评论中说出来。 并且请发布您的日志。
答案 1 :(得分:1)
好的,首先你有一些重大问题。我不知道你是在教自己还是使用教程,但我建议你使用these教程。 所以我将从你的plugin.yml文件开始,因为它的设置非常具体。它看起来应该是这样的:
name: TestingPlugin
version: 1.0.0
main: me.TechnicPR.Main
commands:
cameron:
description: Says the best developer in the world!
usage: /<command>
这些部分可以按任何顺序排列;例如,名称不必先行。但每个部分必须是小写的。如果它是“你命令:”大写,那么它将抛出一个错误。此外,您应始终在每个命令中提供“用法”部分。切记不要使用标签;你必须使用空格,否则它也会引发错误。
至于你的代码,我首先想强烈建议你不要把你的onCommand方法放在你的主类中。你的主类应该只处理文件加载和保存,以及你的onEnable / onDisable方法。在主类中插入插件会很快变得混乱,并使简单的事情复杂化。
但是,无论您是否只使用Main类,您仍需要注册命令。在onCommand方法之上创建一个名为“onEnable()”的新方法。在里面,使用
getCommand("Cameron").setExecutor(this, this);
看起来应该是这样的:
public void onEnable(){
getCommand("Cameron").setExecutor(this, this);
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(cmd.getName().equalsIgnoreCase("Cameron")){
sender.sendMessage("Hello!");
}
return true;
}
请注意,onCommand返回true。您需要将其设置为true才能获得正确的结果。 这不是应该纠正的一切,但你似乎有点新鲜,我不想看起来很苛刻。 ;)希望这有帮助! 如果您需要或需要更多帮助来制作命令,上面提到的链接将为您提供所需的任何信息。向那个人请求任何教程,他会尽快做到。
答案 2 :(得分:0)
可能是您没有为命令设置执行程序类,我不确定它是否适用于JavaPlugin类。尝试将此添加到您的onEnable,
JOIN