gpt4 book ai didi

java - Bukkit - 检查玩家是否发送包含初始化 double 的聊天消息

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:14 27 4
gpt4 key购买 nike

基本上,我对 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!");
}
}

或者是否有一种我盲目地错过的更简单、更简单的方法?希望有任何帮助,谢谢!

最佳答案

要首先监听事件,您需要在插件启用时注册事件

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 设置为全局静态变量。

关于java - Bukkit - 检查玩家是否发送包含初始化 double 的聊天消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com