Merge pull request #4465 from deathbeam/add-username-to-title
Add toggle for displaying username in title
This commit is contained in:
@@ -119,6 +119,17 @@ public interface RuneLiteConfig extends Config
|
|||||||
return WarningOnExit.LOGGED_IN;
|
return WarningOnExit.LOGGED_IN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "usernameInTitle",
|
||||||
|
name = "Display username in title",
|
||||||
|
description = "Toggles displaying of username in client title",
|
||||||
|
position = 18
|
||||||
|
)
|
||||||
|
default boolean usernameInTitle()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "notificationTray",
|
keyName = "notificationTray",
|
||||||
name = "Enable tray notifications",
|
name = "Enable tray notifications",
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.ui;
|
package net.runelite.client.ui;
|
||||||
|
|
||||||
|
import com.google.common.base.Strings;
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import java.applet.Applet;
|
import java.applet.Applet;
|
||||||
import java.awt.Canvas;
|
import java.awt.Canvas;
|
||||||
@@ -42,6 +43,7 @@ import java.awt.event.KeyEvent;
|
|||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Provider;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
@@ -58,10 +60,13 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.Constants;
|
import net.runelite.api.Constants;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.api.Player;
|
||||||
import net.runelite.api.Point;
|
import net.runelite.api.Point;
|
||||||
import net.runelite.api.events.ConfigChanged;
|
import net.runelite.api.events.ConfigChanged;
|
||||||
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.client.RuneLite;
|
import net.runelite.client.RuneLite;
|
||||||
import net.runelite.client.RuneLiteProperties;
|
import net.runelite.client.RuneLiteProperties;
|
||||||
|
import net.runelite.client.callback.ClientThread;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.config.ExpandResizeType;
|
import net.runelite.client.config.ExpandResizeType;
|
||||||
import net.runelite.client.config.Keybind;
|
import net.runelite.client.config.Keybind;
|
||||||
@@ -111,6 +116,7 @@ public class ClientUI
|
|||||||
private final KeyManager keyManager;
|
private final KeyManager keyManager;
|
||||||
private final Applet client;
|
private final Applet client;
|
||||||
private final ConfigManager configManager;
|
private final ConfigManager configManager;
|
||||||
|
private final Provider<ClientThread> clientThreadProvider;
|
||||||
private final CardLayout cardLayout = new CardLayout();
|
private final CardLayout cardLayout = new CardLayout();
|
||||||
private ContainableFrame frame;
|
private ContainableFrame frame;
|
||||||
private JPanel navContainer;
|
private JPanel navContainer;
|
||||||
@@ -131,13 +137,15 @@ public class ClientUI
|
|||||||
RuneLiteConfig config,
|
RuneLiteConfig config,
|
||||||
KeyManager keyManager,
|
KeyManager keyManager,
|
||||||
@Nullable Applet client,
|
@Nullable Applet client,
|
||||||
ConfigManager configManager)
|
ConfigManager configManager,
|
||||||
|
Provider<ClientThread> clientThreadProvider)
|
||||||
{
|
{
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.keyManager = keyManager;
|
this.keyManager = keyManager;
|
||||||
this.client = client;
|
this.client = client;
|
||||||
this.configManager = configManager;
|
this.configManager = configManager;
|
||||||
|
this.clientThreadProvider = clientThreadProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -235,6 +243,44 @@ public class ClientUI
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onGameStateChanged(final GameStateChanged event)
|
||||||
|
{
|
||||||
|
if (event.getGameState() != GameState.LOGGED_IN || !(client instanceof Client) || !config.usernameInTitle())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Client client = (Client)this.client;
|
||||||
|
final ClientThread clientThread = clientThreadProvider.get();
|
||||||
|
|
||||||
|
// Keep scheduling event until we get our name
|
||||||
|
clientThread.invokeLater(() ->
|
||||||
|
{
|
||||||
|
if (client.getGameState() != GameState.LOGGED_IN)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player player = client.getLocalPlayer();
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String name = player.getName();
|
||||||
|
|
||||||
|
if (Strings.isNullOrEmpty(name))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
frame.setTitle(properties.getTitle() + " - " + name);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize UI.
|
* Initialize UI.
|
||||||
*
|
*
|
||||||
@@ -680,6 +726,20 @@ public class ClientUI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.usernameInTitle() && (client instanceof Client))
|
||||||
|
{
|
||||||
|
final Player player = ((Client)client).getLocalPlayer();
|
||||||
|
|
||||||
|
if (player != null && player.getName() != null)
|
||||||
|
{
|
||||||
|
frame.setTitle(properties.getTitle() + " - " + player.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
frame.setTitle(properties.getTitle());
|
||||||
|
}
|
||||||
|
|
||||||
if (frame.isAlwaysOnTopSupported())
|
if (frame.isAlwaysOnTopSupported())
|
||||||
{
|
{
|
||||||
frame.setAlwaysOnTop(config.gameAlwaysOnTop());
|
frame.setAlwaysOnTop(config.gameAlwaysOnTop());
|
||||||
|
|||||||
Reference in New Issue
Block a user