Add Discord GameSDK.

This commit is contained in:
2023-01-01 18:48:03 +08:00
parent 8cdab36cd6
commit 732af15d9b
33 changed files with 4907 additions and 1 deletions

View File

@@ -73,6 +73,7 @@ namespace Cryville.Crtr.Browsing {
Application.LoadLevelAdditive("Play");
#endif
GameObject.Find("/Master").GetComponent<Master>().HideMenu();
DiscordController.Instance.SetPlaying(string.Format("{0} - {1}", detail.Meta.song.name, detail.Meta.name), detail.Meta.length);
}
public void OpenConfig(int id, ChartDetail detail) {

View File

@@ -279,6 +279,7 @@ namespace Cryville.Crtr {
#elif UNITY_5_3_OR_NEWER
SceneManager.UnloadScene("Play");
#endif
DiscordController.Instance.SetIdle();
}
#pragma warning restore IDE1006

View File

@@ -0,0 +1,54 @@
using Discord;
using System;
using UnityEngine;
namespace Cryville.Crtr {
internal class DiscordController : MonoBehaviour {
public static DiscordController Instance;
const long CLIENT_ID = 1059021675578007622L;
Discord.Discord dc;
ActivityManager am;
long launchTime;
void Start() {
Instance = this;
launchTime = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds;
dc = new Discord.Discord(CLIENT_ID, (UInt64)CreateFlags.Default);
am = dc.GetActivityManager();
SetIdle();
}
void Update() {
dc.RunCallbacks();
}
void OnApplicationQuit() {
dc.Dispose();
}
void Callback(Result result) { }
public void SetIdle() {
am.UpdateActivity(new Activity {
State = "Idle",
Instance = false,
Timestamps = { Start = launchTime },
}, Callback);
}
public void SetPlaying(string detail, double? duration) {
long now = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds;
am.UpdateActivity(new Activity {
State = "Playing a chart",
Details = detail,
Instance = true,
Timestamps = {
Start = now,
End = duration == null ? 0 : now + (long)duration,
},
}, Callback);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7f7c5da9a520bef4e832e2f89f7b737f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -2,7 +2,8 @@
"name": "Cryville.Crtr",
"rootNamespace": "",
"references": [
"GUID:d8ea0e0da3ad53a45b65c912ffcacab0"
"GUID:d8ea0e0da3ad53a45b65c912ffcacab0",
"GUID:5686e5ee69d0e084c843d61c240d7fdb"
],
"includePlatforms": [],
"excludePlatforms": [],