From 273c318e9663d77313e406e755f13bdbd9c5f3b9 Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Thu, 2 Nov 2017 11:24:17 +0100 Subject: [PATCH] Cleanup --- .../authme/PurgeLastPositionCommand.java | 7 +- .../authme/datasource/CacheDataSource.java | 14 +++ .../xephi/authme/datasource/DataSource.java | 16 ++++ .../initialization/OnShutdownPlayerSaver.java | 5 +- .../xephi/authme/listener/PlayerListener.java | 5 +- .../changepassword/AsyncChangePassword.java | 7 +- .../authme/process/email/AsyncAddEmail.java | 5 +- .../process/email/AsyncChangeEmail.java | 5 +- .../process/login/AsynchronousLogin.java | 7 +- .../process/login/ProcessSyncPlayerLogin.java | 2 +- .../process/logout/AsynchronousLogout.java | 9 +- .../authme/process/quit/AsynchronousQuit.java | 6 +- .../process/register/AsyncRegister.java | 5 +- .../register/ProcessSyncPasswordRegister.java | 2 +- .../unregister/AsynchronousUnregister.java | 5 +- .../{ => bungeecord}/BungeeService.java | 95 +++---------------- .../service/bungeecord/MessageType.java | 18 ++++ .../authme/PurgeLastPositionCommandTest.java | 2 +- .../AsyncChangePasswordTest.java | 2 +- .../process/email/AsyncAddEmailTest.java | 2 +- .../process/email/AsyncChangeEmailTest.java | 2 +- .../AsynchronousUnregisterTest.java | 2 +- 22 files changed, 105 insertions(+), 118 deletions(-) rename src/main/java/fr/xephi/authme/service/{ => bungeecord}/BungeeService.java (50%) create mode 100644 src/main/java/fr/xephi/authme/service/bungeecord/MessageType.java diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java index ed11c1c3..c18380f4 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java @@ -4,8 +4,9 @@ import fr.xephi.authme.command.ExecutableCommand; import fr.xephi.authme.data.auth.PlayerAuth; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; +import fr.xephi.authme.service.bungeecord.MessageType; import org.bukkit.command.CommandSender; import javax.inject.Inject; @@ -33,7 +34,7 @@ public class PurgeLastPositionCommand implements ExecutableCommand { for (PlayerAuth auth : dataSource.getAllAuths()) { resetLastPosition(auth); dataSource.updateQuitLoc(auth); - bungeeService.sendRefreshQuitLoc(playerName); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_QUITLOC, playerName); } sender.sendMessage("All players last position locations are now reset"); } else { @@ -46,7 +47,7 @@ public class PurgeLastPositionCommand implements ExecutableCommand { resetLastPosition(auth); dataSource.updateQuitLoc(auth); - bungeeService.sendRefreshQuitLoc(playerName); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_QUITLOC, playerName); sender.sendMessage(playerName + "'s last position location is now reset"); } } diff --git a/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java b/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java index 3eaa815c..b82ff009 100644 --- a/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java +++ b/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java @@ -262,4 +262,18 @@ public class CacheDataSource implements DataSource { .map(PlayerAuth::getRealName) .collect(Collectors.toList()); } + + @Override + public void invalidateCache(String playerName) { + cachedAuths.invalidate(playerName); + } + + @Override + public void refreshCache(String playerName) { + if (cachedAuths.getIfPresent(playerName) == null) { + return; + } + cachedAuths.refresh(playerName); + } + } diff --git a/src/main/java/fr/xephi/authme/datasource/DataSource.java b/src/main/java/fr/xephi/authme/datasource/DataSource.java index c040b080..715cb059 100644 --- a/src/main/java/fr/xephi/authme/datasource/DataSource.java +++ b/src/main/java/fr/xephi/authme/datasource/DataSource.java @@ -231,4 +231,20 @@ public interface DataSource extends Reloadable { @Override void reload(); + /** + * Invalidate any cached data related to the specified player name. + * + * @param playerName the player name + */ + default void invalidateCache(String playerName) { + } + + /** + * Refresh any cached data (if present) related to the specified player name. + * + * @param playerName the player name + */ + default void refreshCache(String playerName) { + } + } diff --git a/src/main/java/fr/xephi/authme/initialization/OnShutdownPlayerSaver.java b/src/main/java/fr/xephi/authme/initialization/OnShutdownPlayerSaver.java index 1dcabb0a..38ef73b2 100644 --- a/src/main/java/fr/xephi/authme/initialization/OnShutdownPlayerSaver.java +++ b/src/main/java/fr/xephi/authme/initialization/OnShutdownPlayerSaver.java @@ -5,8 +5,9 @@ import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.data.limbo.LimboService; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.service.BukkitService; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.ValidationService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.settings.Settings; import fr.xephi.authme.settings.SpawnLoader; import fr.xephi.authme.settings.properties.RestrictionSettings; @@ -71,7 +72,7 @@ public class OnShutdownPlayerSaver { .realName(player.getName()) .location(loc).build(); dataSource.updateQuitLoc(auth); - bungeeService.sendRefreshQuitLoc(player.getName()); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_QUITLOC, player.getName()); } } } diff --git a/src/main/java/fr/xephi/authme/listener/PlayerListener.java b/src/main/java/fr/xephi/authme/listener/PlayerListener.java index e6ecc7f3..9122b117 100644 --- a/src/main/java/fr/xephi/authme/listener/PlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/PlayerListener.java @@ -8,7 +8,8 @@ import fr.xephi.authme.permission.PermissionsManager; import fr.xephi.authme.process.Management; import fr.xephi.authme.service.AntiBotService; import fr.xephi.authme.service.BukkitService; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.MessageType; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.JoinMessageService; import fr.xephi.authme.service.TeleportationService; import fr.xephi.authme.service.ValidationService; @@ -424,7 +425,7 @@ public class PlayerListener implements Listener { .location(spawn) .build(); dataSource.updateQuitLoc(auth); - bungeeService.sendRefreshQuitLoc(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_QUITLOC, name); } if (spawn != null && spawn.getWorld() != null) { event.setRespawnLocation(spawn); 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 88443a0e..a285b768 100644 --- a/src/main/java/fr/xephi/authme/process/changepassword/AsyncChangePassword.java +++ b/src/main/java/fr/xephi/authme/process/changepassword/AsyncChangePassword.java @@ -6,10 +6,11 @@ import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.process.AsynchronousProcess; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.security.crypts.HashedPassword; +import fr.xephi.authme.service.bungeecord.MessageType; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -53,7 +54,7 @@ public class AsyncChangePassword implements AsynchronousProcess { commonService.send(player, MessageKey.ERROR); return; } - bungeeService.sendRefreshPassword(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_PASSWORD, name); playerCache.updatePlayer(auth); commonService.send(player, MessageKey.PASSWORD_CHANGED_SUCCESS); @@ -83,7 +84,7 @@ public class AsyncChangePassword implements AsynchronousProcess { HashedPassword hashedPassword = passwordSecurity.computeHash(newPassword, lowerCaseName); if (dataSource.updatePassword(lowerCaseName, hashedPassword)) { - bungeeService.sendRefreshPassword(lowerCaseName); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_PASSWORD, lowerCaseName); if (sender != null) { commonService.send(sender, MessageKey.PASSWORD_CHANGED_SUCCESS); ConsoleLogger.info(sender.getName() + " changed password of " + lowerCaseName); diff --git a/src/main/java/fr/xephi/authme/process/email/AsyncAddEmail.java b/src/main/java/fr/xephi/authme/process/email/AsyncAddEmail.java index a98b72e1..b5b74c43 100644 --- a/src/main/java/fr/xephi/authme/process/email/AsyncAddEmail.java +++ b/src/main/java/fr/xephi/authme/process/email/AsyncAddEmail.java @@ -6,9 +6,10 @@ import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.process.AsynchronousProcess; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.ValidationService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.util.Utils; import org.bukkit.entity.Player; @@ -59,7 +60,7 @@ public class AsyncAddEmail implements AsynchronousProcess { auth.setEmail(email); if (dataSource.updateEmail(auth)) { playerCache.updatePlayer(auth); - bungeeService.sendRefreshEmail(playerName); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_EMAIL, playerName); service.send(player, MessageKey.EMAIL_ADDED_SUCCESS); } else { ConsoleLogger.warning("Could not save email for player '" + player + "'"); diff --git a/src/main/java/fr/xephi/authme/process/email/AsyncChangeEmail.java b/src/main/java/fr/xephi/authme/process/email/AsyncChangeEmail.java index e7884029..237246d7 100644 --- a/src/main/java/fr/xephi/authme/process/email/AsyncChangeEmail.java +++ b/src/main/java/fr/xephi/authme/process/email/AsyncChangeEmail.java @@ -5,9 +5,10 @@ import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.process.AsynchronousProcess; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.ValidationService; +import fr.xephi.authme.service.bungeecord.MessageType; import org.bukkit.entity.Player; import javax.inject.Inject; @@ -67,7 +68,7 @@ public class AsyncChangeEmail implements AsynchronousProcess { auth.setEmail(newEmail); if (dataSource.updateEmail(auth)) { playerCache.updatePlayer(auth); - bungeeService.sendRefreshEmail(player.getName()); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_EMAIL, player.getName()); service.send(player, MessageKey.EMAIL_CHANGED_SUCCESS); } else { service.send(player, MessageKey.ERROR); diff --git a/src/main/java/fr/xephi/authme/process/login/AsynchronousLogin.java b/src/main/java/fr/xephi/authme/process/login/AsynchronousLogin.java index 8dce79b7..03dc9f46 100644 --- a/src/main/java/fr/xephi/authme/process/login/AsynchronousLogin.java +++ b/src/main/java/fr/xephi/authme/process/login/AsynchronousLogin.java @@ -19,9 +19,10 @@ import fr.xephi.authme.process.AsynchronousProcess; import fr.xephi.authme.process.SyncProcessManager; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.service.BukkitService; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.SessionService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.settings.properties.DatabaseSettings; import fr.xephi.authme.settings.properties.EmailSettings; import fr.xephi.authme.settings.properties.HooksSettings; @@ -225,7 +226,7 @@ public class AsynchronousLogin implements AsynchronousProcess { auth.setLastLogin(System.currentTimeMillis()); auth.setLastIp(ip); dataSource.updateSession(auth); - bungeeService.sendRefreshSession(player.getName()); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_SESSION, player.getName()); // Successful login, so reset the captcha & temp ban count final String name = player.getName(); @@ -251,7 +252,7 @@ public class AsynchronousLogin implements AsynchronousProcess { playerCache.updatePlayer(auth); dataSource.setLogged(name); sessionService.grantSession(name); - bungeeService.sendLogin(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.LOGIN, name); // As the scheduling executes the Task most likely after the current // task, we schedule it in the end 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 8c9ca5e0..752b3748 100644 --- a/src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java +++ b/src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java @@ -8,7 +8,7 @@ import fr.xephi.authme.events.LoginEvent; import fr.xephi.authme.events.RestoreInventoryEvent; import fr.xephi.authme.process.SynchronousProcess; import fr.xephi.authme.service.BukkitService; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.JoinMessageService; import fr.xephi.authme.service.TeleportationService; diff --git a/src/main/java/fr/xephi/authme/process/logout/AsynchronousLogout.java b/src/main/java/fr/xephi/authme/process/logout/AsynchronousLogout.java index 4aafb6f6..a64b0e5a 100644 --- a/src/main/java/fr/xephi/authme/process/logout/AsynchronousLogout.java +++ b/src/main/java/fr/xephi/authme/process/logout/AsynchronousLogout.java @@ -7,9 +7,10 @@ import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.process.AsynchronousProcess; import fr.xephi.authme.process.SyncProcessManager; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.SessionService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.settings.properties.RestrictionSettings; import org.bukkit.entity.Player; @@ -58,18 +59,18 @@ public class AsynchronousLogout implements AsynchronousProcess { PlayerAuth auth = playerCache.getAuth(name); database.updateSession(auth); - bungeeService.sendRefreshSession(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_SESSION, name); if (service.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)) { auth.setQuitLocation(player.getLocation()); database.updateQuitLoc(auth); - bungeeService.sendRefreshQuitLoc(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_QUITLOC, name); } playerCache.removePlayer(name); codeManager.unverify(name); database.setUnlogged(name); sessionService.revokeSession(name); - bungeeService.sendLogout(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.LOGOUT, name); syncProcessManager.processSyncPlayerLogout(player); } } diff --git a/src/main/java/fr/xephi/authme/process/quit/AsynchronousQuit.java b/src/main/java/fr/xephi/authme/process/quit/AsynchronousQuit.java index facb5f65..2f2d230d 100644 --- a/src/main/java/fr/xephi/authme/process/quit/AsynchronousQuit.java +++ b/src/main/java/fr/xephi/authme/process/quit/AsynchronousQuit.java @@ -7,10 +7,11 @@ import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.CacheDataSource; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.process.AsynchronousProcess; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.process.SyncProcessManager; import fr.xephi.authme.service.SessionService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.settings.SpawnLoader; import fr.xephi.authme.settings.properties.PluginSettings; import fr.xephi.authme.settings.properties.RestrictionSettings; @@ -78,7 +79,6 @@ public class AsynchronousQuit implements AsynchronousProcess { .name(name).location(loc) .realName(player.getName()).build(); database.updateQuitLoc(auth); - bungeeService.sendRefreshQuitLoc(name); } final String ip = PlayerUtils.getPlayerIp(player); @@ -89,7 +89,7 @@ public class AsynchronousQuit implements AsynchronousProcess { .lastLogin(System.currentTimeMillis()) .build(); database.updateSession(auth); - bungeeService.sendRefreshSession(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REFRESH_QUITLOC, name); } //always unauthenticate the player - use session only for auto logins on the same ip diff --git a/src/main/java/fr/xephi/authme/process/register/AsyncRegister.java b/src/main/java/fr/xephi/authme/process/register/AsyncRegister.java index 186f312c..a48942fd 100644 --- a/src/main/java/fr/xephi/authme/process/register/AsyncRegister.java +++ b/src/main/java/fr/xephi/authme/process/register/AsyncRegister.java @@ -10,8 +10,9 @@ import fr.xephi.authme.process.AsynchronousProcess; import fr.xephi.authme.process.register.executors.RegistrationExecutor; import fr.xephi.authme.process.register.executors.RegistrationParameters; import fr.xephi.authme.process.register.executors.RegistrationMethod; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.settings.properties.RegistrationSettings; import fr.xephi.authme.settings.properties.RestrictionSettings; import fr.xephi.authme.util.PlayerUtils; @@ -87,7 +88,7 @@ public class AsyncRegister implements AsynchronousProcess { PlayerAuth auth = executor.buildPlayerAuth(parameters); if (database.saveAuth(auth)) { executor.executePostPersistAction(parameters); - bungeeService.sendRegister(parameters.getPlayerName()); + bungeeService.sendAuthMeBungeecordMessage(MessageType.REGISTER, parameters.getPlayerName()); } else { service.send(parameters.getPlayer(), MessageKey.ERROR); } 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 a2ec5826..a1ac8663 100644 --- a/src/main/java/fr/xephi/authme/process/register/ProcessSyncPasswordRegister.java +++ b/src/main/java/fr/xephi/authme/process/register/ProcessSyncPasswordRegister.java @@ -4,7 +4,7 @@ import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.data.limbo.LimboService; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.process.SynchronousProcess; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.settings.commandconfig.CommandManager; import fr.xephi.authme.settings.properties.EmailSettings; diff --git a/src/main/java/fr/xephi/authme/process/unregister/AsynchronousUnregister.java b/src/main/java/fr/xephi/authme/process/unregister/AsynchronousUnregister.java index c2101644..89105c76 100644 --- a/src/main/java/fr/xephi/authme/process/unregister/AsynchronousUnregister.java +++ b/src/main/java/fr/xephi/authme/process/unregister/AsynchronousUnregister.java @@ -11,9 +11,10 @@ import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.process.AsynchronousProcess; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.service.BukkitService; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.TeleportationService; +import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.settings.commandconfig.CommandManager; import fr.xephi.authme.settings.properties.RegistrationSettings; import fr.xephi.authme.settings.properties.RestrictionSettings; @@ -108,7 +109,7 @@ public class AsynchronousUnregister implements AsynchronousProcess { private void performUnregister(String name, Player player) { playerCache.removePlayer(name); - bungeeService.sendUnregister(name); + bungeeService.sendAuthMeBungeecordMessage(MessageType.UNREGISTER, name); if (player == null || !player.isOnline()) { return; diff --git a/src/main/java/fr/xephi/authme/service/BungeeService.java b/src/main/java/fr/xephi/authme/service/bungeecord/BungeeService.java similarity index 50% rename from src/main/java/fr/xephi/authme/service/BungeeService.java rename to src/main/java/fr/xephi/authme/service/bungeecord/BungeeService.java index 9260ac58..fb23771a 100644 --- a/src/main/java/fr/xephi/authme/service/BungeeService.java +++ b/src/main/java/fr/xephi/authme/service/bungeecord/BungeeService.java @@ -1,4 +1,4 @@ -package fr.xephi.authme.service; +package fr.xephi.authme.service.bungeecord; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; @@ -8,6 +8,7 @@ import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.datasource.CacheDataSource; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.initialization.SettingsDependent; +import fr.xephi.authme.service.BukkitService; import fr.xephi.authme.settings.Settings; import fr.xephi.authme.settings.properties.HooksSettings; import org.bukkit.entity.Player; @@ -15,8 +16,6 @@ import org.bukkit.plugin.messaging.Messenger; import org.bukkit.plugin.messaging.PluginMessageListener; import javax.inject.Inject; -import java.util.Arrays; -import java.util.List; /** * Class to manage all BungeeCord related processes. @@ -81,47 +80,12 @@ public class BungeeService implements SettingsDependent, PluginMessageListener { sendBungeecordMessage("Connect", player.getName(), destinationServerOnLogin), 20L); } - private void sendAuthMeBungeecordMessage(String type, String... data) { + public void sendAuthMeBungeecordMessage(String type, String playerName) { if(!isEnabled) { return; } - List dataList = Arrays.asList(data); - dataList.add(0, "AuthMe"); - dataList.add(1, type); - sendBungeecordMessage(dataList.toArray(new String[dataList.size()])); - } - - public void sendLogin(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.LOGIN, name.toLowerCase()); - } - - public void sendLogout(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.LOGOUT, name.toLowerCase()); - } - - public void sendRegister(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.REGISTER, name.toLowerCase()); - } - - public void sendUnregister(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.UNREGISTER, name.toLowerCase()); - } - - public void sendRefreshPassword(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.REFRESH_PASSWORD, name.toLowerCase()); - } - - public void sendRefreshSession(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.REFRESH_SESSION, name.toLowerCase()); - } - - public void sendRefreshQuitLoc(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.REFRESH_QUITLOC, name.toLowerCase()); - } - - public void sendRefreshEmail(String name) { - sendAuthMeBungeecordMessage(AuthMeBungeeMessageType.REFRESH_EMAIL, name.toLowerCase()); + sendBungeecordMessage("AuthMe", type, playerName.toLowerCase()); } @Override @@ -137,55 +101,20 @@ public class BungeeService implements SettingsDependent, PluginMessageListener { } String type = in.readUTF(); + String name = in.readUTF(); switch (type) { - case AuthMeBungeeMessageType.UNREGISTER: - handleRemove(in.readUTF()); + case MessageType.UNREGISTER: + dataSource.invalidateCache(name); break; - case AuthMeBungeeMessageType.REFRESH_PASSWORD: - case AuthMeBungeeMessageType.REFRESH_QUITLOC: - case AuthMeBungeeMessageType.REFRESH_EMAIL: - case AuthMeBungeeMessageType.REFRESH: - handleRefresh(in.readUTF()); + case MessageType.REFRESH_PASSWORD: + case MessageType.REFRESH_QUITLOC: + case MessageType.REFRESH_EMAIL: + case MessageType.REFRESH: + dataSource.refreshCache(name); break; default: ConsoleLogger.debug("Received unsupported bungeecord message type! (" + type + ")"); } } - private void handleRefresh(String name) { - if(!(dataSource instanceof CacheDataSource)) { - return; - } - CacheDataSource cacheDataSource = (CacheDataSource) dataSource; - - if (cacheDataSource.getCachedAuths().getIfPresent(name) == null) { - return; - } - cacheDataSource.getCachedAuths().refresh(name); - } - - private void handleRemove(String name) { - if(!(dataSource instanceof CacheDataSource)) { - return; - } - CacheDataSource cacheDataSource = (CacheDataSource) dataSource; - - cacheDataSource.getCachedAuths().invalidate(name); - } - - public class AuthMeBungeeMessageType { - public static final String LOGIN = "login"; - public static final String LOGOUT = "logout"; - public static final String REGISTER = "register"; - public static final String UNREGISTER = "unregister"; - public static final String REFRESH_PASSWORD = "refresh.password"; - public static final String REFRESH_SESSION = "refresh.session"; - public static final String REFRESH_QUITLOC = "refresh.quitloc"; - public static final String REFRESH_EMAIL = "refresh.email"; - public static final String REFRESH = "refresh"; - - private AuthMeBungeeMessageType() { - } - } - } diff --git a/src/main/java/fr/xephi/authme/service/bungeecord/MessageType.java b/src/main/java/fr/xephi/authme/service/bungeecord/MessageType.java new file mode 100644 index 00000000..1e692a93 --- /dev/null +++ b/src/main/java/fr/xephi/authme/service/bungeecord/MessageType.java @@ -0,0 +1,18 @@ +package fr.xephi.authme.service.bungeecord; + +public final class MessageType { + + public static final String LOGIN = "login"; + public static final String LOGOUT = "logout"; + public static final String REGISTER = "register"; + public static final String UNREGISTER = "unregister"; + public static final String REFRESH_PASSWORD = "refresh.password"; + public static final String REFRESH_SESSION = "refresh.session"; + public static final String REFRESH_QUITLOC = "refresh.quitloc"; + public static final String REFRESH_EMAIL = "refresh.email"; + public static final String REFRESH = "refresh"; + + private MessageType() { + } + +} diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java index 604238a6..0f14a0de 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java @@ -3,7 +3,7 @@ package fr.xephi.authme.command.executable.authme; import fr.xephi.authme.data.auth.PlayerAuth; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import org.bukkit.command.CommandSender; import org.junit.Test; diff --git a/src/test/java/fr/xephi/authme/process/changepassword/AsyncChangePasswordTest.java b/src/test/java/fr/xephi/authme/process/changepassword/AsyncChangePasswordTest.java index 172a08bd..1cb9390e 100644 --- a/src/test/java/fr/xephi/authme/process/changepassword/AsyncChangePasswordTest.java +++ b/src/test/java/fr/xephi/authme/process/changepassword/AsyncChangePasswordTest.java @@ -6,7 +6,7 @@ import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.security.crypts.HashedPassword; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import org.bukkit.command.CommandSender; import org.junit.Before; diff --git a/src/test/java/fr/xephi/authme/process/email/AsyncAddEmailTest.java b/src/test/java/fr/xephi/authme/process/email/AsyncAddEmailTest.java index cd2bebe7..a982f815 100644 --- a/src/test/java/fr/xephi/authme/process/email/AsyncAddEmailTest.java +++ b/src/test/java/fr/xephi/authme/process/email/AsyncAddEmailTest.java @@ -5,7 +5,7 @@ import fr.xephi.authme.data.auth.PlayerAuth; import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.ValidationService; import org.bukkit.entity.Player; diff --git a/src/test/java/fr/xephi/authme/process/email/AsyncChangeEmailTest.java b/src/test/java/fr/xephi/authme/process/email/AsyncChangeEmailTest.java index d54cfcc0..5f2a9c83 100644 --- a/src/test/java/fr/xephi/authme/process/email/AsyncChangeEmailTest.java +++ b/src/test/java/fr/xephi/authme/process/email/AsyncChangeEmailTest.java @@ -4,7 +4,7 @@ import fr.xephi.authme.data.auth.PlayerAuth; import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.ValidationService; import org.bukkit.entity.Player; diff --git a/src/test/java/fr/xephi/authme/process/unregister/AsynchronousUnregisterTest.java b/src/test/java/fr/xephi/authme/process/unregister/AsynchronousUnregisterTest.java index 095ddef6..1cb83605 100644 --- a/src/test/java/fr/xephi/authme/process/unregister/AsynchronousUnregisterTest.java +++ b/src/test/java/fr/xephi/authme/process/unregister/AsynchronousUnregisterTest.java @@ -10,7 +10,7 @@ import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.security.crypts.HashedPassword; import fr.xephi.authme.service.BukkitService; -import fr.xephi.authme.service.BungeeService; +import fr.xephi.authme.service.bungeecord.BungeeService; import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.TeleportationService; import fr.xephi.authme.settings.commandconfig.CommandManager;