Bukkit 插件语法错误,多个 类
Bukkit plugin Syntax error, multiple classes
我正在尝试使用多个 类 创建插件,但是当我在 Minecraft 中键入命令时,它显示命令语法错误消息(语法错误!只需键入 /ct create .).我认为这是某个地方的愚蠢错误,但我找不到它。
我的core.java:
public class Core extends JavaPlugin {
public ArrayList<Block> chests = new ArrayList<>();
public boolean createMode = false;
public void onEnabled() {
getCommand("ct").setExecutor(new Commands(this));
getServer().getPluginManager().registerEvents(new Listeners(this), this);
}
}
我的Commands.java:
public class Commands implements CommandExecutor {
private Core plugin;
public Commands(Core core) {
this.plugin = core;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("ct")) {
sender.sendMessage("lol");
if(args.length > 0) {
sender.sendMessage("hi");
if(args[0].equalsIgnoreCase("create")) {
plugin.createMode = true;
sender.sendMessage(ChatColor.GOLD + "[ChestTreasure] " + ChatColor.RESET + "Now rightclick the chest");
}
} else {
sender.sendMessage(ChatColor.GOLD + "[ChestTreasure] " + ChatColor.RESET + "Too few arguments!");
}
}
return false;
}
}
我的plugin.yml:
name: ChestTreasure
description: this plugin...
main: me.sudoman281.chestTreasure.Core
version: 1.0
author: sudoman281
commands:
ct:
description: ...
permission: ct.create
usage: Syntax error! Simply type /ct create.
您必须通过使用 完全相同的名称和方法 signature/return 类型 来正确覆盖该方法。为此,您必须执行以下操作:
- 根据 Bukkit API
,您的 onEnabled
方法应该是 onEnable
- 您应该始终使用
@Override
注释来表示您正在覆盖超类方法。 (可选但强烈推荐用于查找错误和约定。没有它也可以工作)
您的 onEnable
应如下所示:
@Override
public void onEnable() {
/* Do stuff when plugin starts */
}
我正在尝试使用多个 类 创建插件,但是当我在 Minecraft 中键入命令时,它显示命令语法错误消息(语法错误!只需键入 /ct create .).我认为这是某个地方的愚蠢错误,但我找不到它。
我的core.java:
public class Core extends JavaPlugin {
public ArrayList<Block> chests = new ArrayList<>();
public boolean createMode = false;
public void onEnabled() {
getCommand("ct").setExecutor(new Commands(this));
getServer().getPluginManager().registerEvents(new Listeners(this), this);
}
}
我的Commands.java:
public class Commands implements CommandExecutor {
private Core plugin;
public Commands(Core core) {
this.plugin = core;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("ct")) {
sender.sendMessage("lol");
if(args.length > 0) {
sender.sendMessage("hi");
if(args[0].equalsIgnoreCase("create")) {
plugin.createMode = true;
sender.sendMessage(ChatColor.GOLD + "[ChestTreasure] " + ChatColor.RESET + "Now rightclick the chest");
}
} else {
sender.sendMessage(ChatColor.GOLD + "[ChestTreasure] " + ChatColor.RESET + "Too few arguments!");
}
}
return false;
}
}
我的plugin.yml:
name: ChestTreasure
description: this plugin...
main: me.sudoman281.chestTreasure.Core
version: 1.0
author: sudoman281
commands:
ct:
description: ...
permission: ct.create
usage: Syntax error! Simply type /ct create.
您必须通过使用 完全相同的名称和方法 signature/return 类型 来正确覆盖该方法。为此,您必须执行以下操作:
- 根据 Bukkit API ,您的
- 您应该始终使用
@Override
注释来表示您正在覆盖超类方法。 (可选但强烈推荐用于查找错误和约定。没有它也可以工作)
onEnabled
方法应该是 onEnable
您的 onEnable
应如下所示:
@Override
public void onEnable() {
/* Do stuff when plugin starts */
}