Skip to content

Commit 349764a

Browse files
authored
Merge pull request #142 from playroomkit/discord-updates
feat: OpenDiscordInvite
2 parents facd1d1 + 8a2c121 commit 349764a

11 files changed

Lines changed: 84 additions & 4 deletions

File tree

Assets/PlayroomKit/PlayroomKit.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,5 +345,13 @@ public void ClearTurns(Action callback = null)
345345
}
346346

347347
#endregion
348+
349+
#region Discord
350+
public void OpenDiscordInviteDialog(Action callback = null)
351+
{
352+
CheckPlayRoomInitialized();
353+
_playroomService.OpenDiscordInviteDialog(callback);
354+
}
355+
#endregion
348356
}
349357
}

Assets/PlayroomKit/modules/Headers.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,5 +166,10 @@ private static extern string GetPersistentDataInternal(string key,
166166

167167
#endregion
168168

169+
#region Discord
170+
[DllImport("__Internal")]
171+
private static extern void OpenDiscordInviteDialogInternal(Action callback = null);
172+
#endregion
173+
169174
}
170175
}

Assets/PlayroomKit/modules/Helpers/InternalFunctions/IInternalFunctions.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ void RpcCallWrapper(string name, string data, RpcMode mode,
9494

9595
string GetProfileWrapper(string playerID);
9696

97-
//
9897
void SetPersistentDataWrapper(string key, string value);
9998
void InsertPersistentDataWrapper(string key, string value);
10099

@@ -113,6 +112,11 @@ void RpcCallWrapper(string name, string data, RpcMode mode,
113112
void ClearTurnsWrapper(Action callback = null);
114113

115114
#endregion
115+
116+
#region Discord
117+
void OpenDiscordInviteDialogInternalWrapper(Action callback = null);
118+
#endregion
119+
116120
}
117121
}
118122
}

Assets/PlayroomKit/modules/Helpers/InternalFunctions/InterlopWrapper.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,10 @@ public void ClearTurnsWrapper(Action callback = null)
284284
ClearTurnsInternal(callback);
285285
}
286286

287+
public void OpenDiscordInviteDialogInternalWrapper(Action callback = null)
288+
{
289+
OpenDiscordInviteDialogInternal(callback);
290+
}
287291
#endregion
288292
}
289293
}

Assets/PlayroomKit/modules/Interfaces/IPlayroomBase.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ public void InsertCoin(InitOptions options = null, Action onLaunchCallBack = nul
7070

7171
#endregion
7272

73+
#region Discord
74+
public void OpenDiscordInviteDialog(Action callback = null);
75+
#endregion
76+
77+
7378
#region Callbacks Wrappers
7479

7580
[MonoPInvokeCallback(typeof(Action<string>))]

Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,12 @@ public string GetPlayroomToken()
313313
return string.Empty;
314314
}
315315

316+
public void OpenDiscordInviteDialog(Action callback = null)
317+
{
318+
DebugLogger.LogWarning("[MockMode] Discord invite dialog is currently not supported in browser mock mode!");
319+
callback?.Invoke();
320+
}
321+
316322
#endregion
317323
}
318324
#endif

Assets/PlayroomKit/modules/MockMode/LocalPlayroomService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ public string GetPlayroomToken()
214214
return default;
215215
}
216216

217+
public void OpenDiscordInviteDialog(Action callback = null)
218+
{
219+
DebugLogger.LogWarning("[MockMode] Discord invite dialog is currently not supported in local mode!");
220+
callback?.Invoke();
221+
}
217222
#endregion
218223
}
219224
}

Assets/PlayroomKit/modules/PlayroomBuildService.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,8 +431,23 @@ private static void ClearTurnsCallback()
431431

432432
#endregion
433433

434+
#region Discord API
435+
public void OpenDiscordInviteDialog(Action callback = null)
436+
{
437+
CheckPlayRoomInitialized();
438+
CallbackManager.RegisterCallback(callback, "discordInviteDialog");
439+
_interop.OpenDiscordInviteDialogInternalWrapper(OpenDiscordInviteDialogCallbackInvoker);
440+
}
441+
#endregion
442+
434443
#region Callbacks
435444

445+
[MonoPInvokeCallback(typeof(Action))]
446+
private static void OpenDiscordInviteDialogCallbackInvoker()
447+
{
448+
CallbackManager.InvokeCallback("discordInviteDialog");
449+
}
450+
436451
[MonoPInvokeCallback(typeof(Action))]
437452
private static void InvokeStartMatchmakingCallback()
438453
{
@@ -479,7 +494,6 @@ private static void InvokeOnErrorInsertCoin(string error)
479494
_onError?.Invoke(error);
480495
Debug.LogException(new Exception(error));
481496
}
482-
483497
#endregion
484498
}
485499
}

Assets/PlayroomKit/src/index.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,27 @@ mergeInto(LibraryManager.library, {
10711071
},
10721072
//#endregion
10731073

1074+
//#region Discord
1075+
OpenDiscordInviteDialogInternal: function (callback) {
1076+
if (!window.Playroom) {
1077+
console.error(
1078+
"Playroom library is not loaded. Please make sure to call InsertCoin first."
1079+
);
1080+
return;
1081+
}
1082+
1083+
Playroom.openDiscordInviteDialog()
1084+
.then(() => {
1085+
console.log("Discord invite dialog opened successfully.");
1086+
{{{ makeDynCall('v', 'callback') }}}()
1087+
})
1088+
.catch((error) => {
1089+
console.error("Failed to open Discord invite dialog:", error);
1090+
});
1091+
},
1092+
//#endregion
1093+
1094+
10741095
//#region Utils
10751096
GetPlayroomTokenInternal: function () {
10761097
try {

Assets/Scenes/TestScene.unity

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,8 @@ MonoBehaviour:
214214
m_fontSizeMin: 18
215215
m_fontSizeMax: 72
216216
m_fontStyle: 0
217-
m_HorizontalAlignment: 1
218-
m_VerticalAlignment: 256
217+
m_HorizontalAlignment: 2
218+
m_VerticalAlignment: 512
219219
m_textAlignment: 65535
220220
m_characterSpacing: 0
221221
m_wordSpacing: 0

0 commit comments

Comments
 (0)