Java Bukkit-EventHandler方法出错
由于某种原因,我在使用Java Bukkit-EventHandler方法出错,java,bukkit,eventhandler,Java,Bukkit,Eventhandler,由于某种原因,我在使用@EventHandler注释执行某些操作时收到了一个错误。我用的是Bukkit 1.7.9。以下是我的代码部分: @EventHandler public void onSignChange(SignChangeEvent event, CommandSender sender, Command cmd, String commandLabel){ Player player = event.getPlayer(); if(player.hasPermis
@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
关于我做错了什么有什么建议吗?您的
侦听器方法中只能有一个参数。应该是这样的:
@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、Command cmd、String commandLabel
用于命令中。。。所以你可能认为注册事件就像监听玩家运行命令一样
同样,所有@EventHandler
方法只能有一个参数,即您正在侦听的事件。因此,如果您正在收听PlayerJoinEvent
,您将使用:
@EventHandler
public void playerJoin(PlayerJoinEvent event){
//code here
}
在侦听器方法中只能有一个参数。应该是这样的:
@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、Command cmd、String commandLabel
用于命令中。。。所以你可能认为注册事件就像监听玩家运行命令一样
同样,所有@EventHandler
方法只能有一个参数,即您正在侦听的事件。因此,如果您正在收听PlayerJoinEvent
,您将使用:
@EventHandler
public void playerJoin(PlayerJoinEvent event){
//code here
}
在侦听器方法中只能有一个参数。应该是这样的:
@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、Command cmd、String commandLabel
用于命令中。。。所以你可能认为注册事件就像监听玩家运行命令一样
同样,所有@EventHandler
方法只能有一个参数,即您正在侦听的事件。因此,如果您正在收听PlayerJoinEvent
,您将使用:
@EventHandler
public void playerJoin(PlayerJoinEvent event){
//code here
}
在侦听器方法中只能有一个参数。应该是这样的:
@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、Command cmd、String commandLabel
用于命令中。。。所以你可能认为注册事件就像监听玩家运行命令一样
同样,所有@EventHandler
方法只能有一个参数,即您正在侦听的事件。因此,如果您正在收听PlayerJoinEvent
,您将使用:
@EventHandler
public void playerJoin(PlayerJoinEvent event){
//code here
}
谢谢你的帮助,但我决定通过命令来实现。这对我来说要容易10倍。谢谢你的帮助,但我决定通过命令来实现。这对我来说要容易10倍。谢谢你的帮助,但我决定通过命令来实现。这对我来说要容易10倍。谢谢你的帮助,但我决定通过命令来实现。这对我来说要容易10倍。