Spigot / Bukkit插件没有显示出来

时间:2016-05-26 14:32:05

标签: bukkit

所以这是我的代码:

http://pastebin.com/26vTQqrZ

这是我的plugin.yml:

name:Testing Plugin 版本:1.0.0 主要:me.TechnicPR.Main

命令:   卡梅伦       描述:说世界上最好的开发者!

但是出于某种原因,当我做/卡梅隆时,它说未知的命令,当我做/它什么都不显示时。

3 个答案:

答案 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