From 377b01ef8c54a64cccaa69678c1741a8e491ff06 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 17 Feb 2018 12:38:28 -0500 Subject: [PATCH] remembser name plugin: fix not setting usernames on session open Also clear username on shutdown --- .../RememberUsernamePlugin.java | 58 ++++++++++++++++--- 1 file changed, 49 insertions(+), 9 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java index 570f0e015e..9e0ac069d2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java @@ -24,19 +24,24 @@ */ package net.runelite.client.plugins.rememberusername; +import com.google.common.base.Strings; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; +import java.util.Objects; import javax.inject.Inject; +import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; -import net.runelite.client.config.ConfigManager; import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.SessionOpen; +import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( name = "Remember username" ) +@Slf4j public class RememberUsernamePlugin extends Plugin { @Inject @@ -45,6 +50,24 @@ public class RememberUsernamePlugin extends Plugin @Inject private RememberUsernameConfig config; + @Override + protected void startUp() throws Exception + { + applyUsername(); + } + + protected void shutDown() throws Exception + { + GameState gameState = client.getGameState(); + if (gameState == GameState.LOGIN_SCREEN) + { + if (Objects.equals(config.username(), client.getUsername())) + { + client.setUsername(""); + } + } + } + @Provides RememberUsernameConfig getConfig(ConfigManager configManager) { @@ -56,22 +79,39 @@ public class RememberUsernamePlugin extends Plugin { if (event.getGameState() == GameState.LOGIN_SCREEN) { - if (config.username() == null || config.username().isEmpty()) - { - return; - } - - client.setUsername(config.username()); + applyUsername(); } - - if (event.getGameState() == GameState.LOGGED_IN) + else if (event.getGameState() == GameState.LOGGED_IN) { if (config.username().equals(client.getUsername())) { return; } + log.debug("Saving username: {}", client.getUsername()); config.username(client.getUsername()); } } + + @Subscribe + public void onSessionOpen(SessionOpen event) + { + // configuation for the account is available now, so update the username + applyUsername(); + } + + private void applyUsername() + { + GameState gameState = client.getGameState(); + if (gameState == GameState.LOGIN_SCREEN) + { + String username = config.username(); + if (Strings.isNullOrEmpty(username)) + { + return; + } + + client.setUsername(username); + } + } }