Merge pull request #1335 from runelite-extended/accplugin
account plugin: remove login button
This commit is contained in:
@@ -24,22 +24,17 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.account;
|
package net.runelite.client.plugins.account;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.client.account.AccountSession;
|
import net.runelite.client.account.AccountSession;
|
||||||
import net.runelite.client.account.SessionManager;
|
import net.runelite.client.account.SessionManager;
|
||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import net.runelite.client.events.SessionClose;
|
|
||||||
import net.runelite.client.events.SessionOpen;
|
import net.runelite.client.events.SessionOpen;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.ClientToolbar;
|
import net.runelite.client.ui.ClientToolbar;
|
||||||
import net.runelite.client.ui.NavigationButton;
|
|
||||||
import net.runelite.client.util.ImageUtil;
|
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Account",
|
name = "Account",
|
||||||
@@ -63,83 +58,24 @@ public class AccountPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private EventBus eventBus;
|
private EventBus eventBus;
|
||||||
|
|
||||||
private NavigationButton loginButton;
|
|
||||||
private NavigationButton logoutButton;
|
|
||||||
|
|
||||||
private static final BufferedImage LOGIN_IMAGE, LOGOUT_IMAGE;
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
LOGIN_IMAGE = ImageUtil.getResourceStreamFromClass(AccountPlugin.class, "login_icon.png");
|
|
||||||
LOGOUT_IMAGE = ImageUtil.getResourceStreamFromClass(AccountPlugin.class, "logout_icon.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void startUp() throws Exception
|
protected void startUp() throws Exception
|
||||||
{
|
{
|
||||||
addSubscriptions();
|
addSubscriptions();
|
||||||
|
|
||||||
loginButton = NavigationButton.builder()
|
|
||||||
.tab(false)
|
|
||||||
.icon(LOGIN_IMAGE)
|
|
||||||
.tooltip("Login to RuneLite")
|
|
||||||
.onClick(this::loginClick)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
logoutButton = NavigationButton.builder()
|
|
||||||
.tab(false)
|
|
||||||
.icon(LOGOUT_IMAGE)
|
|
||||||
.tooltip("Logout of RuneLite")
|
|
||||||
.onClick(this::logoutClick)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
addAndRemoveButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addAndRemoveButtons()
|
|
||||||
{
|
|
||||||
clientToolbar.removeNavigation(loginButton);
|
|
||||||
clientToolbar.removeNavigation(logoutButton);
|
|
||||||
clientToolbar.addNavigation(sessionManager.getAccountSession() == null
|
|
||||||
? loginButton
|
|
||||||
: logoutButton);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void shutDown() throws Exception
|
protected void shutDown() throws Exception
|
||||||
{
|
{
|
||||||
eventBus.unregister(this);
|
eventBus.unregister(this);
|
||||||
|
|
||||||
clientToolbar.removeNavigation(loginButton);
|
|
||||||
clientToolbar.removeNavigation(logoutButton);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addSubscriptions()
|
private void addSubscriptions()
|
||||||
{
|
{
|
||||||
eventBus.subscribe(SessionClose.class, this, this::onSessionClose);
|
|
||||||
eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen);
|
eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loginClick()
|
|
||||||
{
|
|
||||||
executor.execute(sessionManager::login);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void logoutClick()
|
|
||||||
{
|
|
||||||
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
|
|
||||||
"Are you sure you want to logout from RuneLite?", "Logout Confirmation",
|
|
||||||
JOptionPane.YES_NO_OPTION))
|
|
||||||
{
|
|
||||||
executor.execute(sessionManager::logout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onSessionClose(SessionClose e)
|
|
||||||
{
|
|
||||||
addAndRemoveButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onSessionOpen(SessionOpen sessionOpen)
|
private void onSessionOpen(SessionOpen sessionOpen)
|
||||||
{
|
{
|
||||||
AccountSession session = sessionManager.getAccountSession();
|
AccountSession session = sessionManager.getAccountSession();
|
||||||
@@ -150,8 +86,6 @@ public class AccountPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.debug("Session opened as {}", session.getUsername());
|
log.debug("Session opened as {}", session.getUsername());
|
||||||
|
|
||||||
addAndRemoveButtons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user