|
|
@@ -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)
|
|
|
{
|
|
|
_discordClient?.SetPresence(new RichPresence
|
|
|
@@ -75,25 +69,25 @@ namespace Ryujinx.UI.Common
|
|
|
Assets = new Assets
|
|
|
{
|
|
|
LargeImageKey = _discordGameAssets.Contains(titleId.ToLower()) ? titleId : "game",
|
|
|
- LargeImageText = TruncateToByteLength(appMeta.Title, ApplicationByteLimit),
|
|
|
+ LargeImageText = TruncateToByteLength(appMeta.Title),
|
|
|
SmallImageKey = "ryujinx",
|
|
|
SmallImageText = Description
|
|
|
},
|
|
|
- Details = TruncateToByteLength($"Playing {appMeta.Title}", ApplicationByteLimit),
|
|
|
+ Details = TruncateToByteLength($"Playing {appMeta.Title}"),
|
|
|
State = $"Total play time: {appMeta.TimePlayed.Humanize(2, false)}",
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
// 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.
|
|
|
// Amount of bytes != Length of the string
|
|
|
@@ -116,5 +110,49 @@ namespace Ryujinx.UI.Common
|
|
|
{
|
|
|
_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
|
|
|
+ ];
|
|
|
}
|
|
|
}
|