From e1eb22239ac934fa024770c175b39c0698a1d22d Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 20 Aug 2015 23:29:02 +0200 Subject: [PATCH 1/2] Add Third Party PreLogin Event --- .../events/AuthMeAsyncPreLoginEvent.java | 41 +++++++++++++++++++ .../process/login/AsyncronousLogin.java | 5 +++ 2 files changed, 46 insertions(+) create mode 100644 src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java diff --git a/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java b/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java new file mode 100644 index 000000000..d93b21149 --- /dev/null +++ b/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java @@ -0,0 +1,41 @@ +package fr.xephi.authme.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * + * This event is call when AuthMe try to teleport a player + * + * @author Xephi59 + */ +public class AuthMeAsyncPreLoginEvent extends Event { + + private Player player; + private boolean canLogin = true; + private static final HandlerList handlers = new HandlerList(); + + public AuthMeAsyncPreLoginEvent(Player player) { + super(true); + this.player = player; + } + + public Player getPlayer() { + return player; + } + + public boolean canLogin() { + return canLogin; + } + + public void setCanLogin(boolean canLogin) { + this.canLogin = canLogin; + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + +} diff --git a/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java b/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java index e7c49af87..302203b7d 100644 --- a/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java +++ b/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java @@ -13,6 +13,7 @@ import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.cache.limbo.LimboCache; import fr.xephi.authme.datasource.DataSource; +import fr.xephi.authme.events.AuthMeAsyncPreLoginEvent; import fr.xephi.authme.listener.AuthMePlayerListener; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.security.RandomString; @@ -113,6 +114,10 @@ public class AsyncronousLogin { m.send(player, "vb_nonActiv"); return null; } + AuthMeAsyncPreLoginEvent event = new AuthMeAsyncPreLoginEvent(player); + Bukkit.getServer().getPluginManager().callEvent(event); + if (!event.canLogin()) + return null; return pAuth; } From cd0659ac894a1775b5041de0a8561f86c266b412 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 20 Aug 2015 23:30:31 +0200 Subject: [PATCH 2/2] ahah copy/paste spotted :D --- .../java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java b/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java index d93b21149..1995fbd0b 100644 --- a/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java +++ b/src/main/java/fr/xephi/authme/events/AuthMeAsyncPreLoginEvent.java @@ -6,7 +6,7 @@ import org.bukkit.event.HandlerList; /** * - * This event is call when AuthMe try to teleport a player + * This event is call when a player try to /login * * @author Xephi59 */