Discord Rich Presence update (#1029)

* Fix bug

* Add a few more titles and move the list from dat file into the code

* requested changes
This commit is contained in:
Xpl0itR 2020-03-29 04:25:54 +01:00 committed by GitHub
parent ab4867505e
commit 2816b2bf17
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 77 additions and 65 deletions

View file

@ -1,14 +1,13 @@
using DiscordRPC;
using Ryujinx.Common;
using System;
using System.IO;
using System.Linq;
namespace Ryujinx.Configuration
{
static class DiscordIntegrationModule
{
private static DiscordRpcClient DiscordClient;
private static DiscordRpcClient _discordClient;
private static string LargeDescription = "Ryujinx is a Nintendo Switch emulator.";
@ -38,25 +37,25 @@ namespace Ryujinx.Configuration
// If the integration was active, disable it and unload everything
if (e.OldValue)
{
DiscordClient?.Dispose();
_discordClient?.Dispose();
DiscordClient = null;
_discordClient = null;
}
// If we need to activate it and the client isn't active, initialize it
if (e.NewValue && DiscordClient == null)
if (e.NewValue && _discordClient == null)
{
DiscordClient = new DiscordRpcClient("568815339807309834");
_discordClient = new DiscordRpcClient("568815339807309834");
DiscordClient.Initialize();
DiscordClient.SetPresence(DiscordPresence);
_discordClient.Initialize();
_discordClient.SetPresence(DiscordPresence);
}
}
}
public static void SwitchToPlayingState(string titleId, string titleName)
{
if (File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RPsupported.dat")).Contains(titleId))
if (SupportedTitles.Contains(titleId))
{
DiscordPresence.Assets.LargeImageKey = titleId;
}
@ -86,7 +85,7 @@ namespace Ryujinx.Configuration
DiscordPresence.Assets.SmallImageText = LargeDescription;
DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow);
DiscordClient?.SetPresence(DiscordPresence);
_discordClient?.SetPresence(DiscordPresence);
}
public static void SwitchToMainMenu()
@ -99,12 +98,75 @@ namespace Ryujinx.Configuration
DiscordPresence.Assets.SmallImageText = null;
DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow);
DiscordClient?.SetPresence(DiscordPresence);
_discordClient?.SetPresence(DiscordPresence);
}
public static void Exit()
{
DiscordClient?.Dispose();
_discordClient?.Dispose();
}
private static readonly string[] SupportedTitles =
{
"0100000000010000", // Super Mario Odyssey™
"01000b900d8b0000", // Cadence of Hyrule Crypt of the NecroDancer Featuring The Legend of Zelda
"01000d200ac0c000", // Bud Spencer & Terence Hill - Slaps And Beans
"01000d700be88000", // My Girlfriend is a Mermaid!?
"01000dc007e90000", // Sparkle Unleashed
"01000e2003fa0000", // MIGHTY GUNVOLT BURST
"0100225000fee000", // Blaster Master Zero
"010028d0045ce000", // Sparkle 2
"01002b30028f6000", // Celeste
"01002fc00c6d0000", // Witch Thief
"010034e005c9c000", // Code of Princess EX
"010036b0034e4000", // Super Mario Party™
"01003d200baa2000", // Pokémon Mystery Dungeon™: Rescue Team DX
"01004f8006a78000", // Super Meat Boy
"010051f00ac5e000", // SEGA AGES Sonic The Hedgehog
"010055d009f78000", // Fire Emblem™: Three Houses
"010056e00853a000", // A Hat in Time
"0100574009f9e000", // 嘘つき姫と盲目王子
"01005d700e742000", // DOOM 64
"0100628004bce000", // Nights of Azure 2: Bride of the New Moon
"0100633007d48000", // Hollow Knight
"010065500b218000", // メモリーズオフ -Innocent Fille-
"010068f00aa78000", // FINAL FANTASY XV POCKET EDITION HD
"01006bb00c6f0000", // The Legend of Zelda™: Links Awakening
"01006f8002326000", // Animal Crossing™: New Horizons
"01006a800016e000", // Super Smash Bros.™ Ultimate
"010072800cbe8000", // PC Building Simulator
"01007300020fa000", // ASTRAL CHAIN
"01007330027ee000", // Ultra Street Fighter® II: The Final Challengers
"0100749009844000", // 20XX
"01007a4008486000", // Enchanting Mahjong Match
"01007ef00011e000", // The Legend of Zelda™: Breath of the Wild
"010080b00ad66000", // Undertale
"010082400bcc6000", // Untitled Goose Game
"01008db008c2c000", // Pokémon™ Shield
"010094e00b52e000", // Capcom Beat 'Em Up Bundle
"01009aa000faa000", // Sonic Mania
"01009b90006dc000", // Super Mario Maker™ 2
"01009cc00c97c000", // DEAD OR ALIVE Xtreme 3 Scarlet 基本無料版
"0100ea80032ea000", // New Super Mario Bros.™ U Deluxe
"0100a4200a284000", // LUMINES REMASTERED
"0100a5c00d162000", // Cuphead
"0100abf008968000", // Pokémon™ Sword
"0100ae000aebc000", // Angels of Death
"0100b3f000be2000", // Pokkén Tournament™ DX
"0100bc2004ff4000", // Owlboy
"0100cf3007578000", // Atari Flashback Classics
"0100d5d00c6be000", // Our World Is Ended.
"0100d6b00cd88000", // YUMENIKKI -DREAM DIARY-
"0100d870045b6000", // Nintendo Entertainment System™ - Nintendo Switch Online
"0100e0c00adac000", // SENRAN KAGURA Reflexions
"0100e46006708000", // Terraria
"0100e7200b272000", // Lanota
"0100e9f00b882000", // null
"0100eab00605c000", // Poly Bridge
"0100efd00a4fa000", // Shantae and the Pirate's Curse
"0100f6a00a684000", // ひぐらしのなく頃に奉
"0100f9f00c696000", // Crash™ Team Racing Nitro-Fueled
"051337133769a000", // RGB-Seizure
};
}
}

View file

@ -1,49 +0,0 @@
01000d200ac0c000
01000d700be88000
01000dc007e90000
01000e2003fa0000
0100225000fee000
010028d0045ce000
01002b30028f6000
01002fc00c6d0000
010034e005c9c000
01004f8006a78000
010051f00ac5e000
010056e00853a000
0100574009f9e000
0100628004bce000
0100633007d48000
010065500b218000
010068f00aa78000
01006a800016e000
010072800cbe8000
01007300020fa000
01007330027ee000
0100749009844000
01007a4008486000
01007ef00011e000
010080b00ad66000
01008db008c2c000
010094e00b52e000
01009aa000faa000
01009b90006dc000
01009cc00c97c000
0100a4200a284000
0100a5c00d162000
0100abf008968000
0100ae000aebc000
0100b3f000be2000
0100bc2004ff4000
0100cf3007578000
0100d5d00c6be000
0100d6b00cd88000
0100d870045b6000
0100e0c00adac000
0100e46006708000
0100e7200b272000
0100e9f00b882000
0100eab00605c000
0100efd00a4fa000
0100f6a00a684000
0100f9f00c696000
051337133769a000

View file

@ -93,9 +93,6 @@
<None Update="Config.json" Condition="'$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Profile Debug'">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="RPsupported.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View file

@ -363,7 +363,9 @@ namespace Ryujinx.Ui
else
{
Logger.PrintWarning(LogClass.Application, "Please specify a valid XCI/NCA/NSP/PFS0/NRO file.");
End(device);
device.Dispose();
return;
}
_emulationContext = device;