mirror of
https://github.com/yuzu-emu/discord-rpc
synced 2024-11-22 18:13:46 +00:00
Added request to join functionality
This commit is contained in:
parent
86ca320cb9
commit
e4b3ef63b7
2 changed files with 36 additions and 4 deletions
|
@ -51,9 +51,15 @@ public class DiscordController : MonoBehaviour {
|
||||||
{
|
{
|
||||||
++callbackCalls;
|
++callbackCalls;
|
||||||
Debug.Log(string.Format("Discord: spectate ({0})", secret));
|
Debug.Log(string.Format("Discord: spectate ({0})", secret));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Start () {
|
public void RequestCallback(DiscordRpc.JoinRequest request)
|
||||||
|
{
|
||||||
|
++callbackCalls;
|
||||||
|
Debug.Log(string.Format("Discord: join request {0}: {1}", request.username, request.userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start () {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update () {
|
void Update () {
|
||||||
|
@ -71,6 +77,7 @@ public class DiscordController : MonoBehaviour {
|
||||||
handlers.errorCallback += ErrorCallback;
|
handlers.errorCallback += ErrorCallback;
|
||||||
handlers.joinCallback += JoinCallback;
|
handlers.joinCallback += JoinCallback;
|
||||||
handlers.spectateCallback += SpectateCallback;
|
handlers.spectateCallback += SpectateCallback;
|
||||||
|
handlers.requestCallback += RequestCallback;
|
||||||
DiscordRpc.Initialize(applicationId, ref handlers, true, optionalSteamId);
|
DiscordRpc.Initialize(applicationId, ref handlers, true, optionalSteamId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,14 +17,18 @@ public class DiscordRpc
|
||||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
public delegate void SpectateCallback(string secret);
|
public delegate void SpectateCallback(string secret);
|
||||||
|
|
||||||
public struct EventHandlers
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
|
public delegate void RequestCallback(JoinRequest request);
|
||||||
|
|
||||||
|
public struct EventHandlers
|
||||||
{
|
{
|
||||||
public ReadyCallback readyCallback;
|
public ReadyCallback readyCallback;
|
||||||
public DisconnectedCallback disconnectedCallback;
|
public DisconnectedCallback disconnectedCallback;
|
||||||
public ErrorCallback errorCallback;
|
public ErrorCallback errorCallback;
|
||||||
public JoinCallback joinCallback;
|
public JoinCallback joinCallback;
|
||||||
public SpectateCallback spectateCallback;
|
public SpectateCallback spectateCallback;
|
||||||
}
|
public RequestCallback requestCallback;
|
||||||
|
}
|
||||||
|
|
||||||
[System.Serializable]
|
[System.Serializable]
|
||||||
public struct RichPresence
|
public struct RichPresence
|
||||||
|
@ -46,6 +50,24 @@ public class DiscordRpc
|
||||||
public bool instance;
|
public bool instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
||||||
|
public struct JoinRequest
|
||||||
|
{
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 24)]
|
||||||
|
public string userId;
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 48)]
|
||||||
|
public string username;
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
||||||
|
public string avatarUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Reply
|
||||||
|
{
|
||||||
|
No = 0,
|
||||||
|
Yes = 1,
|
||||||
|
Ignore = 2
|
||||||
|
}
|
||||||
|
|
||||||
[DllImport("discord-rpc", EntryPoint = "Discord_Initialize", CallingConvention = CallingConvention.Cdecl)]
|
[DllImport("discord-rpc", EntryPoint = "Discord_Initialize", CallingConvention = CallingConvention.Cdecl)]
|
||||||
public static extern void Initialize(string applicationId, ref EventHandlers handlers, bool autoRegister, string optionalSteamId);
|
public static extern void Initialize(string applicationId, ref EventHandlers handlers, bool autoRegister, string optionalSteamId);
|
||||||
|
|
||||||
|
@ -57,5 +79,8 @@ public class DiscordRpc
|
||||||
|
|
||||||
[DllImport("discord-rpc", EntryPoint = "Discord_UpdatePresence", CallingConvention = CallingConvention.Cdecl)]
|
[DllImport("discord-rpc", EntryPoint = "Discord_UpdatePresence", CallingConvention = CallingConvention.Cdecl)]
|
||||||
public static extern void UpdatePresence(ref RichPresence presence);
|
public static extern void UpdatePresence(ref RichPresence presence);
|
||||||
|
|
||||||
|
[DllImport("discord-rpc", EntryPoint = "Discord_Respond", CallingConvention = CallingConvention.Cdecl)]
|
||||||
|
public static extern void Respond(string userId, Reply reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue