From a4c389c53b21339749d78f5e65590523dd134fa4 Mon Sep 17 00:00:00 2001 From: j502647092 Date: Sun, 20 Sep 2015 22:49:19 +0800 Subject: [PATCH] fix open error... Signed-off-by: j502647092 --- .../cn/citycraft/GuiACK/gui/VerifyGui.java | 20 ++++++++++++++++++- .../citycraft/GuiACK/listen/PlayerListen.java | 3 ++- .../citycraft/GuiACK/runnable/VerifyTask.java | 3 ++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/citycraft/GuiACK/gui/VerifyGui.java b/src/main/java/cn/citycraft/GuiACK/gui/VerifyGui.java index e876816..f4cfdea 100644 --- a/src/main/java/cn/citycraft/GuiACK/gui/VerifyGui.java +++ b/src/main/java/cn/citycraft/GuiACK/gui/VerifyGui.java @@ -11,9 +11,22 @@ import org.bukkit.inventory.ItemStack; public class VerifyGui { static List verifylist = new ArrayList(); - + static List playerlist = new ArrayList(); public static String invname = "§v§e§r§c防挂机验证 §3请选择验证码: "; + public static void add(Player p) { + playerlist.add(p.getName()); + } + + public static boolean checkopen(Player p) { + if (playerlist.contains(p.getName())) + return false; + else { + open(p); + return true; + } + } + public static void init(List verifylist) { VerifyGui.verifylist = verifylist; } @@ -32,5 +45,10 @@ public class VerifyGui { Inventory inv = Bukkit.createInventory(null, 9, invname + list[ri].getItemMeta().getDisplayName()); inv.setContents(list); p.openInventory(inv); + add(p); + } + + public static void remove(Player p) { + playerlist.remove(p.getName()); } } diff --git a/src/main/java/cn/citycraft/GuiACK/listen/PlayerListen.java b/src/main/java/cn/citycraft/GuiACK/listen/PlayerListen.java index 5400502..bddbe45 100644 --- a/src/main/java/cn/citycraft/GuiACK/listen/PlayerListen.java +++ b/src/main/java/cn/citycraft/GuiACK/listen/PlayerListen.java @@ -40,11 +40,11 @@ public class PlayerListen implements Listener { Player p = (Player) e.getPlayer(); if (checklist.containsKey(p.getName()) && checklist.get(p.getName())) { checklist.put(p.getName(), false); + VerifyGui.remove(p); return; } if (p.isOnline()) Bukkit.getScheduler().runTaskLater(plugin, new VerifyTask(p), 3); - } @EventHandler @@ -70,6 +70,7 @@ public class PlayerListen implements Listener { p.sendMessage("§a验证成功 奖励金钱: " + plugin.reward); checklist.put(p.getName(), true); p.closeInventory(); + VerifyGui.remove(p); } } diff --git a/src/main/java/cn/citycraft/GuiACK/runnable/VerifyTask.java b/src/main/java/cn/citycraft/GuiACK/runnable/VerifyTask.java index 6ee56b5..a7a1449 100644 --- a/src/main/java/cn/citycraft/GuiACK/runnable/VerifyTask.java +++ b/src/main/java/cn/citycraft/GuiACK/runnable/VerifyTask.java @@ -14,7 +14,8 @@ public class VerifyTask implements Runnable { @Override public void run() { if (p.isOnline()) - VerifyGui.open(p); + if (!VerifyGui.checkopen(p)) + p.kickPlayer("验证码输入超时 请重新登录!"); } }