PluralRichPresence/PluralRichPresnce/Discord/DiscordRpc.cs

40 lines
1.5 KiB
C#

using DiscordRPC;
using DiscordRPC.Logging;
namespace PluralRichPresence.Discord
{
public class DiscordRpc : IDiscordActivitySetter
{
private const string DEFAULT_APPLICATION_ID = "1163661006719963158";
private const string DEFAULT_ICON = "plural";
private DiscordRpcClient client;
public DiscordRpc()
{
client = new DiscordRpcClient(Config.GetEntry("DISCORD_APPLICATION_ID", DEFAULT_APPLICATION_ID));
client.Logger = new ConsoleLogger() { Level = LogLevel.None };
client.OnReady += (sender, e) => { };
client.OnPresenceUpdate += (sender, e) => { };
client.Initialize();
}
public void SetFronter(SystemMember sysMember)
{
client.SetPresence(new RichPresence()
{
Details = sysMember.Name,
State = sysMember.Pronouns,
Assets = new Assets()
{
LargeImageKey = (sysMember.ProfilePhotoUrl is not null) ? sysMember.ProfilePhotoUrl : Config.GetEntry("PLURAL_ICON_NAME", DEFAULT_ICON),
LargeImageText = sysMember.Name + " - " + sysMember.Pronouns,
SmallImageKey = Config.GetEntry("PLURAL_ICON_NAME", DEFAULT_ICON)
},
Timestamps = new Timestamps()
{
StartUnixMilliseconds = sysMember.TimeStamp
}
});
}
}
}