Skip to content

Commit e6390c8

Browse files
authored
Unity il2cpp support (discord#249)
* Initial il2cpp support attempts * Fix crashes * Different variable name * Fix indenting * Change back unneeded stuff - callbackCalls didnt seem to do anything
1 parent 2fec0b6 commit e6390c8

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

examples/button-clicker/Assets/DiscordController.cs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public class DiscordController : MonoBehaviour
1414
public DiscordRpc.RichPresence presence = new DiscordRpc.RichPresence();
1515
public string applicationId;
1616
public string optionalSteamId;
17-
public int callbackCalls;
1817
public int clickCounter;
1918
public DiscordRpc.DiscordUser joinRequest;
2019
public UnityEngine.Events.UnityEvent onConnect;
@@ -52,41 +51,35 @@ public void RequestRespondNo()
5251

5352
public void ReadyCallback(ref DiscordRpc.DiscordUser connectedUser)
5453
{
55-
++callbackCalls;
5654
Debug.Log(string.Format("Discord: connected to {0}#{1}: {2}", connectedUser.username, connectedUser.discriminator, connectedUser.userId));
5755
onConnect.Invoke();
5856
}
5957

6058
public void DisconnectedCallback(int errorCode, string message)
6159
{
62-
++callbackCalls;
6360
Debug.Log(string.Format("Discord: disconnect {0}: {1}", errorCode, message));
6461
onDisconnect.Invoke();
6562
}
6663

6764
public void ErrorCallback(int errorCode, string message)
6865
{
69-
++callbackCalls;
7066
Debug.Log(string.Format("Discord: error {0}: {1}", errorCode, message));
7167
}
7268

7369
public void JoinCallback(string secret)
7470
{
75-
++callbackCalls;
7671
Debug.Log(string.Format("Discord: join ({0})", secret));
7772
onJoin.Invoke(secret);
7873
}
7974

8075
public void SpectateCallback(string secret)
8176
{
82-
++callbackCalls;
8377
Debug.Log(string.Format("Discord: spectate ({0})", secret));
8478
onSpectate.Invoke(secret);
8579
}
8680

8781
public void RequestCallback(ref DiscordRpc.DiscordUser request)
8882
{
89-
++callbackCalls;
9083
Debug.Log(string.Format("Discord: join request {0}#{1}: {2}", request.username, request.discriminator, request.userId));
9184
joinRequest = request;
9285
onJoinRequest.Invoke(request);
@@ -104,10 +97,8 @@ void Update()
10497
void OnEnable()
10598
{
10699
Debug.Log("Discord: init");
107-
callbackCalls = 0;
108-
109100
handlers = new DiscordRpc.EventHandlers();
110-
handlers.readyCallback = ReadyCallback;
101+
handlers.readyCallback += ReadyCallback;
111102
handlers.disconnectedCallback += DisconnectedCallback;
112103
handlers.errorCallback += ErrorCallback;
113104
handlers.joinCallback += JoinCallback;

examples/button-clicker/Assets/DiscordRpc.cs

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,42 @@
22
using System.Collections.Generic;
33
using System.Runtime.InteropServices;
44
using System.Text;
5+
using AOT;
56

67
public class DiscordRpc
78
{
8-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
9-
public delegate void ReadyCallback(ref DiscordUser connectedUser);
9+
[MonoPInvokeCallback(typeof(OnReadyInfo))]
10+
public static void ReadyCallback(ref DiscordUser connectedUser) { }
11+
public delegate void OnReadyInfo(ref DiscordUser connectedUser);
1012

11-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
12-
public delegate void DisconnectedCallback(int errorCode, string message);
13+
[MonoPInvokeCallback(typeof(OnDisconnectedInfo))]
14+
public static void DisconnectedCallback(int errorCode, string message) { }
15+
public delegate void OnDisconnectedInfo(int errorCode, string message);
1316

14-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
15-
public delegate void ErrorCallback(int errorCode, string message);
17+
[MonoPInvokeCallback(typeof(OnErrorInfo))]
18+
public static void ErrorCallback(int errorCode, string message) { }
19+
public delegate void OnErrorInfo(int errorCode, string message);
1620

17-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
18-
public delegate void JoinCallback(string secret);
21+
[MonoPInvokeCallback(typeof(OnJoinInfo))]
22+
public static void JoinCallback(string secret) { }
23+
public delegate void OnJoinInfo(string secret);
1924

20-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
21-
public delegate void SpectateCallback(string secret);
25+
[MonoPInvokeCallback(typeof(OnSpectateInfo))]
26+
public static void SpectateCallback(string secret) { }
27+
public delegate void OnSpectateInfo(string secret);
2228

23-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
24-
public delegate void RequestCallback(ref DiscordUser request);
29+
[MonoPInvokeCallback(typeof(OnRequestInfo))]
30+
public static void RequestCallback(ref DiscordUser request) { }
31+
public delegate void OnRequestInfo(ref DiscordUser request);
2532

2633
public struct EventHandlers
2734
{
28-
public ReadyCallback readyCallback;
29-
public DisconnectedCallback disconnectedCallback;
30-
public ErrorCallback errorCallback;
31-
public JoinCallback joinCallback;
32-
public SpectateCallback spectateCallback;
33-
public RequestCallback requestCallback;
35+
public OnReadyInfo readyCallback;
36+
public OnDisconnectedInfo disconnectedCallback;
37+
public OnErrorInfo errorCallback;
38+
public OnJoinInfo joinCallback;
39+
public OnSpectateInfo spectateCallback;
40+
public OnRequestInfo requestCallback;
3441
}
3542

3643
[Serializable, StructLayout(LayoutKind.Sequential)]
@@ -160,7 +167,7 @@ private IntPtr StrToPtr(string input)
160167
var buffer = Marshal.AllocHGlobal(convbytecnt + 1);
161168
for (int i = 0; i < convbytecnt + 1; i++)
162169
{
163-
Marshal.WriteByte(buffer, i , 0);
170+
Marshal.WriteByte(buffer, i, 0);
164171
}
165172
_buffers.Add(buffer);
166173
Marshal.Copy(Encoding.UTF8.GetBytes(input), 0, buffer, convbytecnt);

0 commit comments

Comments
 (0)