-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathClientConfig.cs
75 lines (66 loc) · 1.89 KB
/
ClientConfig.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System.ComponentModel;
using DiscordRPC;
using Terraria;
using Terraria.ModLoader.Config;
namespace DiscordRP {
[Label("Config")]
public class ClientConfig : ModConfig {
public override ConfigScope Mode => ConfigScope.ClientSide;
private DiscordRpcClient Client => DiscordRPMod.Instance?.Client;
[Header("Rich Presence Settings")]
[Label("Enable Rich Presence")]
[DefaultValue(true)]
public bool enable;
[Label("Rich Presence Update Time")]
[Tooltip("How many seconds elapsed between Rich Presence update")]
[Range(1u, 60u)]
[DefaultValue(1u)]
[Slider]
public uint timer;
[Header("Visibility Settings")]
[Label("Display Time Elapsed")]
[DefaultValue(true)]
public bool showTime;
[Label("Display Day/Night")]
[DefaultValue(true)]
public bool showTimeCycle;
[Label("Display Player Health")]
[DefaultValue(true)]
public bool showHealth;
[Label("Display Player Mana")]
[DefaultValue(true)]
public bool showMana;
[Label("Display Player Defense")]
[DefaultValue(true)]
public bool showDefense;
[Label("Display Weapon Damage")]
[DefaultValue(true)]
public bool showDamage;
public override void OnLoaded() {
DiscordRPMod.Instance.config = this;
}
public override void OnChanged() {
if (DiscordRPMod.Instance == null || DiscordRPMod.Instance.Client == null) {
return;
}
if (enable) {
if (Client.IsDisposed) {
DiscordRPMod.Instance.CreateNewDiscordRPCRichPresenceInstance();
}
else if (!Client.IsInitialized) {
Client.Initialize();
}
string currentClient = DiscordRPMod.Instance.currentClient;
DiscordRPMod.Instance.currentClient = "default";
DiscordRPMod.Instance.ChangeDiscordClient(currentClient);
if (!Main.gameMenu) {
DiscordRPMod.Instance.ClientUpdatePlayer();
}
DiscordRPMod.Instance.ClientForceUpdate();
}
else if (!Client.IsDisposed) {
Client.Dispose();
}
}
}
}