我有一个关于键入确认的问题。我正在做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();
}
}
如果你在等待玩家确认,你需要过滤。你可以用很多方法来做,但是我建议你创建一个列表,把所有需要确认的玩家都放进去。例如:
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
是聊天消息。我没有写完整的方法,因为你没有给它