mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-12-22 22:45:46 +00:00
UI: Add more Discord presence games.
This commit is contained in:
parent
169126e511
commit
e1dda4cef1
1 changed files with 49 additions and 11 deletions
|
@ -62,12 +62,6 @@ namespace Ryujinx.UI.Common
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly string[] _discordGameAssets = [
|
|
||||||
"0100f2c0115b6000", // Tears of the Kingdom
|
|
||||||
"0100744001588000", // Cars 3: Driven to Win
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
public static void SwitchToPlayingState(string titleId, ApplicationMetadata appMeta)
|
public static void SwitchToPlayingState(string titleId, ApplicationMetadata appMeta)
|
||||||
{
|
{
|
||||||
_discordClient?.SetPresence(new RichPresence
|
_discordClient?.SetPresence(new RichPresence
|
||||||
|
@ -75,25 +69,25 @@ namespace Ryujinx.UI.Common
|
||||||
Assets = new Assets
|
Assets = new Assets
|
||||||
{
|
{
|
||||||
LargeImageKey = _discordGameAssets.Contains(titleId.ToLower()) ? titleId : "game",
|
LargeImageKey = _discordGameAssets.Contains(titleId.ToLower()) ? titleId : "game",
|
||||||
LargeImageText = TruncateToByteLength(appMeta.Title, ApplicationByteLimit),
|
LargeImageText = TruncateToByteLength(appMeta.Title),
|
||||||
SmallImageKey = "ryujinx",
|
SmallImageKey = "ryujinx",
|
||||||
SmallImageText = Description
|
SmallImageText = Description
|
||||||
},
|
},
|
||||||
Details = TruncateToByteLength($"Playing {appMeta.Title}", ApplicationByteLimit),
|
Details = TruncateToByteLength($"Playing {appMeta.Title}"),
|
||||||
State = $"Total play time: {appMeta.TimePlayed.Humanize(2, false)}",
|
State = $"Total play time: {appMeta.TimePlayed.Humanize(2, false)}",
|
||||||
Timestamps = Timestamps.Now
|
Timestamps = Timestamps.Now
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string TruncateToByteLength(string input, int byteLimit)
|
private static string TruncateToByteLength(string input)
|
||||||
{
|
{
|
||||||
if (Encoding.UTF8.GetByteCount(input) <= byteLimit)
|
if (Encoding.UTF8.GetByteCount(input) <= ApplicationByteLimit)
|
||||||
{
|
{
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the length to trim the string to guarantee we have space for the trailing ellipsis.
|
// Find the length to trim the string to guarantee we have space for the trailing ellipsis.
|
||||||
int trimLimit = byteLimit - Encoding.UTF8.GetByteCount(Ellipsis);
|
int trimLimit = ApplicationByteLimit - Encoding.UTF8.GetByteCount(Ellipsis);
|
||||||
|
|
||||||
// Make sure the string is long enough to perform the basic trim.
|
// Make sure the string is long enough to perform the basic trim.
|
||||||
// Amount of bytes != Length of the string
|
// Amount of bytes != Length of the string
|
||||||
|
@ -116,5 +110,49 @@ namespace Ryujinx.UI.Common
|
||||||
{
|
{
|
||||||
_discordClient?.Dispose();
|
_discordClient?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static readonly string[] _discordGameAssets = [
|
||||||
|
"01002da013484000", // The Legend of Zelda: Skyward Sword HD
|
||||||
|
"01007ef00011e000", // The Legend of Zelda: Breath of the Wild
|
||||||
|
"0100f2c0115b6000", // The Legend of Zelda: Tears of the Kingdom
|
||||||
|
"01008cf01baac000", // The Legend of Zelda: Echoes of Wisdom
|
||||||
|
|
||||||
|
"0100000000010000", // SUPER MARIO ODYSSEY
|
||||||
|
"010015100b514000", // Super Mario Bros. Wonder
|
||||||
|
"0100152000022000", // Mario Kart 8 Deluxe
|
||||||
|
"010049900f546000", // Super Mario 3D All-Stars
|
||||||
|
"010028600ebda000", // Super Mario 3D World + Bowser's Fury
|
||||||
|
"0100ecd018ebe000", // Paper Mario: The Thousand-Year Door
|
||||||
|
|
||||||
|
"01008f6008c5e000", // Pokémon Violet
|
||||||
|
"0100abf008968000", // Pokémon Sword
|
||||||
|
"01008db008c2c000", // Pokémon Shield
|
||||||
|
"0100000011d90000", // Pokémon Brilliant Diamond
|
||||||
|
"01001f5010dfa000", // Pokémon Legends: Arceus
|
||||||
|
|
||||||
|
"0100aa80194b0000", // Pikmin 1
|
||||||
|
"0100d680194b2000", // Pikmin 2
|
||||||
|
"0100f4c009322000", // Pikmin 3 Deluxe
|
||||||
|
"0100b7c00933a000", // Pikmin
|
||||||
|
|
||||||
|
"0100c2500fc20000", // Splatoon 3
|
||||||
|
"0100ba0018500000", // Splatoon 3: Splatfest World Premiere
|
||||||
|
"0100744001588000", // Cars 3: Driven to Win
|
||||||
|
"01006f8002326000", // Animal Crossing: New Horizons
|
||||||
|
"0100853015e86000", // No Man's Sky
|
||||||
|
"01008d100d43e000", // Saints Row IV
|
||||||
|
"0100de600beee000", // Saints Row: The Third - The Full Package
|
||||||
|
"0100d7a01b7a2000", // Star Wars: Bounty Hunter
|
||||||
|
"0100dbf01000a000", // Burnout Paradise Remastered
|
||||||
|
"0100e46006708000", // Terraria
|
||||||
|
"010056e00853a000", // A Hat in Time
|
||||||
|
"01006a800016e000", // Super Smash Bros. Ultimate
|
||||||
|
"01007bb017812000", // Portal
|
||||||
|
"0100abd01785c000", // Portal 2
|
||||||
|
"01008e200c5c2000", // Muse Dash
|
||||||
|
"01001180021fa000", // Shovel Knight: Specter of Torment
|
||||||
|
"010012101468c000", // Metroid Prime Remastered
|
||||||
|
"0100c9a00ece6000", // Nintendo 64 - Nintendo Switch Online
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue