出于某种原因,当我使用 @EventHandler
注释执行某些操作时,我收到了错误。我正在使用 Bukkit 1.7.9。这是我的代码的一部分:
@EventHandler
public void onSignChange(SignChangeEvent event, CommandSender sender, Command cmd, String commandLabel){
Player player = event.getPlayer();
if(player.hasPermission("CustomJoinSigns.Create")) {
if(event.getLine(0).equalsIgnoreCase("Minigame")) {
player.sendMessage(ChatColor.BLUE + "Please type in the minigame name:");
player.sendMessage(ChatColor.GOLD + "1)" + ChatColor.RED + "Do " + ChatColor.YELLOW + "/cjs setminigame [Minigame]");
player.sendMessage(ChatColor.GOLD + "2)" + ChatColor.RED + "Do " + ChatColor.YELLOW + "/cjs cancel");
if(commandLabel.equalsIgnoreCase("cjs setminigame" + minvar));
player.sendMessage("Test Successful");
}
}
}
这是我的错误日志:
ERROR CustomJoinSigns v1 attempted to register an invalid EventHandler method signature
"public void me.pvpcraftnetwork.customjoinsigns.Main.onSignChange(org.bukkit.event.block.SignChangeEvent,org.bukkit.command.CommandSender,org.bukkit.command.Command,java.lang.String)"
in class me.pvpcraftnetwork.customjoinsigns.Main
对我做错了什么有什么建议吗?
最佳答案
您的 Listener
方法中只能有一个参数。它应该看起来像这样:
@EventHandler
public void onSignChange(SignChangeEvent event){
Player player = event.getPlayer();
if(player.hasPermission("CustomJoinSigns.Create")) {
if(event.getLine(0).equalsIgnoreCase("Minigame")) {
player.sendMessage(ChatColor.BLUE + "Please type in the minigame name:");
player.sendMessage(ChatColor.GOLD + "1)" + ChatColor.RED + "Do " + ChatColor.YELLOW + "/cjs setminigame [Minigame]");
player.sendMessage(ChatColor.GOLD + "2)" + ChatColor.RED + "Do " + ChatColor.YELLOW + "/cjs cancel");
if(commandLabel.equalsIgnoreCase("cjs setminigame" + minvar));
player.sendMessage("Test Successful");
}
}
}
参数CommandSender sender、Command cmd、String commandLabel
用于命令中...所以也许您认为注册事件就像监听玩家何时运行命令?
同样,所有 @EventHandler
方法只能有一个参数,即您正在监听的事件。因此,如果您正在监听 PlayerJoinEvent
,您将使用:
@EventHandler
public void playerJoin(PlayerJoinEvent event){
//code here
}
关于java - Bukkit - EventHandler 方法出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665018/