From 4a2ea7d37298194808592367321c0f0bc54d2ac8 Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Tue, 6 Sep 2016 14:13:26 +0200 Subject: [PATCH] Remove bungeecord messaging hook It was the cause of many issues, as temp replacement server owners can use AuthMeBridge. --- .../xephi/authme/hooks/BungeeCordMessage.java | 72 ------------------- .../changepassword/AsyncChangePassword.java | 3 - .../process/login/ProcessSyncPlayerLogin.java | 1 - .../ProcessSynchronousPlayerLogout.java | 2 - .../register/ProcessSyncPasswordRegister.java | 1 - .../xephi/authme/service/BungeeService.java | 59 +-------------- 6 files changed, 1 insertion(+), 137 deletions(-) delete mode 100644 src/main/java/fr/xephi/authme/hooks/BungeeCordMessage.java diff --git a/src/main/java/fr/xephi/authme/hooks/BungeeCordMessage.java b/src/main/java/fr/xephi/authme/hooks/BungeeCordMessage.java deleted file mode 100644 index 7b736aad2..000000000 --- a/src/main/java/fr/xephi/authme/hooks/BungeeCordMessage.java +++ /dev/null @@ -1,72 +0,0 @@ -package fr.xephi.authme.hooks; - -import com.google.common.io.ByteArrayDataInput; -import com.google.common.io.ByteStreams; -import fr.xephi.authme.ConsoleLogger; -import fr.xephi.authme.cache.auth.PlayerAuth; -import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; -import fr.xephi.authme.security.crypts.HashedPassword; -import fr.xephi.authme.util.BukkitService; -import org.bukkit.entity.Player; -import org.bukkit.plugin.messaging.PluginMessageListener; - -import javax.inject.Inject; - -public class BungeeCordMessage implements PluginMessageListener { - - @Inject - private DataSource dataSource; - - @Inject - private BukkitService bukkitService; - - @Inject - private PlayerCache playerCache; - - BungeeCordMessage() { } - - - @Override - public void onPluginMessageReceived(String channel, Player player, byte[] message) { - if (!"BungeeCord".equals(channel)) { - return; - } - ByteArrayDataInput in = ByteStreams.newDataInput(message); - String subChannel = in.readUTF(); - if ("AuthMe".equalsIgnoreCase(subChannel)) { - String str = in.readUTF(); - final String[] args = str.split(";"); - final String act = args[0]; - final String name = args[1]; - bukkitService.runTaskAsynchronously(new Runnable() { - @Override - public void run() { - PlayerAuth auth = dataSource.getAuth(name); - if (auth == null) { - return; - } - if ("login".equals(act)) { - playerCache.updatePlayer(auth); - dataSource.setLogged(name); - ConsoleLogger.fine("Player " + auth.getNickname() + " has logged in from one of your server!"); - } else if ("logout".equals(act)) { - playerCache.removePlayer(name); - dataSource.setUnlogged(name); - ConsoleLogger.fine("Player " + auth.getNickname() + " has logged out from one of your server!"); - } else if ("register".equals(act)) { - ConsoleLogger.fine("Player " + auth.getNickname() + " has registered out from one of your server!"); - } else if ("changepassword".equals(act)) { - final String password = args[2]; - final String salt = args.length >= 4 ? args[3] : null; - auth.setPassword(new HashedPassword(password, salt)); - playerCache.updatePlayer(auth); - dataSource.updatePassword(auth); - } - - } - }); - } - } - -} diff --git a/src/main/java/fr/xephi/authme/process/changepassword/AsyncChangePassword.java b/src/main/java/fr/xephi/authme/process/changepassword/AsyncChangePassword.java index 992a56176..f07f21aea 100644 --- a/src/main/java/fr/xephi/authme/process/changepassword/AsyncChangePassword.java +++ b/src/main/java/fr/xephi/authme/process/changepassword/AsyncChangePassword.java @@ -49,9 +49,6 @@ public class AsyncChangePassword implements AsynchronousProcess { playerCache.updatePlayer(auth); processService.send(player, MessageKey.PASSWORD_CHANGED_SUCCESS); ConsoleLogger.info(player.getName() + " changed his password"); - - // Send a Bungee message for the password change - bungeeService.sendPasswordChanged(player, hashedPassword); } else { processService.send(player, MessageKey.WRONG_PASSWORD); } diff --git a/src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java b/src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java index ebbcbc995..acc235dbb 100644 --- a/src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java +++ b/src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java @@ -119,7 +119,6 @@ public class ProcessSyncPlayerLogin implements SynchronousProcess { // The Login event now fires (as intended) after everything is processed bukkitService.callEvent(new LoginEvent(player)); player.saveData(); - bungeeService.sendBungeeMessage(player, "login"); // Login is done, display welcome message if (service.getProperty(RegistrationSettings.USE_WELCOME_MESSAGE)) { diff --git a/src/main/java/fr/xephi/authme/process/logout/ProcessSynchronousPlayerLogout.java b/src/main/java/fr/xephi/authme/process/logout/ProcessSynchronousPlayerLogout.java index bfff2e3ac..e51c84228 100644 --- a/src/main/java/fr/xephi/authme/process/logout/ProcessSynchronousPlayerLogout.java +++ b/src/main/java/fr/xephi/authme/process/logout/ProcessSynchronousPlayerLogout.java @@ -64,8 +64,6 @@ public class ProcessSynchronousPlayerLogout implements SynchronousProcess { // Player is now logout... Time to fire event ! bukkitService.callEvent(new LogoutEvent(player)); - // Send Bungee stuff. The service will check if it is enabled or not. - bungeeService.sendBungeeMessage(player, "logout"); service.send(player, MessageKey.LOGOUT_SUCCESS); ConsoleLogger.info(player.getName() + " logged out"); diff --git a/src/main/java/fr/xephi/authme/process/register/ProcessSyncPasswordRegister.java b/src/main/java/fr/xephi/authme/process/register/ProcessSyncPasswordRegister.java index a7ea4aeb8..2770b96ee 100644 --- a/src/main/java/fr/xephi/authme/process/register/ProcessSyncPasswordRegister.java +++ b/src/main/java/fr/xephi/authme/process/register/ProcessSyncPasswordRegister.java @@ -92,7 +92,6 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess { } // Send Bungee stuff. The service will check if it is enabled or not. - bungeeService.sendBungeeMessage(player, "register"); bungeeService.connectPlayer(player); } } diff --git a/src/main/java/fr/xephi/authme/service/BungeeService.java b/src/main/java/fr/xephi/authme/service/BungeeService.java index 3a881d8dc..93776aa1b 100644 --- a/src/main/java/fr/xephi/authme/service/BungeeService.java +++ b/src/main/java/fr/xephi/authme/service/BungeeService.java @@ -3,13 +3,9 @@ package fr.xephi.authme.service; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.hooks.BungeeCordMessage; import fr.xephi.authme.initialization.SettingsDependent; -import fr.xephi.authme.security.crypts.HashedPassword; import fr.xephi.authme.settings.Settings; import fr.xephi.authme.settings.properties.HooksSettings; -import fr.xephi.authme.util.BukkitService; - import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.Messenger; @@ -21,8 +17,6 @@ import javax.inject.Inject; public class BungeeService implements SettingsDependent { private AuthMe plugin; - private BukkitService bukkitService; - private BungeeCordMessage bungeeCordMessage; private boolean isEnabled; private String bungeeServer; @@ -31,59 +25,11 @@ public class BungeeService implements SettingsDependent { * Constructor. */ @Inject - BungeeService(AuthMe plugin, BukkitService bukkitService, Settings settings, BungeeCordMessage bungeeCordMessage) { + BungeeService(AuthMe plugin, Settings settings) { this.plugin = plugin; - this.bukkitService = bukkitService; - this.bungeeCordMessage = bungeeCordMessage; reload(settings); } - /** - * Sends a Bungee message to a player, e.g. login. - * - * @param player The player to send the message to. - * @param action The action to send, e.g. login. - */ - public void sendBungeeMessage(Player player, String action) { - if (!isEnabled) { - return; - } - - ByteArrayDataOutput out = ByteStreams.newDataOutput(); - out.writeUTF("Forward"); - out.writeUTF("ALL"); - out.writeUTF("AuthMe"); - out.writeUTF(action + ";" + player.getName()); - player.sendPluginMessage(plugin, "BungeeCord", out.toByteArray()); - } - - /** - * Send a Bungee message for a password change. - * - * @param player The player who's password is changed. - * @param password The new password. - */ - public void sendPasswordChanged(final Player player, HashedPassword password) { - if (!isEnabled) { - return; - } - - final String hash = password.getHash(); - final String salt = password.getSalt(); - - bukkitService.scheduleSyncDelayedTask(new Runnable() { - @Override - public void run() { - ByteArrayDataOutput out = ByteStreams.newDataOutput(); - out.writeUTF("Forward"); - out.writeUTF("ALL"); - out.writeUTF("AuthMe"); - out.writeUTF("changepassword;" + player.getName() + ";" + hash + ";" + salt); - player.sendPluginMessage(plugin, "BungeeCord", out.toByteArray()); - } - }); - } - /** * Send a player to a specified server. If no server is configured, this will * do nothing. @@ -109,9 +55,6 @@ public class BungeeService implements SettingsDependent { if (!this.isEnabled) { return; } - if (!messenger.isIncomingChannelRegistered(plugin, "BungeeCord")) { - messenger.registerIncomingPluginChannel(plugin, "BungeeCord", bungeeCordMessage); - } if (!messenger.isOutgoingChannelRegistered(plugin, "BungeeCord")) { messenger.registerOutgoingPluginChannel(plugin, "BungeeCord"); }