使用多个类命令,命令不起作用?

时间:2014-12-01 23:32:53

标签: java bukkit

希望你们能帮助我解决这个问题。我是Java的新手,也是BukkitAPI的新手。我只是继续尝试项目,然后在无法解决问题的时候做大量的研究,我学得最好。

我四处看看,我无法弄清楚为什么这不起作用。我正在尝试制作插件,并且正在利用多个类来进行组织和清洁。我正在键入应该输入的所有内容,并且已经离开了this tutorial。它有点旧,所以有些东西可能已经改变了。问题是,当我运行命令时,我没有得到任何错误,但它没有做任何事情。它说“Alj23在控制台中发出了服务器命令:/ hello(这是我的命令临时,直到我修复它),但没有任何反应。聊天中没有消息,没有任何消息。控制台没有错误。假设发送播放器谁给这个命令发了一条消息,说“你好!”(现在也是暂时的。)我只是不知道它为什么会起作用。

我还在学习,所以我最有可能做出一些明显错误的事情。我也可能会遵循不良做法或做不需要的事情,所以如果是这样的话,如果你能指出它们就会很棒。

我的主要课程:

package me.Alj23.RPGClasses;

import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class RPGClassesMain extends JavaPlugin implements Listener

{
public void OnEnable()
{
    this.getCommand("hello").setExecutor(new WarriorInfo(this));
}

public void OnDisable()
{

}

执行命令代码的类:

package me.Alj23.RPGClasses;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class WarriorInfo implements CommandExecutor
{
RPGClassesMain plugin;

public WarriorInfo (RPGClassesMain passedPlugin)
{
    this.plugin = passedPlugin;
}

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,String[] arg3) 
{
    Player player = (Player) sender; 
    player.sendMessage("Hello there!");


return false
}

}

Plugin.yml:

 name: RPGClasses
 version: 1.0
 main: me.Alj23.RPGClasses.RPGClassesMain
 description: Choose beyond a wide scope of classes!
 commands:
 hello:
 description: placeholder!

1 个答案:

答案 0 :(得分:4)

查看OnEnableOnDisable方法。根据Java约定(和Bukkit API),这些方法应分别命名为onEnableonDisable。这种拼写错误导致你的命令永远不会首先注册。

此外,正确的缩进是YAML文件的必须。它应该是这样的:

name: RPGClasses
version: 1.0
main: me.Alj23.RPGClasses.RPGClassesMain
description: Choose beyond a wide scope of classes!
commands:
  hello:
    description: placeholder!