mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-05-24 01:35:41 +00:00
RichPresenceClient.cs - Added ability to disable the rich presence in the settings
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using DiscordRPC;
|
||||
using PckStudio.Internal;
|
||||
using PckStudio.Properties;
|
||||
using DiscordRPC.Logging;
|
||||
|
||||
namespace PckStudio.Classes.Misc
|
||||
{
|
||||
// https://github.com/BullyWiiPlaza/Minecraft-Wii-U-Mod-Injector/blob/main/Minecraft%20Wii%20U%20Mod%20Injector/Helpers/DiscordRp.cs
|
||||
// https://github.com/BullyWiiPlaza/Minecraft-Wii-U-Mod-Injector/blob/main/Minecraft%20Wii%20U%20Mod%20Injector/Helpers/DiscordRpc.cs
|
||||
static class RPC
|
||||
{
|
||||
public static DiscordRpcClient Client;
|
||||
public static readonly DateTime StartUpTime = DateTime.UtcNow;
|
||||
private static DiscordRpcClient Client;
|
||||
private static readonly DateTime StartUpTime = DateTime.UtcNow;
|
||||
private static RichPresence _richPresence;
|
||||
|
||||
private static readonly Assets _assets = new Assets()
|
||||
{
|
||||
@@ -16,6 +20,8 @@ namespace PckStudio.Classes.Misc
|
||||
LargeImageText = System.Windows.Forms.Application.ProductName,
|
||||
};
|
||||
|
||||
private static readonly Timestamps _startTimestamp = new Timestamps(StartUpTime);
|
||||
|
||||
private static readonly Button[] _buttons = new Button[]
|
||||
{
|
||||
new Button()
|
||||
@@ -25,13 +31,34 @@ namespace PckStudio.Classes.Misc
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
if (Settings.Default.ShowRichPresence)
|
||||
Client ??= new DiscordRpcClient(Settings.Default.RichPresenceId);
|
||||
#if DEBUG
|
||||
Client.Logger = new ConsoleLogger(LogLevel.Info, true);
|
||||
#endif
|
||||
if (!Client.IsInitialized)
|
||||
{
|
||||
Client ??= new DiscordRpcClient(Settings.Default.RichPresenceId);
|
||||
Client.Initialize();
|
||||
}
|
||||
SettingsManager.RegisterPropertyChangedCallback<bool>(nameof(Settings.Default.ShowRichPresence), state =>
|
||||
{
|
||||
if (state)
|
||||
{
|
||||
Client.SetPresence(_richPresence);
|
||||
return;
|
||||
}
|
||||
Client.ClearPresence();
|
||||
});
|
||||
}
|
||||
|
||||
public static void Deinitialize()
|
||||
{
|
||||
if (Client.IsInitialized)
|
||||
Client?.ClearPresence();
|
||||
Client?.Dispose();
|
||||
Client = null;
|
||||
}
|
||||
|
||||
public static void SetPresence(string details)
|
||||
@@ -41,21 +68,16 @@ namespace PckStudio.Classes.Misc
|
||||
|
||||
public static void SetPresence(string details, string state)
|
||||
{
|
||||
Client?.SetPresence(new RichPresence()
|
||||
_richPresence = new RichPresence()
|
||||
{
|
||||
Details = details,
|
||||
State = state,
|
||||
Timestamps = new Timestamps() { Start = StartUpTime },
|
||||
Timestamps = _startTimestamp,
|
||||
Assets = _assets,
|
||||
Buttons = _buttons
|
||||
});
|
||||
}
|
||||
|
||||
public static void Deinitialize()
|
||||
{
|
||||
Client?.ClearPresence();
|
||||
Client?.Dispose();
|
||||
Client = null;
|
||||
};
|
||||
if (Settings.Default.ShowRichPresence)
|
||||
Client?.SetPresence(_richPresence);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user