Configurable Discord Rich Presence icons and some localization (#4174)

This commit is contained in:
KIBORG04
2023-08-02 03:36:45 +03:00
committed by GitHub
parent a137c839fc
commit f932e023ee
3 changed files with 21 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
discord-rpc-in-main-menu = In Main Menu
discord-rpc-in-main-menu-logo-text = I think coolsville SUCKS
discord-rpc-character = Username: {$username}
discord-rpc-on-server = On Server: {$servername}
discord-rpc-players = Players: {$players}/{$maxplayers}
discord-rpc-players = Players: {$players}/{$maxplayers}

View File

@@ -27,13 +27,17 @@ namespace Robust.Client.Utility
public void Initialize()
{
var state = _loc.GetString("discord-rpc-in-main-menu");
var largeImageKey = _configurationManager.GetCVar(CVars.DiscordRichPresenceSecondIconId);
var largeImageText = _loc.GetString("discord-rpc-in-main-menu-logo-text");
_defaultPresence = new()
{
State = _loc.GetString("discord-rpc-in-main-menu"),
State = Truncate(state, 128),
Assets = new Assets
{
LargeImageKey = "logo",
LargeImageText = "I think coolsville SUCKS"
LargeImageKey = Truncate(largeImageKey, 32),
LargeImageText = Truncate(largeImageText, 128),
}
};
_configurationManager.OnValueChanged(CVars.DiscordEnabled, newValue =>
@@ -104,7 +108,9 @@ namespace Robust.Client.Utility
{
var details = _loc.GetString("discord-rpc-on-server", ("servername", serverName));
var state = _loc.GetString("discord-rpc-players", ("players", users), ("maxplayers", maxUsers));
var imageText = _loc.GetString("discord-rpc-character", ("username", username));
var largeImageText = _loc.GetString("discord-rpc-character", ("username", username));
var largeImageKey = _configurationManager.GetCVar(CVars.DiscordRichPresenceMainIconId);
var smallImageKey = _configurationManager.GetCVar(CVars.DiscordRichPresenceSecondIconId);
// Strings are limited by byte count. See the setters in RichPresence. Hence the truncate calls.
_activePresence = new RichPresence
@@ -113,9 +119,9 @@ namespace Robust.Client.Utility
State = Truncate(state, 128),
Assets = new Assets
{
LargeImageKey = Truncate("devstation", 32),
LargeImageText = Truncate(imageText, 128),
SmallImageKey = Truncate("logo", 32)
LargeImageKey = Truncate(largeImageKey, 32),
LargeImageText = Truncate(largeImageText, 128),
SmallImageKey = Truncate(smallImageKey, 32)
}
};
_client.SetPresence(_activePresence);

View File

@@ -1188,6 +1188,12 @@ namespace Robust.Shared
public static readonly CVarDef<bool> DiscordEnabled =
CVarDef.Create("discord.enabled", true, CVar.CLIENTONLY);
public static readonly CVarDef<string> DiscordRichPresenceMainIconId =
CVarDef.Create("discord.rich_main_icon_id", "devstation", CVar.CLIENTONLY);
public static readonly CVarDef<string> DiscordRichPresenceSecondIconId =
CVarDef.Create("discord.rich_second_icon_id", "logo", CVar.CLIENTONLY);
/*
* RES
*/