From c51b131a54773bc3f5c5b5fd76e907ed379b67f7 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Sat, 25 Jul 2015 04:28:37 +0200 Subject: [PATCH] Concurrent shit --- .../xephi/authme/listener/AuthMePlayerListener.java | 4 +++- .../xephi/authme/process/join/AsyncronousJoin.java | 13 ++++++------- src/main/resources/plugin.yml | 2 ++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java index d9a53966..03beb3b6 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java @@ -862,8 +862,10 @@ public class AuthMePlayerListener implements Listener { if (!Settings.isForcedRegistrationEnabled) return; - if (causeByAuthMe.containsKey(name) && causeByAuthMe.get(name)) + if (causeByAuthMe.containsKey(name)) { + causeByAuthMe.remove(name); return; + } event.setCancelled(true); } diff --git a/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java b/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java index 5bd857ef..7e5101d0 100644 --- a/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java +++ b/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java @@ -52,7 +52,9 @@ public class AsyncronousJoin { } public void process() { - AuthMePlayerListener.gameMode.put(name, player.getGameMode()); + if (AuthMePlayerListener.gameMode.containsKey(name)) + AuthMePlayerListener.gameMode.remove(name); + AuthMePlayerListener.gameMode.putIfAbsent(name, player.getGameMode()); BukkitScheduler sched = plugin.getServer().getScheduler(); if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { @@ -74,9 +76,8 @@ public class AsyncronousJoin { @Override public void run() { - AuthMePlayerListener.causeByAuthMe.put(name, true); + AuthMePlayerListener.causeByAuthMe.putIfAbsent(name, true); player.setGameMode(gM); - AuthMePlayerListener.causeByAuthMe.put(name, false); player.kickPlayer("You are not the Owner of this account, please try another name!"); if (Settings.banUnsafeIp) plugin.getServer().banIP(ip); @@ -125,9 +126,8 @@ public class AsyncronousJoin { @Override public void run() { - AuthMePlayerListener.causeByAuthMe.put(name, true); + AuthMePlayerListener.causeByAuthMe.putIfAbsent(name, true); Utils.forceGM(player); - AuthMePlayerListener.causeByAuthMe.put(name, false); } }); @@ -164,9 +164,8 @@ public class AsyncronousJoin { @Override public void run() { - AuthMePlayerListener.causeByAuthMe.put(name, true); + AuthMePlayerListener.causeByAuthMe.putIfAbsent(name, true); Utils.forceGM(player); - AuthMePlayerListener.causeByAuthMe.put(name, false); } }); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index d74b46c9..c0bd7fb4 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -51,6 +51,8 @@ permissions: authme.passpartu: true authme.l: true authme.reg: true + authme.email: true + authme.captcha: true authme.admin.*: description: Gives access to all authme admin commands children: