基本上,我对Java& Bukkit一般如此,如果我做一些愚蠢的事情,请不要讨厌我。所以基本上以下代码是我的命令库:
double numberEnd = Double.parseDouble(args[1]);
double random = new Random().nextDouble();
double result = numberStart + (random * (numberEnd - numberStart));
theSender.sendMessage(ChatColor.GREEN + "[Giveaway] + ChatColor.AQUA + "The winning number is " + result)
Bukkit.broadcastMessage(ChatColor.GREEN + (ChatColor.BOLD + "A giveaway has begun ranging from 0 - " + numberEnd));
Player winningPlayer;
所以我希望插件能够实现玩家说出(结果)并转发另一个广播说(玩家)是胜利者。现在,我不太了解确切的方法,但是我可以创建以下方法并在我的代码中调用它吗?
public void onPlayerChat(AsyncPlayerChatEvent winningPlayer) {
if (winningPlayer.getMessage().contains(result)) {
Bukkit.broadcastMessage(winningPlayer.getPlayer() + ChatColor.GREEN + " has won!");
}
}
或者是否有一种更容易,更简单的方法,我一味地错过了? 非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
要首先收听事件,您需要在插件启用
上注册事件public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
// Other code...
}
确保您的班级实施Listener
。在这里,您可以注册所有事件,其中第一个参数引用Listener
,第二个引用Plugin
。接下来,您需要编写onPlayerChat
方法并为其添加EventHandler
注释,以使其正常工作。
@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent winningPlayer) {
if (winningPlayer.getMessage().contains(result)) {
Bukkit.broadcastMessage(winningPlayer.getPlayer() + ChatColor.GREEN + " has won!");
}
}
当然,您需要在某些方面从onPlayerChat方法获取结果。您可以将result
设为全局静态变量。