remembser name plugin: fix not setting usernames on session open

Also clear username on shutdown
This commit is contained in:
Adam
2018-02-17 12:38:28 -05:00
parent 353cf87eb4
commit 377b01ef8c

View File

@@ -24,19 +24,24 @@
*/ */
package net.runelite.client.plugins.rememberusername; package net.runelite.client.plugins.rememberusername;
import com.google.common.base.Strings;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.util.Objects;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.client.config.ConfigManager;
import net.runelite.api.events.GameStateChanged; 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.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@PluginDescriptor( @PluginDescriptor(
name = "Remember username" name = "Remember username"
) )
@Slf4j
public class RememberUsernamePlugin extends Plugin public class RememberUsernamePlugin extends Plugin
{ {
@Inject @Inject
@@ -45,6 +50,24 @@ public class RememberUsernamePlugin extends Plugin
@Inject @Inject
private RememberUsernameConfig config; 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 @Provides
RememberUsernameConfig getConfig(ConfigManager configManager) RememberUsernameConfig getConfig(ConfigManager configManager)
{ {
@@ -56,22 +79,39 @@ public class RememberUsernamePlugin extends Plugin
{ {
if (event.getGameState() == GameState.LOGIN_SCREEN) if (event.getGameState() == GameState.LOGIN_SCREEN)
{ {
if (config.username() == null || config.username().isEmpty()) applyUsername();
{
return;
}
client.setUsername(config.username());
} }
else if (event.getGameState() == GameState.LOGGED_IN)
if (event.getGameState() == GameState.LOGGED_IN)
{ {
if (config.username().equals(client.getUsername())) if (config.username().equals(client.getUsername()))
{ {
return; return;
} }
log.debug("Saving username: {}", client.getUsername());
config.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);
}
}
} }