提问者:小点点

当玩家输入关键词时,如何确认事件?


我有一个关于键入确认的问题。我正在做Virtual Spawner插件。

如果玩家有足够的钱并输入Y,他的产卵器将升级到Lvl2。

我的问题是如何进行Y或N确认?我想使用AsyncPlayerChatEvent。但是这次每个Y或N都会触发升级。

public static void jlvlup(Player player,int currentLevel) {
    String lvlup2= ChatColor.DARK_RED+"Do you confirm upgrade spawner to Level 2 for 5000000$ ?(Y/N) Write to chat.";
    if(currentLevel==1) {
         player.sendMessage(lvlup2);
         player.closeInventory(); 
    }
}

共1个答案

匿名用户

如果你在等待玩家确认,你需要过滤。你可以用很多方法来做,但是我建议你创建一个列表,把所有需要确认的玩家都放进去。例如:

public static List<Player> waitingConfirmations = new ArrayList<>(); // create the list

public static void jlvlup(Player player,int currentLevel) {
    if(currentLevel == 1) {
         player.sendMessage(ChatColor.DARK_RED + "Do you confirm upgrade spawner to Level 2 for 5000000$ ? (Y/N) Write to chat.");
         player.closeInventory(); 
         waitingConfirmations.add(player); // here add to list
    }
}

然后,对于聊天,做:

if(message.equalsIgnoreCase("Y") && waitingConfirmations.contains(player)) { // check if in list
    // here pass to level 2
}

注意:message是聊天消息。我没有写完整的方法,因为你没有给它