首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spigot/Bukkit插件未显示

Spigot/Bukkit插件未显示
EN

Stack Overflow用户
提问于 2016-05-26 22:32:05
回答 3查看 1.1K关注 0票数 0

所以这是我的代码:

http://pastebin.com/26vTQqrZ

这是我的plugin.yml:

名称:测试插件版本: 1.0.0 main: me.TechnicPR.Main

命令:卡梅隆描述:说世界上最好的开发人员!

但由于某些原因,当我执行/cameron时,它会显示未知的命令,而当我执行/pl时,它什么也不显示。

EN

回答 3

Stack Overflow用户

发布于 2016-05-27 22:17:12

您必须缩进您的信息。e.g

代码语言:javascript
复制
name: Name
version: 1.0
main: my.main.class
 commands:
  example:
   description: Example command

如果只是StackOverflow,请在评论中说明。还有,请把你的日志也贴出来。

票数 1
EN

Stack Overflow用户

发布于 2016-05-29 11:19:41

好的,首先你有一些主要的问题。我不知道你是自学还是使用教程,但我建议使用these教程。因此,我将从您的plugin.yml文件开始,因为它的设置非常具体。它应该看起来完全像这样:

代码语言:javascript
复制
name: TestingPlugin
version: 1.0.0
main: me.TechnicPR.Main
commands:
    cameron:
        description: Says the best developer in the world!
        usage: /<command>

这些部分可以按任何顺序排列;例如,名称不必放在第一位。但是每个部分都必须是小写的。如果它的大写形式与您的"Commands:“相同,那么它将抛出一个错误。此外,您应该始终在每个命令中提供"usage“部分。记住不要使用制表符;你必须使用空格,否则也会抛出一个错误。

至于你的代码,我首先强烈建议你不要把你的onCommand方法放在你的主类中。主类应该只处理文件的加载和保存,以及onEnable/onDisable方法。把插件放在你的主类中,很快就会变得杂乱无章,并使简单的事情复杂化。

但是,无论您是否只使用主类,您仍然需要注册您的命令。在您的onCommand方法之上创建一个新方法,称为"onEnable()“。在其中,使用

代码语言:javascript
复制
getCommand("Cameron").setExecutor(this, this);

它应该看起来像这样:

代码语言:javascript
复制
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才能获得正确的结果。这并不是应该纠正的一切,但您似乎对此有些陌生,我不想看起来很粗暴。;)希望这能有所帮助!如果您想要或需要更多命令帮助,上面提到的链接将为您提供所需的任何信息。向那家伙索要任何教程,他都会尽快完成的。

票数 1
EN

Stack Overflow用户

发布于 2016-05-28 02:37:01

可能是您没有为命令设置executor类,我不确定它是否适用于JavaPlugin类。尝试将此代码添加到您的onEnable,getCommand("Cameron").setExecutor(this);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37463845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档