├── .github └── FUNDING.yml ├── .gitignore ├── Config ├── DefaultEOSIntegrationKit.ini └── FilterPlugin.ini ├── EOSIntegrationKit.uplugin ├── LICENSE ├── README.md ├── Resources ├── Icon128.png ├── NewButtonIcon.png └── PlaceholderButtonIcon.png └── Source ├── .DS_Store ├── DiscordGame ├── DiscordGame.Build.cs ├── DiscordGame.cpp ├── DiscordGame.h ├── DiscordGameSubsystem.cpp ├── DiscordGameSubsystem.h ├── EIK_GetDiscordAuthToken_AsyncFunction.cpp ├── EIK_GetDiscordAuthToken_AsyncFunction.h └── discord-cpp.zip ├── EIKEditor ├── EIKEditor.Build.cs ├── Private │ ├── EIKEditor.cpp │ └── EosIconStyle.cpp └── Public │ ├── EIKEditor.h │ └── EosIconStyle.h ├── EIKLoginMethods ├── EIKLoginMethods.Build.cs ├── Private │ ├── Android │ │ └── Utils │ │ │ ├── AndroidJNICallUtils.cpp │ │ │ ├── AndroidJNICallUtils.h │ │ │ ├── AndroidJNIConvertor.cpp │ │ │ └── AndroidJNIConvertor.h │ ├── EIKLoginMethods.cpp │ ├── GoogleOneTap │ │ ├── BFL_GoogleSignIn.cpp │ │ ├── GoogleLogin_SLK.cpp │ │ └── GoogleLogout_SLK.cpp │ └── GooglePlayGames │ │ ├── AsyncNodes │ │ ├── GPGS_GetPlayerStats.cpp │ │ ├── GPGS_LoadEvent.cpp │ │ ├── GPGS_LoadFriends.cpp │ │ ├── GPGS_ReadSavedGame.cpp │ │ ├── GPGS_ShowSavedGamesUI.cpp │ │ └── GPGS_WriteSavedGame.cpp │ │ └── BFL_GooglePlayGames.cpp └── Public │ ├── EIKLoginMethods.h │ ├── GoogleOneTap │ ├── BFL_GoogleSignIn.h │ ├── GoogleLogin_SLK.h │ └── GoogleLogout_SLK.h │ └── GooglePlayGames │ ├── AsyncNodes │ ├── GPGS_GetPlayerStats.h │ ├── GPGS_LoadEvent.h │ ├── GPGS_LoadFriends.h │ ├── GPGS_ReadSavedGame.h │ ├── GPGS_ShowSavedGamesUI.h │ └── GPGS_WriteSavedGame.h │ ├── BFL_GooglePlayGames.h │ ├── GooglePlayGamesMethods.h │ └── GooglePlayGamesStructures.h ├── EIKShared ├── EIKShared.Build.cs ├── Private │ ├── Android │ │ ├── AndroidEOSSDKManager.cpp │ │ └── AndroidEOSSDKManager.h │ ├── EIKSharedModule.cpp │ ├── EIKSharedModule.h │ ├── EOSSDKManager.cpp │ ├── EOSSDKManager.h │ ├── EOSShared.cpp │ ├── IOS │ │ ├── IOSEOSSDKManager.cpp │ │ └── IOSEOSSDKManager.h │ ├── Linux │ │ └── LinuxEOSSDKManager.h │ ├── Mac │ │ └── MacEOSSDKManager.h │ └── Windows │ │ ├── WindowsEOSSDKManager.cpp │ │ └── WindowsEOSSDKManager.h └── Public │ ├── EOSShared.h │ ├── EOSSharedTypes.h │ └── IEOSSDKManager.h ├── EIKVoiceChat ├── EIKVoiceChat.Build.cs ├── Functions │ ├── EVIK_Functions.cpp │ └── EVIK_Functions.h ├── Private │ ├── Android │ │ ├── AndroidEOSVoiceChat.cpp │ │ ├── AndroidEOSVoiceChat.h │ │ ├── AndroidEOSVoiceChatUser.cpp │ │ └── AndroidEOSVoiceChatUser.h │ ├── EIKVoiceChatModule.cpp │ ├── EIKVoiceChatModule.h │ ├── EIKVoiceChatSynthComponent.cpp │ ├── EOSAudioDevicePool.cpp │ ├── EOSAudioDevicePool.h │ ├── EOSVoiceChat.cpp │ ├── EOSVoiceChatErrors.cpp │ ├── EOSVoiceChatErrors.h │ ├── EOSVoiceChatFactory.cpp │ ├── EOSVoiceChatUser.cpp │ ├── IOS │ │ ├── IOSEOSVoiceChat.cpp │ │ ├── IOSEOSVoiceChat.h │ │ ├── IOSEOSVoiceChatUser.cpp │ │ └── IOSEOSVoiceChatUser.h │ ├── Linux │ │ └── LinuxEOSVoiceChat.h │ ├── Mac │ │ └── MacEOSVoiceChat.h │ └── Windows │ │ ├── WindowsEOSVoiceChat.cpp │ │ └── WindowsEOSVoiceChat.h ├── Public │ ├── EIKVoiceChatSynthComponent.h │ ├── EOSVoiceChat.h │ ├── EOSVoiceChatFactory.h │ ├── EOSVoiceChatLog.h │ ├── EOSVoiceChatTypes.h │ └── EOSVoiceChatUser.h └── Subsystem │ ├── EIK_Voice_Subsystem.cpp │ └── EIK_Voice_Subsystem.h ├── EIKWeb ├── EIKWeb.Build.cs ├── Functions │ ├── AntiCheat │ │ ├── EIK_API_QueryAntiCheatServiceStatus.cpp │ │ └── EIK_API_QueryAntiCheatServiceStatus.h │ ├── Connect │ │ ├── EIK_API_QueryExternalAccounts.cpp │ │ ├── EIK_API_QueryExternalAccounts.h │ │ ├── EIK_API_QueryProductUsers.cpp │ │ ├── EIK_API_QueryProductUsers.h │ │ ├── EIK_API_RequestAccessToken.cpp │ │ └── EIK_API_RequestAccessToken.h │ ├── Ecom │ │ ├── EIK_API_DirectEntitlementEnumeration.cpp │ │ ├── EIK_API_DirectEntitlementEnumeration.h │ │ ├── EIK_API_DirectOwnershipVerification.cpp │ │ ├── EIK_API_DirectOwnershipVerification.h │ │ ├── EIK_API_QueryClawbacks.cpp │ │ ├── EIK_API_QueryClawbacks.h │ │ ├── EIK_API_QueryOffers.cpp │ │ ├── EIK_API_QueryOffers.h │ │ ├── EIK_API_RedeemEntitlements.cpp │ │ ├── EIK_API_RedeemEntitlements.h │ │ ├── EIK_API_TokenBasedEntitlementVerification.cpp │ │ ├── EIK_API_TokenBasedEntitlementVerification.h │ │ ├── EIK_API_TokenBasedOwnershipVerification.cpp │ │ ├── EIK_API_TokenBasedOwnershipVerification.h │ │ ├── EIK_API_VerifyEntitlementVerificationToken.cpp │ │ ├── EIK_API_VerifyEntitlementVerificationToken.h │ │ ├── EIK_API_VerifyOwnershipVerificationToken.cpp │ │ └── EIK_API_VerifyOwnershipVerificationToken.h │ ├── PlayerReports │ │ ├── EIK_API_FindPlayerReports.cpp │ │ ├── EIK_API_FindPlayerReports.h │ │ ├── EIK_API_GetReportReasonDefinition.cpp │ │ ├── EIK_API_GetReportReasonDefinition.h │ │ ├── EIK_API_SendNewPlayerReport.cpp │ │ └── EIK_API_SendNewPlayerReport.h │ ├── Sanctions │ │ ├── EIK_API_ApprovePendingSanctions.cpp │ │ ├── EIK_API_ApprovePendingSanctions.h │ │ ├── EIK_API_BulkQueryActiveSanction.cpp │ │ ├── EIK_API_BulkQueryActiveSanction.h │ │ ├── EIK_API_CreateSanctionAppealForLocalUser.cpp │ │ ├── EIK_API_CreateSanctionAppealForLocalUser.h │ │ ├── EIK_API_CreateSanctionAppeals.cpp │ │ ├── EIK_API_CreateSanctionAppeals.h │ │ ├── EIK_API_CreateSanctions.cpp │ │ ├── EIK_API_CreateSanctions.h │ │ ├── EIK_API_QueryActiveSanctions.cpp │ │ ├── EIK_API_QueryActiveSanctions.h │ │ ├── EIK_API_QueryAllSanctions.cpp │ │ ├── EIK_API_QueryAllSanctions.h │ │ ├── EIK_API_QueryAllSanctionsForPlayer.cpp │ │ ├── EIK_API_QueryAllSanctionsForPlayer.h │ │ ├── EIK_API_QuerySanctionAppeals.cpp │ │ ├── EIK_API_QuerySanctionAppeals.h │ │ ├── EIK_API_RemoveSanctions.cpp │ │ ├── EIK_API_RemoveSanctions.h │ │ ├── EIK_API_SyncSanctionsToExternalService.cpp │ │ ├── EIK_API_SyncSanctionsToExternalService.h │ │ ├── EIK_API_UpdatingSanctions.cpp │ │ └── EIK_API_UpdatingSanctions.h │ └── Voice │ │ ├── EIK_API_CreateRoomTokens.cpp │ │ ├── EIK_API_CreateRoomTokens.h │ │ ├── EIK_API_ModifyParticipant.cpp │ │ ├── EIK_API_ModifyParticipant.h │ │ ├── EIK_API_RemoveVoiceParticipant.cpp │ │ └── EIK_API_RemoveVoiceParticipant.h ├── Private │ ├── EIKWeb.cpp │ └── EIK_BaseWebApi.cpp └── Public │ ├── EIKWeb.h │ └── EIK_BaseWebApi.h ├── EOSIntegrationKit ├── EOSIntegrationKit.Build.cs ├── EOSIntegrationKit_Android.xml ├── Private │ ├── EIKSettings.cpp │ └── EOSIntegrationKit.cpp └── Public │ ├── EIKSettings.h │ └── EOSIntegrationKit.h ├── OnlineSubsystemEIK ├── AntiCheat │ ├── AntiCheatClient.cpp │ ├── AntiCheatClient.h │ ├── AntiCheatServer.cpp │ └── AntiCheatServer.h ├── AsyncFunctions │ ├── Achievements │ │ ├── EIK_GetAchievementDetails_AsyncFunction.cpp │ │ ├── EIK_GetAchievementDetails_AsyncFunction.h │ │ ├── EIK_GetAchievement_AsyncFunction.cpp │ │ └── EIK_GetAchievement_AsyncFunction.h │ ├── Beacons │ │ ├── EIK_CalculatePingForIp_AsyncFunction.cpp │ │ ├── EIK_CalculatePingForIp_AsyncFunction.h │ │ ├── EIK_CalculatePingForSession_AsyncFunction.cpp │ │ ├── EIK_CalculatePingForSession_AsyncFunction.h │ │ ├── PingClient.cpp │ │ ├── PingClient.h │ │ ├── PingHost.cpp │ │ ├── PingHost.h │ │ ├── PingHostObject.cpp │ │ └── PingHostObject.h │ ├── Extra │ │ ├── EIK_BlueprintFunctions.cpp │ │ ├── EIK_BlueprintFunctions.h │ │ ├── EIK_GetAppleAuthToken_AsyncFunction.cpp │ │ ├── EIK_GetAppleAuthToken_AsyncFunction.h │ │ ├── EIK_GetPlatformAuthToken_AsyncFunction.cpp │ │ ├── EIK_GetPlatformAuthToken_AsyncFunction.h │ │ ├── EIK_SanctionsAsyncFunction.cpp │ │ └── EIK_SanctionsAsyncFunction.h │ ├── Friends │ │ ├── EIK_AcceptFriendInvite_AsyncFunction.cpp │ │ ├── EIK_AcceptFriendInvite_AsyncFunction.h │ │ ├── EIK_GetFriendList_AsyncFunction.cpp │ │ ├── EIK_GetFriendList_AsyncFunction.h │ │ ├── EIK_InviteFriend_AsyncFunction.cpp │ │ ├── EIK_InviteFriend_AsyncFunction.h │ │ ├── EIK_RejectFriendInvite_AsyncFunction.cpp │ │ ├── EIK_RejectFriendInvite_AsyncFunction.h │ │ ├── EIK_SendSessionInvite_AsyncFunction.cpp │ │ └── EIK_SendSessionInvite_AsyncFunction.h │ ├── Login │ │ ├── EIK_DeleteDeviceId_AsyncFunction.cpp │ │ ├── EIK_DeleteDeviceId_AsyncFunction.h │ │ ├── EIK_GetIdToken_AsyncFunction.cpp │ │ ├── EIK_GetIdToken_AsyncFunction.h │ │ ├── EIK_Login_AsyncFunction.cpp │ │ ├── EIK_Login_AsyncFunction.h │ │ ├── EIK_LoginwithAuth_AsyncFunction.cpp │ │ ├── EIK_LoginwithAuth_AsyncFunction.h │ │ ├── EIK_Logout_AsyncFunction.cpp │ │ └── EIK_Logout_AsyncFunction.h │ ├── Party │ │ ├── EIK_CreateParty.cpp │ │ └── EIK_CreateParty.h │ ├── PlayFab │ │ ├── EIK_ConnectPlayFab_AsyncFunction.cpp │ │ └── EIK_ConnectPlayFab_AsyncFunction.h │ ├── PlayerStorage │ │ ├── EIK_GetPlayerData_AsyncFunction.cpp │ │ ├── EIK_GetPlayerData_AsyncFunction.h │ │ ├── EIK_SetPlayerData_AsyncFunction.cpp │ │ └── EIK_SetPlayerData_AsyncFunction.h │ ├── Presence │ │ ├── EIK_SetPresence_AsyncFunction.cpp │ │ └── EIK_SetPresence_AsyncFunction.h │ ├── Reports │ │ ├── EIK_OpenReportsUI_AsyncFunction.cpp │ │ ├── EIK_OpenReportsUI_AsyncFunction.h │ │ ├── EIK_SendReport_AsyncFunction.cpp │ │ └── EIK_SendReport_AsyncFunction.h │ ├── Sessions │ │ ├── EIK_CreateLobby_AsyncFunction.cpp │ │ ├── EIK_CreateLobby_AsyncFunction.h │ │ ├── EIK_CreateSession_AsyncFunction.cpp │ │ ├── EIK_CreateSession_AsyncFunction.h │ │ ├── EIK_DestroySession_AsyncFunction.cpp │ │ ├── EIK_DestroySession_AsyncFunction.h │ │ ├── EIK_FindSessionByID_AsyncFunction.cpp │ │ ├── EIK_FindSessionByID_AsyncFunction.h │ │ ├── EIK_FindSessions_AsyncFunction.cpp │ │ ├── EIK_FindSessions_AsyncFunction.h │ │ ├── EIK_JoinSession_AsyncFunction.cpp │ │ ├── EIK_JoinSession_AsyncFunction.h │ │ ├── EIK_UpdateSession_AsyncFunction.cpp │ │ └── EIK_UpdateSession_AsyncFunction.h │ ├── Stats │ │ ├── EIK_GetLeaderboardForUserIds.cpp │ │ ├── EIK_GetLeaderboardForUserIds.h │ │ ├── EIK_GetLeaderboards_AsyncFunction.cpp │ │ ├── EIK_GetLeaderboards_AsyncFunction.h │ │ ├── EIK_GetStats_AsyncFunction.cpp │ │ ├── EIK_GetStats_AsyncFunction.h │ │ ├── EIK_SetStats_AsyncFunction.cpp │ │ └── EIK_SetStats_AsyncFunction.h │ ├── Store │ │ ├── EIK_GetOffers_AsyncFunction.cpp │ │ ├── EIK_GetOffers_AsyncFunction.h │ │ ├── EIK_OwnedItems_AsyncFunction.cpp │ │ ├── EIK_OwnedItems_AsyncFunction.h │ │ ├── EIK_PurchaseItem_AsyncFunction.cpp │ │ └── EIK_PurchaseItem_AsyncFunction.h │ ├── SupportTickets │ │ ├── EIK_DeleteTicketData_AsyncFunct.cpp │ │ ├── EIK_DeleteTicketData_AsyncFunct.h │ │ ├── EIK_ExportTicketUserData_Async.cpp │ │ ├── EIK_ExportTicketUserData_Async.h │ │ ├── EIK_SendSupportTicket_Async.cpp │ │ └── EIK_SendSupportTicket_Async.h │ ├── TitleStorage │ │ ├── EIK_GetTitleData_AsyncFunction.cpp │ │ └── EIK_GetTitleData_AsyncFunction.h │ └── UserInfo │ │ ├── EIK_FindUserByDisplayName_Async.cpp │ │ ├── EIK_FindUserByDisplayName_Async.h │ │ ├── EIK_GetExternalAccountsFromPUID.cpp │ │ ├── EIK_GetExternalAccountsFromPUID.h │ │ ├── EIK_GetPUIDFromEpicId_AsyncFunc.cpp │ │ └── EIK_GetPUIDFromEpicId_AsyncFunc.h ├── OnlineSubsystemEIK.Build.cs ├── Private │ ├── Android │ │ ├── AndroidEOSHelpers.cpp │ │ └── AndroidEOSHelpers.h │ ├── EIK_BaseGameMode.cpp │ ├── EIK_EngineSubsystem.cpp │ ├── EIK_FriendSubsystem.cpp │ ├── EOSHelpers.cpp │ ├── EOSHelpers.h │ ├── IOS │ │ ├── IOSEOSHelpers.cpp │ │ └── IOSEOSHelpers.h │ ├── Linux │ │ └── LinuxEOSHelpers.h │ ├── Mac │ │ └── MacEOSHelpers.h │ ├── NboSerializerEOS.h │ ├── NetDriverEIK.h │ ├── OnlineAchievementsEOS.cpp │ ├── OnlineAchievementsEOS.h │ ├── OnlineLeaderboardsEOS.cpp │ ├── OnlineLeaderboardsEOS.h │ ├── OnlineSessionEOS.cpp │ ├── OnlineSessionEOS.h │ ├── OnlineStatsEOS.cpp │ ├── OnlineStatsEOS.h │ ├── OnlineStoreEOS.cpp │ ├── OnlineStoreEOS.h │ ├── OnlineSubsystemEIKModule.h │ ├── OnlineSubsystemEOS.cpp │ ├── OnlineSubsystemEOS.h │ ├── OnlineSubsystemEOSPrivate.h │ ├── OnlineSubsystemEOSTypes.cpp │ ├── OnlineSubsystemEOSTypes.h │ ├── OnlineSubsystemModuleEIK.cpp │ ├── OnlineTitleFileEOS.cpp │ ├── OnlineTitleFileEOS.h │ ├── OnlineUserCloudEOS.cpp │ ├── OnlineUserCloudEOS.h │ ├── SocketSubsystemEOSUtils_OnlineSubsystemEOS.cpp │ ├── SocketSubsystemEOSUtils_OnlineSubsystemEOS.h │ ├── UserManagerEOS.cpp │ ├── UserManagerEOS.h │ └── Windows │ │ ├── WindowsEOSHelpers.cpp │ │ └── WindowsEOSHelpers.h ├── Public │ ├── EIK_BaseGameMode.h │ ├── EIK_EngineSubsystem.h │ ├── EIK_FriendSubsystem.h │ └── IOnlineSubsystemEOS.h ├── SdkFunctions │ ├── AchievementsInterface │ │ ├── EIK_AchievementsSubsystem.cpp │ │ ├── EIK_AchievementsSubsystem.h │ │ ├── EIK_Achievements_QueryDefinitions.cpp │ │ ├── EIK_Achievements_QueryDefinitions.h │ │ ├── EIK_Achievements_QueryPlayerAchievements.cpp │ │ ├── EIK_Achievements_QueryPlayerAchievements.h │ │ ├── EIK_Achievements_UnlockAchievements.cpp │ │ └── EIK_Achievements_UnlockAchievements.h │ ├── AuthInterface │ │ ├── EIK_AuthSubsystem.cpp │ │ ├── EIK_AuthSubsystem.h │ │ ├── EIK_Auth_DeletePersistentAuth.cpp │ │ ├── EIK_Auth_DeletePersistentAuth.h │ │ ├── EIK_Auth_LinkAccount.cpp │ │ ├── EIK_Auth_LinkAccount.h │ │ ├── EIK_Auth_Login.cpp │ │ ├── EIK_Auth_Login.h │ │ ├── EIK_Auth_Logout.cpp │ │ ├── EIK_Auth_Logout.h │ │ ├── EIK_Auth_QueryIdToken.cpp │ │ ├── EIK_Auth_QueryIdToken.h │ │ ├── EIK_Auth_VerifyIdToken.cpp │ │ ├── EIK_Auth_VerifyIdToken.h │ │ ├── EIK_Auth_VerifyUserAuth.cpp │ │ └── EIK_Auth_VerifyUserAuth.h │ ├── ConnectInterface │ │ ├── EIK_ConnectSubsystem.cpp │ │ ├── EIK_ConnectSubsystem.h │ │ ├── EIK_Connect_CreateUser.cpp │ │ ├── EIK_Connect_CreateUser.h │ │ ├── EIK_Connect_Login.cpp │ │ ├── EIK_Connect_Login.h │ │ ├── EIK_Connect_Logout.cpp │ │ ├── EIK_Connect_Logout.h │ │ ├── EIK_Connect_QueryExternalAccountMappings.cpp │ │ ├── EIK_Connect_QueryExternalAccountMappings.h │ │ ├── EIK_Connect_QueryProductUserIdMappings.cpp │ │ ├── EIK_Connect_QueryProductUserIdMappings.h │ │ ├── EIK_Connect_TransferDeviceIdAccount.cpp │ │ ├── EIK_Connect_TransferDeviceIdAccount.h │ │ ├── EIK_Connect_UnlinkAccount.cpp │ │ ├── EIK_Connect_UnlinkAccount.h │ │ ├── EIK_Connect_VerifyIdToken.cpp │ │ ├── EIK_Connect_VerifyIdToken.h │ │ ├── EIK_CreateDeviceId_AsyncFunction.cpp │ │ ├── EIK_CreateDeviceId_AsyncFunction.h │ │ ├── EIK_LinkAccount_AsyncFunction.cpp │ │ └── EIK_LinkAccount_AsyncFunction.h │ ├── EIK_SharedFunctionFile.cpp │ ├── EIK_SharedFunctionFile.h │ ├── EcomInterface │ │ ├── EIK_EcomSubsystem.cpp │ │ ├── EIK_EcomSubsystem.h │ │ ├── EIK_Ecom_Checkout.cpp │ │ ├── EIK_Ecom_Checkout.h │ │ ├── EIK_Ecom_QueryEntitlements.cpp │ │ ├── EIK_Ecom_QueryEntitlements.h │ │ ├── EIK_Ecom_QueryOffers.cpp │ │ ├── EIK_Ecom_QueryOffers.h │ │ ├── EIK_Ecom_QueryOwnership.cpp │ │ ├── EIK_Ecom_QueryOwnership.h │ │ ├── EIK_Ecom_QueryOwnershipBySandboxIds.cpp │ │ ├── EIK_Ecom_QueryOwnershipBySandboxIds.h │ │ ├── EIK_Ecom_QueryOwnershipToken.cpp │ │ ├── EIK_Ecom_QueryOwnershipToken.h │ │ ├── EIK_Ecom_RedeemEntitlements.cpp │ │ └── EIK_Ecom_RedeemEntitlements.h │ ├── FriendsInterface │ │ ├── EIK_FriendsSubsystem.cpp │ │ ├── EIK_FriendsSubsystem.h │ │ ├── EIK_Friends_AcceptInvite.cpp │ │ ├── EIK_Friends_AcceptInvite.h │ │ ├── EIK_Friends_QueryFriends.cpp │ │ ├── EIK_Friends_QueryFriends.h │ │ ├── EIK_Friends_RejectInvite.cpp │ │ ├── EIK_Friends_RejectInvite.h │ │ ├── EIK_Friends_SendInvite.cpp │ │ └── EIK_Friends_SendInvite.h │ ├── LeaderboardsInterface │ │ ├── EIK_LeaderboardsSubsystem.cpp │ │ ├── EIK_LeaderboardsSubsystem.h │ │ ├── EIK_Leaderboards_QueryLeaderboardDefinitions.cpp │ │ ├── EIK_Leaderboards_QueryLeaderboardDefinitions.h │ │ ├── EIK_Leaderboards_QueryLeaderboardRanks.cpp │ │ ├── EIK_Leaderboards_QueryLeaderboardRanks.h │ │ ├── EIK_Leaderboards_QueryLeaderboardUserScores.cpp │ │ └── EIK_Leaderboards_QueryLeaderboardUserScores.h │ ├── LobbyInterface │ │ ├── EIK_LobbySearch_Find.cpp │ │ ├── EIK_LobbySearch_Find.h │ │ ├── EIK_LobbySubsystem.cpp │ │ ├── EIK_LobbySubsystem.h │ │ ├── EIK_Lobby_CreateLobby.cpp │ │ ├── EIK_Lobby_CreateLobby.h │ │ ├── EIK_Lobby_DestroyLobby.cpp │ │ ├── EIK_Lobby_DestroyLobby.h │ │ ├── EIK_Lobby_JoinLobby.cpp │ │ ├── EIK_Lobby_JoinLobby.h │ │ ├── EIK_Lobby_JoinLobbyById.cpp │ │ ├── EIK_Lobby_JoinLobbyById.h │ │ ├── EIK_Lobby_KickMember.cpp │ │ ├── EIK_Lobby_KickMember.h │ │ ├── EIK_Lobby_LeaveLobby.cpp │ │ ├── EIK_Lobby_LeaveLobby.h │ │ ├── EIK_Lobby_PromoteMember.cpp │ │ ├── EIK_Lobby_PromoteMember.h │ │ ├── EIK_Lobby_QueryInvites.cpp │ │ ├── EIK_Lobby_QueryInvites.h │ │ ├── EIK_Lobby_RejectInvite.cpp │ │ ├── EIK_Lobby_RejectInvite.h │ │ ├── EIK_Lobby_SendInvite.cpp │ │ ├── EIK_Lobby_SendInvite.h │ │ ├── EIK_Lobby_UpdateLobby.cpp │ │ └── EIK_Lobby_UpdateLobby.h │ ├── P2PInterface │ │ ├── EIK_P2PSubsystem.cpp │ │ ├── EIK_P2PSubsystem.h │ │ ├── EIK_P2P_QueryNATType.cpp │ │ └── EIK_P2P_QueryNATType.h │ ├── PlayerDataStorageInterface │ │ ├── EIK_PlayerDataStorageSubsystem.cpp │ │ ├── EIK_PlayerDataStorageSubsystem.h │ │ ├── EIK_PlayerDataStorage_DeleteCache.cpp │ │ ├── EIK_PlayerDataStorage_DeleteCache.h │ │ ├── EIK_PlayerDataStorage_DeleteFile.cpp │ │ ├── EIK_PlayerDataStorage_DeleteFile.h │ │ ├── EIK_PlayerDataStorage_DuplicateFile.cpp │ │ ├── EIK_PlayerDataStorage_DuplicateFile.h │ │ ├── EIK_PlayerDataStorage_QueryFile.cpp │ │ ├── EIK_PlayerDataStorage_QueryFile.h │ │ ├── EIK_PlayerDataStorage_QueryFileList.cpp │ │ ├── EIK_PlayerDataStorage_QueryFileList.h │ │ ├── EIK_PlayerDataStorage_ReadFile.cpp │ │ ├── EIK_PlayerDataStorage_ReadFile.h │ │ ├── EIK_PlayerDataStorage_WriteFile.cpp │ │ └── EIK_PlayerDataStorage_WriteFile.h │ ├── PresenceInterface │ │ ├── EIK_PresenceSubsystem.cpp │ │ ├── EIK_PresenceSubsystem.h │ │ ├── EIK_Presence_QueryPresence.cpp │ │ ├── EIK_Presence_QueryPresence.h │ │ ├── EIK_Presence_SetPresence.cpp │ │ └── EIK_Presence_SetPresence.h │ ├── RTCInterface │ │ ├── EIK_RTCSubsystem.cpp │ │ └── EIK_RTCSubsystem.h │ ├── SanctionsInterface │ │ ├── EIK_SanctionsSubsystem.cpp │ │ ├── EIK_SanctionsSubsystem.h │ │ ├── EIK_Sanctions_CreatePlayerSanctionAppeal.cpp │ │ ├── EIK_Sanctions_CreatePlayerSanctionAppeal.h │ │ ├── EIK_Sanctions_QueryActivePlayerSanctions.cpp │ │ └── EIK_Sanctions_QueryActivePlayerSanctions.h │ ├── SessionsInterface │ │ ├── EIK_SessionSearch_Find.cpp │ │ ├── EIK_SessionSearch_Find.h │ │ ├── EIK_SessionsSubsystem.cpp │ │ ├── EIK_SessionsSubsystem.h │ │ ├── EIK_Sessions_DestroySession.cpp │ │ ├── EIK_Sessions_DestroySession.h │ │ ├── EIK_Sessions_EndSession.cpp │ │ ├── EIK_Sessions_EndSession.h │ │ ├── EIK_Sessions_JoinSession.cpp │ │ ├── EIK_Sessions_JoinSession.h │ │ ├── EIK_Sessions_QueryInvites.cpp │ │ ├── EIK_Sessions_QueryInvites.h │ │ ├── EIK_Sessions_RegisterPlayers.cpp │ │ ├── EIK_Sessions_RegisterPlayers.h │ │ ├── EIK_Sessions_RejectInvite.cpp │ │ ├── EIK_Sessions_RejectInvite.h │ │ ├── EIK_Sessions_SendInvite.cpp │ │ ├── EIK_Sessions_SendInvite.h │ │ ├── EIK_Sessions_StartSession.cpp │ │ ├── EIK_Sessions_StartSession.h │ │ ├── EIK_Sessions_UnregisterPlayers.cpp │ │ ├── EIK_Sessions_UnregisterPlayers.h │ │ ├── EIK_Sessions_UpdateSession.cpp │ │ └── EIK_Sessions_UpdateSession.h │ ├── StatsInterface │ │ ├── EIK_StatsSubsystem.cpp │ │ ├── EIK_StatsSubsystem.h │ │ ├── EIK_Stats_IngestStat.cpp │ │ ├── EIK_Stats_IngestStat.h │ │ ├── EIK_Stats_QueryStats.cpp │ │ └── EIK_Stats_QueryStats.h │ ├── UIInterface │ │ ├── EIK_UiSubsystem.cpp │ │ └── EIK_UiSubsystem.h │ └── UserInfoInterface │ │ ├── EIK_UserInfoSubsystem.cpp │ │ ├── EIK_UserInfoSubsystem.h │ │ ├── EIK_UserInfo_QueryUserInfo.cpp │ │ ├── EIK_UserInfo_QueryUserInfo.h │ │ ├── EIK_UserInfo_QueryUserInfoByDisplayName.cpp │ │ ├── EIK_UserInfo_QueryUserInfoByDisplayName.h │ │ ├── EIK_UserInfo_QueryUserInfoByExternalAccount.cpp │ │ └── EIK_UserInfo_QueryUserInfoByExternalAccount.h └── Subsystem │ ├── EIK_Subsystem.cpp │ └── EIK_Subsystem.h ├── SocketSubsystemEIK ├── Private │ ├── InternetAddrEIK.cpp │ ├── NetConnectionEIK.cpp │ ├── NetConnectionEIK.h │ ├── NetDriverEIKBase.cpp │ ├── SocketEIK.cpp │ ├── SocketSubsystemEIK.cpp │ ├── SocketSubsystemEIKModule.cpp │ └── SocketSubsystemEIKModule.h ├── Public │ ├── InternetAddrEIK.h │ ├── NetDriverEIKBase.h │ ├── SocketEIK.h │ ├── SocketSubsystemEIK.h │ └── SocketSubsystemEIKUtils.h └── SocketSubsystemEIK.Build.cs └── ThirdParty ├── .DS_Store ├── DiscordGameSDK └── DiscordGameSDK.Build.cs ├── EIKSDK ├── .DS_Store ├── EIKSDK.Build.cs ├── LibEIK_APL.xml └── LibEIK_UPL.xml ├── GoogleOneTapLibrary ├── Android │ └── libs │ │ └── googlesignin.aar ├── GoogleOneTapLibrary.Build.cs ├── GoogleOneTapLibrary.tps ├── GoogleOneTap_APL.xml ├── GoogleOneTap_UPL.xml └── IOS │ ├── Frameworks │ ├── AppAuth.embeddedframework.zip │ ├── GTMAppAuth.embeddedframework.zip │ ├── GTMSessionFetcher.embeddedframework.zip │ ├── GoogleSignIn.embeddedframework.zip │ ├── GoogleUtilities.embeddedframework.zip │ ├── RecaptchaInterop.embeddedframework.zip │ └── nanopb.embeddedframework.zip │ └── Resources │ └── GoogleSignIn.bundle │ ├── Info.plist │ ├── Roboto-Bold.ttf │ ├── ar.lproj │ └── GoogleSignIn.strings │ ├── ca.lproj │ └── GoogleSignIn.strings │ ├── cs.lproj │ └── GoogleSignIn.strings │ ├── da.lproj │ └── GoogleSignIn.strings │ ├── de.lproj │ └── GoogleSignIn.strings │ ├── el.lproj │ └── GoogleSignIn.strings │ ├── en.lproj │ └── GoogleSignIn.strings │ ├── en_GB.lproj │ └── GoogleSignIn.strings │ ├── es.lproj │ └── GoogleSignIn.strings │ ├── es_MX.lproj │ └── GoogleSignIn.strings │ ├── fi.lproj │ └── GoogleSignIn.strings │ ├── fr.lproj │ └── GoogleSignIn.strings │ ├── fr_CA.lproj │ └── GoogleSignIn.strings │ ├── google.png │ ├── google@2x.png │ ├── google@3x.png │ ├── he.lproj │ └── GoogleSignIn.strings │ ├── hi.lproj │ └── GoogleSignIn.strings │ ├── hr.lproj │ └── GoogleSignIn.strings │ ├── hu.lproj │ └── GoogleSignIn.strings │ ├── id.lproj │ └── GoogleSignIn.strings │ ├── it.lproj │ └── GoogleSignIn.strings │ ├── ja.lproj │ └── GoogleSignIn.strings │ ├── ko.lproj │ └── GoogleSignIn.strings │ ├── ms.lproj │ └── GoogleSignIn.strings │ ├── nb.lproj │ └── GoogleSignIn.strings │ ├── nl.lproj │ └── GoogleSignIn.strings │ ├── pl.lproj │ └── GoogleSignIn.strings │ ├── pt.lproj │ └── GoogleSignIn.strings │ ├── pt_BR.lproj │ └── GoogleSignIn.strings │ ├── pt_PT.lproj │ └── GoogleSignIn.strings │ ├── ro.lproj │ └── GoogleSignIn.strings │ ├── ru.lproj │ └── GoogleSignIn.strings │ ├── sk.lproj │ └── GoogleSignIn.strings │ ├── sv.lproj │ └── GoogleSignIn.strings │ ├── th.lproj │ └── GoogleSignIn.strings │ ├── tr.lproj │ └── GoogleSignIn.strings │ ├── uk.lproj │ └── GoogleSignIn.strings │ ├── vi.lproj │ └── GoogleSignIn.strings │ ├── zh_CN.lproj │ └── GoogleSignIn.strings │ └── zh_TW.lproj │ └── GoogleSignIn.strings ├── GooglePlayGamesLibrary ├── Android │ └── libs │ │ └── gpgs.aar ├── GooglePlayGamesLibrary.Build.cs └── GooglePlayGames_APL.xml └── ThirdPartyNotices └── ThirdPartySoftwareNotice.txt /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: betidestudio 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /Config/DefaultEOSIntegrationKit.ini: -------------------------------------------------------------------------------- 1 | [CoreRedirects] 2 | +FunctionRedirects=(OldName="/Script/OnlineSubsystemEIK.EIK_BlueprintFunctions.Initialize_EIK_For_Friends",NewName="/Script/OnlineSubsystemEIK.EIK_BlueprintFunctions.Initialize_Eik_For_Friends") -------------------------------------------------------------------------------- /Config/FilterPlugin.ini: -------------------------------------------------------------------------------- 1 | [FilterPlugin] 2 | ; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and 3 | ; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively. 4 | ; 5 | ; Examples: 6 | ; /README.txt 7 | ; /Extras/... 8 | ; /Binaries/ThirdParty/*.dll 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Use of this plugin is governed by the terms of the Unreal® Engine End User License Agreement, which can be found at [https://www.unrealengine.com/eula](https://www.unrealengine.com/eula). -------------------------------------------------------------------------------- /Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Resources/Icon128.png -------------------------------------------------------------------------------- /Resources/NewButtonIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Resources/NewButtonIcon.png -------------------------------------------------------------------------------- /Resources/PlaceholderButtonIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Resources/PlaceholderButtonIcon.png -------------------------------------------------------------------------------- /Source/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/.DS_Store -------------------------------------------------------------------------------- /Source/DiscordGame/DiscordGame.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 xist.gg 2 | 3 | using UnrealBuildTool; 4 | 5 | public class DiscordGame : ModuleRules 6 | { 7 | public DiscordGame(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 10 | bUseUnity = false; 11 | 12 | PublicDependencyModuleNames.AddRange(new string[] 13 | { 14 | "Core", 15 | "CoreUObject", 16 | "DiscordGameSDK", 17 | "Engine", 18 | "Projects", 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Source/DiscordGame/DiscordGame.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 xist.gg 2 | 3 | #pragma once 4 | 5 | #include "Modules/ModuleManager.h" 6 | 7 | DECLARE_LOG_CATEGORY_EXTERN(LogDiscord, Log, All); 8 | 9 | class FDiscordGameModule : public IModuleInterface 10 | { 11 | public: 12 | /** Name of this module */ 13 | static const FName ModuleName; 14 | 15 | /** 16 | * @return Pointer to FDiscordGameModule, if it has been loaded into the Engine, else nullptr 17 | */ 18 | static FDiscordGameModule* Get() 19 | { 20 | return static_cast(FModuleManager::Get().GetModule(ModuleName)); 21 | } 22 | 23 | /** 24 | * @return TRUE if we successfully loaded the Discord GameSDK DLL; else FALSE 25 | */ 26 | FORCEINLINE bool IsDiscordSDKLoaded() const { return bDiscordSDKLoaded; } 27 | //~IModuleInterface interface 28 | virtual void StartupModule() override; 29 | virtual void ShutdownModule() override; 30 | //~End of IModuleInterface interface 31 | 32 | protected: 33 | /** 34 | * Get the path to the Discord GameSDK DLL for the current platform. 35 | * @return Absolute path to the Discord GameSDK DLL we need to load 36 | */ 37 | FString GetPathToDLL() const; 38 | 39 | private: 40 | /** Handle to the dll we will load */ 41 | void* DiscordGameSDKHandle {nullptr}; 42 | bool bDiscordSDKLoaded = false; 43 | 44 | }; 45 | -------------------------------------------------------------------------------- /Source/DiscordGame/EIK_GetDiscordAuthToken_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "EIK_GetDiscordAuthToken_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_OnGetDiscordAuthTokenComplete, const FString&, AuthToken, const FString&, Error); 11 | 12 | UCLASS() 13 | class DISCORDGAME_API UEIK_GetDiscordAuthToken_AsyncFunction : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | 18 | public: 19 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), DisplayName="Get Discord Auth Token", Category = "EOS Integration Kit|Extra") 20 | static UEIK_GetDiscordAuthToken_AsyncFunction* GetDiscordAuthToken(); 21 | 22 | UPROPERTY(BlueprintAssignable) 23 | FEIK_OnGetDiscordAuthTokenComplete OnSuccess; 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FEIK_OnGetDiscordAuthTokenComplete OnFailure; 27 | 28 | private: 29 | virtual void Activate() override; 30 | 31 | }; 32 | -------------------------------------------------------------------------------- /Source/DiscordGame/discord-cpp.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/DiscordGame/discord-cpp.zip -------------------------------------------------------------------------------- /Source/EIKEditor/EIKEditor.Build.cs: -------------------------------------------------------------------------------- 1 | using UnrealBuildTool; 2 | 3 | public class EIKEditor : ModuleRules 4 | { 5 | public EIKEditor(ReadOnlyTargetRules Target) : base(Target) 6 | { 7 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 8 | 9 | PublicDependencyModuleNames.AddRange( 10 | new string[] 11 | { 12 | "Core", "MainFrame", "EditorStyle", 13 | } 14 | ); 15 | 16 | PrivateDependencyModuleNames.AddRange( 17 | new string[] 18 | { 19 | "CoreUObject", 20 | "Engine", 21 | "Slate", 22 | "SlateCore", 23 | "EditorStyle", 24 | "UnrealEd", 25 | "LevelEditor", 26 | "ToolMenus", 27 | "Projects", 28 | "UnrealEd", 29 | "LauncherServices", 30 | "EOSIntegrationKit", 31 | } 32 | ); 33 | } 34 | } -------------------------------------------------------------------------------- /Source/EIKEditor/Public/EIKEditor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Misc/InteractiveProcess.h" 7 | #include "Editor/UnrealEd/Public/Editor.h" 8 | #include "Modules/ModuleManager.h" 9 | 10 | DECLARE_LOG_CATEGORY_EXTERN(LogEikEditor, Log, All); 11 | class FEIKEditorModule : public IModuleInterface 12 | { 13 | public: 14 | virtual void StartupModule() override; 15 | virtual void ShutdownModule() override; 16 | void BuildProcessCompleted(int I, bool bArg); 17 | void HandleProcessCanceled(); 18 | void HandleProcessOutput(const FString& String); 19 | 20 | private: 21 | void RegisterMenuExtensions(); 22 | void OpenDevPortal(); 23 | void OnPackageAndDeploySelected(); 24 | void OpenDevTool(); 25 | void OpenRedistributableInstallerTool(); 26 | TSharedRef GenerateMenuContent(); 27 | TSharedPtr InteractiveProcess; 28 | TSharedPtr InteractiveProcessLogin; 29 | TSharedPtr SteamGuardTextBox; 30 | TSharedPtr SteamGuardWindow; 31 | TSharedPtr NotificationItem; 32 | }; 33 | -------------------------------------------------------------------------------- /Source/EIKEditor/Public/EosIconStyle.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Styling/SlateStyle.h" 7 | 8 | class FEosIconStyle 9 | { 10 | public: 11 | 12 | static void Initialize(); 13 | 14 | static void Shutdown(); 15 | 16 | /** reloads textures used by slate renderer */ 17 | static void ReloadTextures(); 18 | 19 | /** @return The Slate style set for the Shooter game */ 20 | static const ISlateStyle& Get(); 21 | 22 | static FName GetStyleSetName(); 23 | 24 | private: 25 | 26 | static TSharedRef< class FSlateStyleSet > Create(); 27 | 28 | private: 29 | 30 | static TSharedPtr< class FSlateStyleSet > StyleInstance; 31 | }; -------------------------------------------------------------------------------- /Source/EIKLoginMethods/EIKLoginMethods.Build.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using UnrealBuildTool; 4 | 5 | public class EIKLoginMethods : ModuleRules 6 | { 7 | public EIKLoginMethods(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | if (Target.Platform == UnrealTargetPlatform.Android) 12 | { 13 | PublicDependencyModuleNames.AddRange(new string[] { "Launch" }); 14 | 15 | string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath); 16 | Console.WriteLine("PluginPath: " + PluginPath); 17 | //AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(PluginPath, "GoogleOneTap_UPL.xml")); 18 | } 19 | PublicDependencyModuleNames.AddRange( 20 | new string[] 21 | { 22 | "Core", 23 | } 24 | ); 25 | 26 | PrivateDependencyModuleNames.AddRange( 27 | new string[] 28 | { 29 | "CoreUObject", 30 | "Engine", 31 | "Slate", 32 | "SlateCore", 33 | "OnlineSubsystemEIK", 34 | "GoogleOneTapLibrary", 35 | "GooglePlayGamesLibrary", 36 | "Json", 37 | "JsonUtilities" 38 | } 39 | ); 40 | } 41 | } -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Private/Android/Utils/AndroidJNIConvertor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Nineva Studios 2 | 3 | #pragma once 4 | 5 | #include "Android/AndroidJava.h" 6 | #include "Android/AndroidApplication.h" 7 | #include "Android/AndroidJNI.h" 8 | 9 | class AndroidJNIConvertor 10 | { 11 | public: 12 | 13 | #if PLATFORM_ANDROID 14 | static jobjectArray ConvertToJStringArray(const TArray& stringArray); 15 | 16 | static jbooleanArray ConvertToJBooleanArray(const TArray& boolArray); 17 | 18 | static jintArray ConvertToJIntArray(const TArray& intArray); 19 | 20 | static jbyteArray ConvertToJByteArray(const TArray& byteArray); 21 | 22 | static jlongArray ConvertToJLongArray(const TArray& longArray); 23 | 24 | static TArray ConvertToByteArray(jbyteArray javaArray); 25 | 26 | static TArray ConvertToLongArray(jlongArray javaArray); 27 | 28 | static TArray ConvertToStringArray(jobjectArray javaStringArray); 29 | 30 | static jstring GetJavaString(FString string); 31 | 32 | static FString FromJavaString(jstring javaString); 33 | #endif // PLATFORM_ANDROID 34 | 35 | }; -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Private/EIKLoginMethods.cpp: -------------------------------------------------------------------------------- 1 | #include "EIKLoginMethods.h" 2 | 3 | #define LOCTEXT_NAMESPACE "FEIKLoginMethodsModule" 4 | 5 | void FEIKLoginMethodsModule::StartupModule() 6 | { 7 | 8 | } 9 | 10 | void FEIKLoginMethodsModule::ShutdownModule() 11 | { 12 | 13 | } 14 | 15 | #undef LOCTEXT_NAMESPACE 16 | 17 | IMPLEMENT_MODULE(FEIKLoginMethodsModule, EIKLoginMethods) -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/EIKLoginMethods.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2024 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Modules/ModuleManager.h" 8 | 9 | class FEIKLoginMethodsModule : public IModuleInterface 10 | { 11 | public: 12 | virtual void StartupModule() override; 13 | virtual void ShutdownModule() override; 14 | }; 15 | -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/GoogleOneTap/BFL_GoogleSignIn.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2024 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Kismet/BlueprintFunctionLibrary.h" 8 | #include "BFL_GoogleSignIn.generated.h" 9 | 10 | UCLASS() 11 | class EIKLOGINMETHODS_API UBFL_GoogleSignIn : public UBlueprintFunctionLibrary 12 | { 13 | GENERATED_BODY() 14 | 15 | UBFL_GoogleSignIn(); 16 | 17 | UFUNCTION(BlueprintCallable, meta = (DisplayName="GoogleSubsystem_GetUserDisplayName"), Category = "EOS Integration Kit|GoogleSubsystem") 18 | static FString GetUserDisplayName(); 19 | 20 | UFUNCTION(BlueprintCallable, meta = (DisplayName="GoogleSubsystem_GetUserFirstName"), Category = "EOS Integration Kit|GoogleSubsystem") 21 | static FString GetUserFirstName(); 22 | 23 | UFUNCTION(BlueprintCallable, meta = (DisplayName="GoogleSubsystem_GetUserLastName"), Category = "EOS Integration Kit|GoogleSubsystem") 24 | static FString GetUserLastName(); 25 | 26 | UFUNCTION(BlueprintCallable, meta = (DisplayName="GoogleSubsystem_GetUserProfilePictureUrl"), Category = "EOS Integration Kit|GoogleSubsystem") 27 | static FString GetUserProfilePictureUrl(); 28 | 29 | UFUNCTION(BlueprintCallable, meta = (DisplayName="GoogleSubsystem_IsUserLoggedIn"), Category = "EOS Integration Kit|GoogleSubsystem") 30 | static bool IsUserLoggedIn(); 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/GoogleOneTap/GoogleLogin_SLK.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2024 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "GoogleLogin_SLK.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FGoogleSignInCallback, const FString&, Token, const FString&, Error); 11 | 12 | /** 13 | * 14 | */ 15 | UCLASS() 16 | class EIKLOGINMETHODS_API UGoogleLogin_SLK : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly="true", WorldContext="WorldContextObject"), Category="EOS Integration Kit|GoogleSubsystem") 22 | static UGoogleLogin_SLK* GoogleLogin(UObject* WorldContextObject, const FString& ClientID); 23 | 24 | void Activate() override; 25 | void BeginDestroy() override; 26 | FString Var_ClientID; 27 | static TWeakObjectPtr staticInstance; 28 | 29 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|GoogleSubsystem") 30 | FGoogleSignInCallback Success; 31 | 32 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|GoogleSubsystem") 33 | FGoogleSignInCallback Failure; 34 | 35 | void GoogleLoginLocal(); 36 | }; 37 | -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/GoogleOneTap/GoogleLogout_SLK.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2024 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "GoogleLogout_SLK.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FGoogleSignOutCallback, const FString&, Error); 11 | 12 | /** 13 | * 14 | */ 15 | UCLASS() 16 | class EIKLOGINMETHODS_API UGoogleLogout_SLK : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly="true", WorldContext="WorldContextObject"), Category="EOS Integration Kit|GoogleSubsystem") 22 | static UGoogleLogout_SLK* GoogleLogout(UObject* WorldContextObject); 23 | 24 | void Activate() override; 25 | void BeginDestroy() override; 26 | static TWeakObjectPtr staticInstance; 27 | 28 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|GoogleSubsystem") 29 | FGoogleSignOutCallback Success; 30 | 31 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|GoogleSubsystem") 32 | FGoogleSignOutCallback Failure; 33 | 34 | void GoogleLogoutLocal(); 35 | }; 36 | -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/GooglePlayGames/AsyncNodes/GPGS_GetPlayerStats.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "GooglePlayGames/GooglePlayGamesStructures.h" 9 | #include "GPGS_GetPlayerStats.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FGPGS_GetPlayerStatsCallbackSignature, const FGPGS_PlayerStats&, Data, const FString&, Error); 12 | 13 | /** 14 | * 15 | */ 16 | UCLASS() 17 | class EIKLOGINMETHODS_API UGPGS_GetPlayerStats : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | /** 23 | * Get Player Stats of the Signed In Player 24 | * @return PlayerStats of the currently Signed In Player 25 | */ 26 | UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly="true", WorldContext="WorldContextObject"), Category="EOS Integration Kit|Google Play Games|PlayerStats") 27 | static UGPGS_GetPlayerStats* GetPlayerStats(UObject* WorldContextObject); 28 | 29 | virtual void Activate() override; 30 | virtual void BeginDestroy() override; 31 | 32 | // Executed after PlayerStats are retrieved Successfully 33 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|Google Play Games") 34 | FGPGS_GetPlayerStatsCallbackSignature Success; 35 | 36 | // Executed if GetPlayerStats Fails 37 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|Google Play Games") 38 | FGPGS_GetPlayerStatsCallbackSignature Failure; 39 | 40 | static TWeakObjectPtr StaticInstance; 41 | }; 42 | -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/GooglePlayGames/AsyncNodes/GPGS_LoadEvent.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "GooglePlayGames/GooglePlayGamesStructures.h" 9 | #include "GPGS_LoadEvent.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FGPGS_LoadEventCallbackSignature, const FString&, ID, const FGPGS_Event&, Data, const FString&, Error); 12 | 13 | /** 14 | * 15 | */ 16 | UCLASS() 17 | class EIKLOGINMETHODS_API UGPGS_LoadEvent : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | /** 23 | * Load Event from Google Play Console 24 | * @param ID ID of the Event from Google Play Console 25 | * @return Event Data 26 | */ 27 | UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly="true", WorldContext="WorldContextObject"), Category="EOS Integration Kit|Google Play Games|Events") 28 | static UGPGS_LoadEvent* LoadEvent(UObject* WorldContextObject, const FString& ID); 29 | 30 | virtual void Activate() override; 31 | virtual void BeginDestroy() override; 32 | 33 | // Executed after Event is Loaded successfully 34 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|Google Play Games") 35 | FGPGS_LoadEventCallbackSignature Success; 36 | 37 | // Executed if there was an error loading the Event 38 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|Google Play Games") 39 | FGPGS_LoadEventCallbackSignature Failure; 40 | 41 | static TWeakObjectPtr StaticInstance; 42 | 43 | private: 44 | FString Var_ID; 45 | }; 46 | -------------------------------------------------------------------------------- /Source/EIKLoginMethods/Public/GooglePlayGames/AsyncNodes/GPGS_ReadSavedGame.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 Betide Studio. All Rights Reserved. 2 | // Written by AvnishGameDev. 3 | 4 | #pragma once 5 | 6 | #include "CoreMinimal.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "GPGS_ReadSavedGame.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FGPGS_ReadSavedGameCallbackSignature, const FString&, ID, const TArray&, Data, const FString&, Error); 11 | 12 | /** 13 | * 14 | */ 15 | UCLASS() 16 | class EIKLOGINMETHODS_API UGPGS_ReadSavedGame : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | /** 22 | * Read Saved Game from Google Play Games 23 | * @param ID ID of the Saved Game 24 | * @return SavedGame Data 25 | */ 26 | UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly="true", WorldContext="WorldContextObject"), Category="EOS Integration Kit|Google Play Games|Saved Games") 27 | static UGPGS_ReadSavedGame* ReadSavedGame(UObject* WorldContextObject, const FString& ID); 28 | 29 | virtual void Activate() override; 30 | virtual void BeginDestroy() override; 31 | 32 | // Executed after SavedGame read successfully 33 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|Google Play Games") 34 | FGPGS_ReadSavedGameCallbackSignature Success; 35 | 36 | // Executed if there was an error loading the Saved Game 37 | UPROPERTY(BlueprintAssignable, Category="EOS Integration Kit|Google Play Games") 38 | FGPGS_ReadSavedGameCallbackSignature Failure; 39 | 40 | static TWeakObjectPtr StaticInstance; 41 | 42 | private: 43 | FString Var_ID; 44 | }; 45 | -------------------------------------------------------------------------------- /Source/EIKShared/EIKShared.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using System; 4 | using System.IO; 5 | using UnrealBuildTool; 6 | 7 | public class EIKShared : ModuleRules 8 | { 9 | public EIKShared(ReadOnlyTargetRules Target) : base(Target) 10 | { 11 | PublicDependencyModuleNames.AddRange(new string[] { "EIKSDK" }); 12 | Type = ModuleType.CPlusPlus; 13 | PrivatePCHHeaderFile = "Private/EIKSharedModule.h"; 14 | 15 | PrivateDependencyModuleNames.AddRange( 16 | new string[] 17 | { 18 | "Core", 19 | "CoreUObject", 20 | "EIKSDK", 21 | "Projects", 22 | } 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/EIKShared/Private/Android/AndroidEOSSDKManager.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "AndroidEOSSDKManager.h" 4 | 5 | #include "Android/eos_android.h" 6 | #include "HAL/FileManager.h" 7 | 8 | #if WITH_EOS_SDK 9 | 10 | 11 | EOS_EResult FAndroidEOSSDKManager::EOSInitialize(EOS_InitializeOptions& Options) 12 | { 13 | EOS_Android_InitializeOptions SystemInitializeOptions = { 0 }; 14 | SystemInitializeOptions.ApiVersion = EOS_ANDROID_INITIALIZEOPTIONS_API_LATEST; 15 | static_assert(EOS_ANDROID_INITIALIZEOPTIONS_API_LATEST == 2, "EOS_Android_InitializeOptions updated, check new fields"); 16 | SystemInitializeOptions.Reserved = nullptr; 17 | SystemInitializeOptions.OptionalInternalDirectory = nullptr; 18 | SystemInitializeOptions.OptionalExternalDirectory = nullptr; 19 | 20 | Options.SystemInitializeOptions = &SystemInitializeOptions; 21 | 22 | return FEIKSDKManager::EOSInitialize(Options); 23 | } 24 | 25 | FString FAndroidEOSSDKManager::GetCacheDirBase() const 26 | { 27 | FString BaseCacheDirBase = FEIKSDKManager::GetCacheDirBase(); 28 | return IFileManager::Get().ConvertToAbsolutePathForExternalAppForWrite(*BaseCacheDirBase); 29 | }; 30 | 31 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/Android/AndroidEOSSDKManager.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | #include "eos_init.h" 5 | 6 | #if WITH_EOS_SDK 7 | 8 | #include "EOSSDKManager.h" 9 | 10 | class FAndroidEOSSDKManager : public FEIKSDKManager 11 | { 12 | public: 13 | virtual EOS_EResult EOSInitialize(EOS_InitializeOptions& Options) override; 14 | virtual FString GetCacheDirBase() const override; 15 | }; 16 | 17 | using FPlatformEOSSDKManager = FAndroidEOSSDKManager; 18 | 19 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/EIKSharedModule.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Modules/ModuleInterface.h" 6 | 7 | #include "EOSSDKManager.h" 8 | 9 | class FEIKSharedModule: public IModuleInterface 10 | { 11 | public: 12 | FEIKSharedModule() = default; 13 | ~FEIKSharedModule() = default; 14 | 15 | private: 16 | // ~Begin IModuleInterface 17 | virtual void StartupModule() override; 18 | virtual void ShutdownModule() override; 19 | // ~End IModuleInterface 20 | 21 | #if WITH_EOS_SDK 22 | TUniquePtr SDKManager; 23 | #endif 24 | }; -------------------------------------------------------------------------------- /Source/EIKShared/Private/IOS/IOSEOSSDKManager.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #if WITH_EOS_SDK 4 | 5 | #include "IOSEOSSDKManager.h" 6 | 7 | FString FIOSEOSSDKManager::GetCacheDirBase() const 8 | { 9 | NSString* BundleIdentifier = [[NSBundle mainBundle]bundleIdentifier]; 10 | NSString* CacheDirectory = NSTemporaryDirectory(); // Potentially use NSCachesDirectory 11 | CacheDirectory = [CacheDirectory stringByAppendingPathComponent : BundleIdentifier]; 12 | 13 | const char* CStrCacheDirectory = [CacheDirectory UTF8String]; 14 | return FString(UTF8_TO_TCHAR(CStrCacheDirectory)); 15 | }; 16 | 17 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/IOS/IOSEOSSDKManager.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSSDKManager.h" 8 | 9 | class FIOSEOSSDKManager : public FEIKSDKManager 10 | { 11 | virtual FString GetCacheDirBase() const override; 12 | }; 13 | 14 | using FPlatformEOSSDKManager = FIOSEOSSDKManager; 15 | 16 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/Linux/LinuxEOSSDKManager.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSSDKManager.h" 8 | 9 | using FPlatformEOSSDKManager = FEIKSDKManager; 10 | 11 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/Mac/MacEOSSDKManager.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSSDKManager.h" 8 | 9 | using FPlatformEOSSDKManager = FEIKSDKManager; 10 | 11 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/Windows/WindowsEOSSDKManager.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #if WITH_EOS_SDK 4 | 5 | #include "WindowsEOSSDKManager.h" 6 | 7 | #include "HAL/FileManager.h" 8 | #include "Misc/Paths.h" 9 | 10 | #include "Windows/eos_Windows.h" 11 | 12 | IEIKPlatformHandlePtr FWindowsEOSSDKManager::CreatePlatform(const FEOSSDKPlatformConfig& PlatformConfig, EOS_Platform_Options& PlatformOptions) 13 | { 14 | if (PlatformConfig.bWindowsEnableOverlayD3D9) PlatformOptions.Flags |= EOS_PF_WINDOWS_ENABLE_OVERLAY_D3D9; 15 | if (PlatformConfig.bWindowsEnableOverlayD3D10) PlatformOptions.Flags |= EOS_PF_WINDOWS_ENABLE_OVERLAY_D3D10; 16 | if (PlatformConfig.bWindowsEnableOverlayOpenGL) PlatformOptions.Flags |= EOS_PF_WINDOWS_ENABLE_OVERLAY_OPENGL; 17 | 18 | if (PlatformConfig.bEnableRTC) 19 | { 20 | static const FString XAudioPath = IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*FPaths::Combine(FPaths::EngineDir(), TEXT("Binaries/ThirdParty/Windows/XAudio2_9"), PLATFORM_64BITS ? TEXT("x64") : TEXT("x86"), TEXT("xaudio2_9redist.dll"))); 21 | static const FTCHARToUTF8 Utf8XAudioPath(*XAudioPath); 22 | 23 | static_assert(EOS_WINDOWS_RTCOPTIONS_API_LATEST == 1, "EOS_Windows_RTCOptions updated"); 24 | static EOS_Windows_RTCOptions WindowsRTCOptions = {}; 25 | WindowsRTCOptions.ApiVersion = EOS_WINDOWS_RTCOPTIONS_API_LATEST; 26 | WindowsRTCOptions.XAudio29DllPath = Utf8XAudioPath.Get(); 27 | 28 | const_cast(PlatformOptions.RTCOptions)->PlatformSpecificOptions = &WindowsRTCOptions; 29 | } 30 | 31 | return FEIKSDKManager::CreatePlatform(PlatformConfig, PlatformOptions); 32 | } 33 | 34 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKShared/Private/Windows/WindowsEOSSDKManager.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSSDKManager.h" 8 | 9 | class FWindowsEOSSDKManager : public FEIKSDKManager 10 | { 11 | protected: 12 | virtual IEIKPlatformHandlePtr CreatePlatform(const FEOSSDKPlatformConfig& PlatformConfig, EOS_Platform_Options& PlatformOptions) override; 13 | }; 14 | 15 | using FPlatformEOSSDKManager = FWindowsEOSSDKManager; 16 | 17 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/EIKVoiceChat/EIKVoiceChat.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using System; 4 | using System.IO; 5 | 6 | namespace UnrealBuildTool.Rules 7 | { 8 | public class EIKVoiceChat : ModuleRules 9 | { 10 | public EIKVoiceChat(ReadOnlyTargetRules Target) : base(Target) 11 | { 12 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 13 | 14 | PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Public")); 15 | 16 | PublicDependencyModuleNames.AddRange( 17 | new string[] 18 | { 19 | "Json", 20 | "AudioExtensions" 21 | } 22 | ); 23 | 24 | PublicIncludePathModuleNames.AddRange( 25 | new string[] 26 | { 27 | "VoiceChat", 28 | } 29 | ); 30 | 31 | PrivateDependencyModuleNames.AddRange( 32 | new string[] 33 | { 34 | "Core", 35 | "CoreUObject", 36 | "Projects", 37 | "EIKShared", 38 | "EIKSDK", 39 | "Engine", 40 | "HTTP", 41 | "EOSIntegrationKit", 42 | "Synthesis", 43 | "SignalProcessing", 44 | "AudioMixer", 45 | } 46 | ); 47 | 48 | if(Target.Platform == UnrealTargetPlatform.IOS) 49 | { 50 | PrivateDependencyModuleNames.AddRange( 51 | new string[] 52 | { 53 | "ApplicationCore" 54 | } 55 | ); 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Android/AndroidEOSVoiceChat.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "AndroidEOSVoiceChat.h" 4 | 5 | #if WITH_EOS_RTC 6 | 7 | #include "AndroidEOSVoiceChatUser.h" 8 | 9 | FAndroidEOSVoiceChat::FAndroidEOSVoiceChat(IEOSSDKManager& InSDKManager, const IEIKPlatformHandlePtr& InPlatformHandle) 10 | : FEOSVoiceChat(InSDKManager, InPlatformHandle) 11 | { 12 | } 13 | 14 | IVoiceChatUser* FAndroidEOSVoiceChat::CreateUser() 15 | { 16 | const FEOSVoiceChatUserRef& User = VoiceChatUsers.Emplace_GetRef(MakeShared(*this)); 17 | return &User.Get(); 18 | } 19 | 20 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Android/AndroidEOSVoiceChat.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSVoiceChat.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | class FAndroidEOSVoiceChat : public FEOSVoiceChat 10 | { 11 | public: 12 | FAndroidEOSVoiceChat(IEOSSDKManager& InSDKManager, const IEIKPlatformHandlePtr& InPlatformHandle); 13 | virtual ~FAndroidEOSVoiceChat() = default; 14 | 15 | // ~Begin IVoiceChat Interface 16 | virtual IVoiceChatUser* CreateUser() override; 17 | // ~End IVoiceChat Interface 18 | }; 19 | 20 | using FPlatformEOSVoiceChat = FAndroidEOSVoiceChat; 21 | 22 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Android/AndroidEOSVoiceChatUser.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "AndroidEOSVoiceChatUser.h" 4 | 5 | #if WITH_EOS_RTC 6 | 7 | void FAndroidEOSVoiceChatUser::SetSetting(const FString& Name, const FString& Value) 8 | { 9 | if (Name == TEXT("BluetoothMicrophone")) 10 | { 11 | bEnableBluetoothMicrophone = FCString::ToBool(*Value); 12 | // TODO 13 | } 14 | else 15 | { 16 | FEOSVoiceChatUser::SetSetting(Name, Value); 17 | } 18 | } 19 | 20 | FString FAndroidEOSVoiceChatUser::GetSetting(const FString& Name) 21 | { 22 | if (Name == TEXT("BluetoothMicrophone")) 23 | { 24 | return LexToString(bEnableBluetoothMicrophone); 25 | } 26 | else 27 | { 28 | return FEOSVoiceChatUser::GetSetting(Name); 29 | } 30 | } 31 | 32 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Android/AndroidEOSVoiceChatUser.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSVoiceChatUser.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | class FAndroidEOSVoiceChatUser : public FEOSVoiceChatUser 10 | { 11 | public: 12 | FAndroidEOSVoiceChatUser(FEOSVoiceChat& InEOSVoiceChat) : FEOSVoiceChatUser(InEOSVoiceChat) {} 13 | virtual ~FAndroidEOSVoiceChatUser() = default; 14 | 15 | // ~Begin IVoiceChatUser Interface 16 | virtual void SetSetting(const FString& Name, const FString& Value) override; 17 | virtual FString GetSetting(const FString& Name) override; 18 | // ~End IVoiceChatUser Interface 19 | 20 | private: 21 | bool bEnableBluetoothMicrophone = false; 22 | }; 23 | 24 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/EIKVoiceChatModule.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Modules/ModuleInterface.h" 6 | #include "Templates/SharedPointer.h" 7 | 8 | using IVoiceChatPtr = TSharedPtr; 9 | typedef TSharedPtr FEOSVoiceChatFactoryPtr; 10 | 11 | class FEIKVoiceChatModule : public IModuleInterface 12 | { 13 | public: 14 | FEIKVoiceChatModule() = default; 15 | ~FEIKVoiceChatModule() = default; 16 | 17 | private: 18 | // ~Begin IModuleInterface 19 | virtual void StartupModule() override; 20 | virtual void ShutdownModule() override; 21 | // ~End IModuleInterface 22 | 23 | /** Singleton EOS object */ 24 | FEOSVoiceChatFactoryPtr EOSFactory; 25 | IVoiceChatPtr EOSObj; 26 | }; -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/EIKVoiceChatSynthComponent.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | 4 | #include "EIKVoiceChatSynthComponent.h" 5 | 6 | bool UEIKVoiceChatSynthComponent::Init(int32& SampleRate) 7 | { 8 | NumChannels = 1; 9 | #if ENGINE_MAJOR_VERSION >= 5 10 | AudioBuffer = Audio::TCircularAudioBuffer(SampleRate * NumChannels); 11 | #else 12 | // Reset the buffer with the new size 13 | AudioBuffer.Reset(SampleRate * NumChannels); 14 | 15 | OutArray.Reserve(SampleRate / 10); 16 | OutArrayView = TArrayView(OutArray.GetData(), SampleRate / 10); 17 | #endif 18 | OutArray.Reserve(SampleRate / 10); 19 | OutArrayView = TArrayView(OutArray.GetData(), SampleRate / 10); 20 | 21 | return true; 22 | } 23 | 24 | int32 UEIKVoiceChatSynthComponent::OnGenerateAudio(float* OutAudio, int32 NumSamples) 25 | { 26 | //we perform some basic checks to ensure we have enough samples to stream, if not we return 0 27 | if (AudioBuffer.Num() >= uint32(NumSamples)) 28 | { 29 | AudioBuffer.Pop(OutAudio, NumSamples); 30 | return NumSamples; 31 | 32 | } 33 | else 34 | { 35 | return 0; 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/EOSVoiceChatErrors.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | #pragma once 3 | 4 | #include "EOSShared.h" 5 | 6 | #if WITH_EOS_RTC 7 | 8 | #include "VoiceChatResult.h" 9 | 10 | #define EOSVOICECHAT_ERROR(...) FVoiceChatResult::CreateError(TEXT("errors.com.epicgames.voicechat.eos"), __VA_ARGS__) 11 | 12 | enum class EOS_EResult : int32_t; 13 | 14 | FVoiceChatResult ResultFromEOSResult(const EOS_EResult EosResult); 15 | 16 | #endif // WITH_EOS_RTC 17 | -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/IOS/IOSEOSVoiceChatUser.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSVoiceChatUser.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | #include "IOSEOSVoiceChat.h" 10 | 11 | class FIOSEOSVoiceChatUser : public FEOSVoiceChatUser 12 | { 13 | public: 14 | FIOSEOSVoiceChatUser(FEOSVoiceChat& InEOSVoiceChat); 15 | virtual ~FIOSEOSVoiceChatUser() = default; 16 | 17 | // ~Begin IVoiceChatUser 18 | virtual void SetSetting(const FString& Name, const FString& Value) override; 19 | virtual void JoinChannel(const FString& ChannelName, const FString& ChannelCredentials, EVoiceChatChannelType ChannelType, const FOnVoiceChatChannelJoinCompleteDelegate& Delegate, TOptional Channel3dProperties) override; 20 | // ~End IVoiceChatUSer 21 | 22 | FIOSEOSVoiceChat& GetIOSVoiceChat(); 23 | 24 | private: 25 | friend class FIOSEOSVoiceChat; 26 | void HandleVoiceChatChannelExited(const FString& ChannelName, const FVoiceChatResult& Reason); 27 | }; 28 | 29 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Linux/LinuxEOSVoiceChat.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSVoiceChat.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | using FPlatformEOSVoiceChat = FEOSVoiceChat; 10 | 11 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Mac/MacEOSVoiceChat.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSVoiceChat.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | using FPlatformEOSVoiceChat = FEOSVoiceChat; 10 | 11 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Windows/WindowsEOSVoiceChat.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "WindowsEOSVoiceChat.h" 4 | 5 | #if WITH_EOS_RTC 6 | 7 | #include "HAL/FileManager.h" 8 | #include "Misc/Paths.h" 9 | 10 | #include "Windows/eos_Windows.h" 11 | 12 | FWindowsEOSVoiceChat::FWindowsEOSVoiceChat(IEOSSDKManager& InSDKManager, const IEIKPlatformHandlePtr& InPlatformHandle) 13 | : FEOSVoiceChat(InSDKManager, InPlatformHandle) 14 | { 15 | } 16 | 17 | IEIKPlatformHandlePtr FWindowsEOSVoiceChat::EOSPlatformCreate(EOS_Platform_Options& PlatformOptions) 18 | { 19 | const FString XAudioPath = IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*FPaths::Combine(FPaths::EngineDir(), TEXT("Binaries/ThirdParty/Windows/XAudio2_9"), PLATFORM_64BITS ? TEXT("x64") : TEXT("x86"), TEXT("xaudio2_9redist.dll"))); 20 | const FTCHARToUTF8 Utf8XAudioPath(*XAudioPath); 21 | 22 | EOS_Windows_RTCOptions WindowsRTCOptions = { 0 }; 23 | WindowsRTCOptions.ApiVersion = EOS_WINDOWS_RTCOPTIONS_API_LATEST; 24 | static_assert(EOS_WINDOWS_RTCOPTIONS_API_LATEST == 1, "EOS_Windows_RTCOptions updated, check new fields"); 25 | WindowsRTCOptions.XAudio29DllPath = Utf8XAudioPath.Get(); 26 | 27 | const_cast(PlatformOptions.RTCOptions)->PlatformSpecificOptions = &WindowsRTCOptions; 28 | 29 | return FEOSVoiceChat::EOSPlatformCreate(PlatformOptions); 30 | } 31 | 32 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Private/Windows/WindowsEOSVoiceChat.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSVoiceChat.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | class FWindowsEOSVoiceChat : public FEOSVoiceChat 10 | { 11 | public: 12 | FWindowsEOSVoiceChat(IEOSSDKManager& InSDKManager, const IEIKPlatformHandlePtr& InPlatformHandle); 13 | virtual ~FWindowsEOSVoiceChat() = default; 14 | 15 | protected: 16 | virtual IEIKPlatformHandlePtr EOSPlatformCreate(EOS_Platform_Options& PlatformOptions) override; 17 | }; 18 | 19 | using FPlatformEOSVoiceChat = FWindowsEOSVoiceChat; 20 | 21 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Public/EOSVoiceChatFactory.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "EOSShared.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | #include "Features/IModularFeatures.h" 10 | #include "Misc/CoreMisc.h" 11 | #include "Templates/SharedPointer.h" 12 | #include "IEOSSDKManager.h" 13 | 14 | using IVoiceChatPtr = TSharedPtr; 15 | using IVoiceChatWeakPtr = TWeakPtr; 16 | 17 | class EIKVOICECHAT_API FEOSVoiceChatFactory : public IModularFeature, public FSelfRegisteringExec 18 | { 19 | public: 20 | static FEOSVoiceChatFactory* Get() 21 | { 22 | if (IModularFeatures::Get().IsModularFeatureAvailable(GetModularFeatureName())) 23 | { 24 | return &IModularFeatures::Get().GetModularFeature(GetModularFeatureName()); 25 | } 26 | return nullptr; 27 | } 28 | 29 | static FName GetModularFeatureName() 30 | { 31 | static const FName FeatureName = TEXT("EOSVoiceChatFactory"); 32 | return FeatureName; 33 | } 34 | 35 | virtual ~FEOSVoiceChatFactory() = default; 36 | 37 | /** Create an instance with its own EOS platform. */ 38 | IVoiceChatPtr CreateInstance(); 39 | /** Create an instance sharing an existing EOS platform. Used to enable interaction with e.g. lobby voice channels via an IVoiceChat interface. */ 40 | IVoiceChatPtr CreateInstanceWithPlatform(const IEIKPlatformHandlePtr& PlatformHandle); 41 | 42 | // ~Begin FSelfRegisteringExec 43 | virtual bool Exec(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar) override; 44 | // ~End FSelfRegisteringExec 45 | 46 | private: 47 | TArray Instances; 48 | }; 49 | 50 | #endif // WITH_EOS_RTC -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Public/EOSVoiceChatLog.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Logging/LogMacros.h" 6 | 7 | #if WITH_EOS_RTC 8 | 9 | DECLARE_LOG_CATEGORY_EXTERN(LogEOSVoiceChat, Log, All); 10 | 11 | #define EOSVOICECHATUSER_LOG(EOSVoiceChatLogLevel, EOSVoiceChatFormatStr, ...) \ 12 | { \ 13 | UE_LOG(LogEOSVoiceChat, EOSVoiceChatLogLevel, TEXT("[%p] ") EOSVoiceChatFormatStr, (void*)this, ##__VA_ARGS__); \ 14 | } 15 | 16 | #define EOSVOICECHATUSER_CLOG(Condition, EOSVoiceChatLogLevel, EOSVoiceChatFormatStr, ...) \ 17 | { \ 18 | UE_CLOG(Condition, LogEOSVoiceChat, EOSVoiceChatLogLevel, TEXT("[%p] ") EOSVoiceChatFormatStr, (void*)this, ##__VA_ARGS__); \ 19 | } 20 | 21 | #endif // WITH_EOS_RTC 22 | -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Public/EOSVoiceChatTypes.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Serialization/JsonSerializerMacros.h" 6 | 7 | /** 8 | * Passed in the ChannelCredentials parameter of EOSVoiceChatUser::JoinChannel calls. 9 | */ 10 | struct FEOSVoiceChatChannelCredentials 11 | : public FJsonSerializable 12 | { 13 | FString OverrideUserId; 14 | FString ClientBaseUrl; 15 | FString ParticipantToken; 16 | 17 | BEGIN_JSON_SERIALIZER 18 | JSON_SERIALIZE("override_userid", OverrideUserId); 19 | JSON_SERIALIZE("client_base_url", ClientBaseUrl); 20 | JSON_SERIALIZE("participant_token", ParticipantToken); 21 | END_JSON_SERIALIZER 22 | }; 23 | 24 | UE_DEPRECATED(4.27, "FEOSVoiceChannelConnectionInfo renamed to FEOSVoiceChatChannelCredentials") 25 | typedef FEOSVoiceChatChannelCredentials FEOSVoiceChannelConnectionInfo; -------------------------------------------------------------------------------- /Source/EIKVoiceChat/Subsystem/EIK_Voice_Subsystem.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2023 Betide Studio. All rights reserved. 2 | 3 | 4 | #include "EIK_Voice_Subsystem.h" 5 | #include "Net/UnrealNetwork.h" 6 | 7 | 8 | bool UEIK_Voice_Subsystem::EVIK_Local_Initialize() 9 | { 10 | EVIK_VoiceChat = IVoiceChat::Get(); 11 | if(EVIK_VoiceChat) 12 | { 13 | return EVIK_VoiceChat->Initialize(); 14 | } 15 | return false; 16 | } 17 | 18 | IVoiceChat* UEIK_Voice_Subsystem::EVIK_Local_GetVoiceChat() 19 | { 20 | if (!EVIK_VoiceChat) 21 | { 22 | EVIK_VoiceChat = IVoiceChat::Get(); 23 | if(EVIK_VoiceChat) 24 | { 25 | EVIK_VoiceChat->Initialize(); 26 | } 27 | } 28 | return EVIK_VoiceChat; 29 | } 30 | 31 | void UEIK_Voice_Subsystem::EVIK_Local_Connect(const FEIKResultDelegate& ResultDelegate) 32 | { 33 | if(EVIK_VoiceChat) 34 | { 35 | EVIK_VoiceChat->Connect(FOnVoiceChatConnectCompleteDelegate::CreateLambda([this, ResultDelegate](const FVoiceChatResult& Result) 36 | { 37 | if(Result.IsSuccess()) 38 | { 39 | ResultDelegate.ExecuteIfBound(true, EEVIKResultCodes::Success); 40 | } 41 | else 42 | { 43 | ResultDelegate.ExecuteIfBound(false, EEVIKResultCodes::Failed); 44 | } 45 | } 46 | )); 47 | } 48 | } 49 | 50 | 51 | void UEIK_Voice_Subsystem::PlayerListUpdated() 52 | { 53 | if(UpdatePositionalVoiceChatTimerHandle.IsValid()) 54 | { 55 | UpdatePositionalVoiceChatTimerHandle.Invalidate(); 56 | } 57 | //GetWorld()->GetTimerManager().SetTimer(UpdatePositionalVoiceChatTimerHandle, this, &UEIK_Voice_Subsystem::UpdatePositionalVoiceChat, 0.2f, true); 58 | } -------------------------------------------------------------------------------- /Source/EIKWeb/EIKWeb.Build.cs: -------------------------------------------------------------------------------- 1 | using UnrealBuildTool; 2 | 3 | public class EIKWeb : ModuleRules 4 | { 5 | public EIKWeb(ReadOnlyTargetRules Target) : base(Target) 6 | { 7 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 8 | 9 | PublicDependencyModuleNames.AddRange( 10 | new string[] 11 | { 12 | "Core", 13 | "HTTP", 14 | "JsonUtilities", 15 | "Json", 16 | } 17 | ); 18 | 19 | PrivateDependencyModuleNames.AddRange( 20 | new string[] 21 | { 22 | "CoreUObject", 23 | "Engine", 24 | "Slate", 25 | "SlateCore" 26 | } 27 | ); 28 | } 29 | } -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/AntiCheat/EIK_API_QueryAntiCheatServiceStatus.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_QueryAntiCheatServiceStatus.h" 5 | 6 | UEIK_API_QueryAntiCheatServiceStatus* UEIK_API_QueryAntiCheatServiceStatus::QueryAntiCheatServiceStatus( 7 | FString Authorization, FString DeploymentId) 8 | { 9 | UEIK_API_QueryAntiCheatServiceStatus* Node = NewObject(); 10 | Node->Var_Authorization = Authorization; 11 | Node->Var_DeploymentId = DeploymentId; 12 | return Node; 13 | } 14 | 15 | void UEIK_API_QueryAntiCheatServiceStatus::Activate() 16 | { 17 | Super::Activate(); 18 | FString URL = FString::Printf(TEXT("%s/anticheat/v1/%s/status"), *APIEndpoint, *Var_DeploymentId); 19 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 20 | HttpRequest->SetVerb(TEXT("GET")); 21 | HttpRequest->SetURL(URL); 22 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 23 | if (Var_Authorization.Contains("Bearer")) 24 | { 25 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 26 | } 27 | else 28 | { 29 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 30 | } 31 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_QueryAntiCheatServiceStatus::OnResponseReceived); 32 | HttpRequest->ProcessRequest(); 33 | } 34 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/AntiCheat/EIK_API_QueryAntiCheatServiceStatus.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryAntiCheatServiceStatus.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryAntiCheatServiceStatus : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|AntiCheat") 20 | static UEIK_API_QueryAntiCheatServiceStatus* QueryAntiCheatServiceStatus(FString Authorization, FString DeploymentId); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_DeploymentId; 27 | }; 28 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Connect/EIK_API_QueryExternalAccounts.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryExternalAccounts.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryExternalAccounts : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | //The request queryExternalAccountsForAnyUser returns associated Product User IDs from a list of external account IDs. 18 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Connect") 19 | static UEIK_API_QueryExternalAccounts* QueryExternalAccounts(FString Authorization, TArray AccountId, FString IdentityProviderId, FString Environment); 20 | 21 | private: 22 | 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | TArray Var_AccountId; 26 | FString Var_IdentityProviderId; 27 | FString Var_Environment; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Connect/EIK_API_QueryProductUsers.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_QueryProductUsers.h" 5 | 6 | UEIK_API_QueryProductUsers* UEIK_API_QueryProductUsers::QueryProductUsers(FString Authorization, 7 | TArray ProductUserIds) 8 | { 9 | UEIK_API_QueryProductUsers* Node = NewObject(); 10 | Node->Var_Authorization = Authorization; 11 | Node->Var_ProductUserIds = ProductUserIds; 12 | return Node; 13 | } 14 | 15 | void UEIK_API_QueryProductUsers::Activate() 16 | { 17 | Super::Activate(); 18 | FString URL = FString::Printf(TEXT("%s/user/v1/product-users"), *APIEndpoint); 19 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 20 | HttpRequest->SetVerb(TEXT("GET")); 21 | HttpRequest->SetURL(URL); 22 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 23 | if (Var_Authorization.Contains("Bearer")) 24 | { 25 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 26 | } 27 | else 28 | { 29 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 30 | } 31 | FString QueryString = TEXT("?"); 32 | if (Var_ProductUserIds.Num() > 0) 33 | { 34 | for (auto ProductUserId : Var_ProductUserIds) 35 | { 36 | QueryString += FString::Printf(TEXT("productUserId=%s&"), *ProductUserId); 37 | } 38 | } 39 | URL += QueryString; 40 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_QueryProductUsers::OnResponseReceived); 41 | HttpRequest->ProcessRequest(); 42 | } 43 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Connect/EIK_API_QueryProductUsers.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryProductUsers.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryProductUsers : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //The request queryProductUsersForAnyUser returns associated accounts from a list of Product User IDs. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Connect") 21 | static UEIK_API_QueryProductUsers* QueryProductUsers(FString Authorization, TArray ProductUserIds); 22 | 23 | private: 24 | 25 | virtual void Activate() override; 26 | FString Var_Authorization; 27 | TArray Var_ProductUserIds; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Connect/EIK_API_RequestAccessToken.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_RequestAccessToken.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_RequestAccessToken : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //The EOS Connect backend provides an OAuth 2.0 token endpoint to request access tokens for the EOS Game Services Web APIs. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Connect") 21 | static UEIK_API_RequestAccessToken* RequestAccessToken(FString Authorization, FString ClientId, FString ClientSecret, FString GrantType = "client_credentials", FString Nonce = "", FString DeploymentId = "", FString ExternalAuthToken = "", FString ExternalAuthType = ""); 22 | 23 | private: 24 | 25 | virtual void Activate() override; 26 | FString Var_Authorization; 27 | FString Var_ClientId; 28 | FString Var_ClientSecret; 29 | FString Var_GrantType; 30 | FString Var_Nonce; 31 | FString Var_DeploymentId; 32 | FString Var_ExternalAuthToken; 33 | FString Var_ExternalAuthType; 34 | }; 35 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_DirectEntitlementEnumeration.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_DirectEntitlementEnumeration.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_DirectEntitlementEnumeration : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Ecom") 20 | static UEIK_API_DirectEntitlementEnumeration* DirectEntitlementEnumeration(FString Authorization, FString IdentityId, FString SandboxId, FString EntitlementName, bool bIncludeRedeemed); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_IdentityId; 27 | FString Var_SandboxId; 28 | FString Var_EntitlementName; 29 | bool Var_bIncludeRedeemed; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_DirectOwnershipVerification.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_DirectOwnershipVerification.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_DirectOwnershipVerification : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | //The endpoint to check if a user owns an item, or a list of items. 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|AntiCheat") 20 | static UEIK_API_DirectOwnershipVerification* DirectOwnershipVerification(FString Authorization, FString CurrentAccountId, TArray NsCatalogItemIds, FString SandboxId); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_CurrentAccountId; 26 | TArray Var_NsCatalogItemIds; 27 | FString Var_SandboxId; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_QueryClawbacks.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_QueryClawbacks.h" 5 | 6 | UEIK_API_QueryClawbacks* UEIK_API_QueryClawbacks::QueryClawbacks(FString Authorization, FString NameSpace, 7 | FString ClawbackDate, int32 Count) 8 | { 9 | UEIK_API_QueryClawbacks* Node = NewObject(); 10 | Node->Var_Authorization = Authorization; 11 | Node->Var_NameSpace = NameSpace; 12 | Node->Var_ClawbackDate = ClawbackDate; 13 | Node->Var_Count = Count; 14 | return Node; 15 | } 16 | 17 | void UEIK_API_QueryClawbacks::Activate() 18 | { 19 | Super::Activate(); 20 | FString URL = FString::Printf(TEXT("%s/epic/ecom/v3/namespace/%s/entitlements/clawbacks?clawbackDate=%s&count=%d"), *APIEndpoint, *Var_NameSpace, *Var_ClawbackDate, Var_Count); 21 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 22 | HttpRequest->SetVerb(TEXT("GET")); 23 | HttpRequest->SetURL(URL); 24 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 25 | if (Var_Authorization.Contains("Bearer")) 26 | { 27 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 28 | } 29 | else 30 | { 31 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 32 | } 33 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_QueryClawbacks::OnResponseReceived); 34 | HttpRequest->ProcessRequest(); 35 | } 36 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_QueryClawbacks.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryClawbacks.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryClawbacks : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Ecom") 20 | static UEIK_API_QueryClawbacks* QueryClawbacks(FString Authorization, FString NameSpace, FString ClawbackDate, int32 Count=10); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_NameSpace; 27 | FString Var_ClawbackDate; 28 | int32 Var_Count; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_QueryOffers.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_QueryOffers.h" 5 | 6 | UEIK_API_QueryOffers* UEIK_API_QueryOffers::QueryOffers(FString Authorization, FString IdentityId, FString SandboxId) 7 | { 8 | UEIK_API_QueryOffers* Node = NewObject(); 9 | Node->Var_Authorization = Authorization; 10 | Node->Var_IdentityId = IdentityId; 11 | Node->Var_SandboxId = SandboxId; 12 | return Node; 13 | } 14 | 15 | void UEIK_API_QueryOffers::Activate() 16 | { 17 | Super::Activate(); 18 | FString URL = FString::Printf(TEXT("%s/epic/ecom/v3/identities/%s/namespaces/%s/offers"), *APIEndpoint, *Var_IdentityId, *Var_SandboxId); 19 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 20 | HttpRequest->SetVerb(TEXT("GET")); 21 | HttpRequest->SetURL(URL); 22 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 23 | if (Var_Authorization.Contains("Bearer")) 24 | { 25 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 26 | } 27 | else 28 | { 29 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 30 | } 31 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_QueryOffers::OnResponseReceived); 32 | HttpRequest->ProcessRequest(); 33 | } 34 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_QueryOffers.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryOffers.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryOffers : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Ecom") 20 | static UEIK_API_QueryOffers* QueryOffers(FString Authorization, FString IdentityId, FString SandboxId); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_IdentityId; 26 | FString Var_SandboxId; 27 | FString Var_Authorization; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_RedeemEntitlements.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_RedeemEntitlements.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_RedeemEntitlements : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Ecom") 20 | static UEIK_API_RedeemEntitlements* RedeemEntitlements(FString Authorization, FString IdentityId, TArray EntitlementIds, FString SandboxId); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_IdentityId; 26 | FString Var_SandboxId; 27 | FString Var_Authorization; 28 | TArray Var_EntitlementIds; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_TokenBasedEntitlementVerification.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_TokenBasedEntitlementVerification.h" 5 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_TokenBasedEntitlementVerification.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_TokenBasedEntitlementVerification.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_TokenBasedEntitlementVerification : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | }; 17 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_TokenBasedOwnershipVerification.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_TokenBasedOwnershipVerification.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_TokenBasedOwnershipVerification : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|AntiCheat") 20 | static UEIK_API_TokenBasedOwnershipVerification* TokenBasedOwnershipVerification(FString AuthorizationToken, FString Platform, FString IdentityId, TMap CatalogItemId); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_Platform; 26 | FString Var_IdentityId; 27 | TMap Var_CatalogItemId; 28 | FString Var_Authorization; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_VerifyEntitlementVerificationToken.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_VerifyEntitlementVerificationToken.h" 5 | 6 | UEIK_API_VerifyEntitlementVerificationToken* UEIK_API_VerifyEntitlementVerificationToken:: 7 | VerifyEntitlementVerificationToken(FString KeyId) 8 | { 9 | UEIK_API_VerifyEntitlementVerificationToken* Node = NewObject(); 10 | Node->Var_KeyId = KeyId; 11 | return Node; 12 | } 13 | 14 | void UEIK_API_VerifyEntitlementVerificationToken::Activate() 15 | { 16 | Super::Activate(); 17 | FString URL = FString::Printf(TEXT("https://ecommerceintegration-public-service-ecomprod02.ol.epicgames.com/ecommerceintegration/api/public/publickeys/%s"), *Var_KeyId); 18 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 19 | HttpRequest->SetVerb(TEXT("GET")); 20 | HttpRequest->SetURL(URL); 21 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 22 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_VerifyEntitlementVerificationToken::OnResponseReceived); 23 | HttpRequest->ProcessRequest(); 24 | } 25 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_VerifyEntitlementVerificationToken.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_VerifyEntitlementVerificationToken.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_VerifyEntitlementVerificationToken : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Ecom") 19 | static UEIK_API_VerifyEntitlementVerificationToken* VerifyEntitlementVerificationToken(FString KeyId); 20 | 21 | private: 22 | 23 | virtual void Activate() override; 24 | FString Var_KeyId; 25 | }; 26 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_VerifyOwnershipVerificationToken.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_VerifyOwnershipVerificationToken.h" 5 | 6 | UEIK_API_VerifyOwnershipVerificationToken* UEIK_API_VerifyOwnershipVerificationToken:: 7 | VerifyOwnershipVerificationToken(FString KeyId) 8 | { 9 | UEIK_API_VerifyOwnershipVerificationToken* Node = NewObject(); 10 | Node->Var_KeyId = KeyId; 11 | return Node; 12 | } 13 | 14 | void UEIK_API_VerifyOwnershipVerificationToken::Activate() 15 | { 16 | Super::Activate(); 17 | FString URL = FString::Printf(TEXT("https://ecommerceintegration-public-service-ecomprod02.ol.epicgames.com/ecommerceintegration/api/public/publickeys/%s"), *Var_KeyId); 18 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 19 | HttpRequest->SetVerb(TEXT("GET")); 20 | HttpRequest->SetURL(URL); 21 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 22 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_VerifyOwnershipVerificationToken::OnResponseReceived); 23 | HttpRequest->ProcessRequest(); 24 | } 25 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Ecom/EIK_API_VerifyOwnershipVerificationToken.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_VerifyOwnershipVerificationToken.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_VerifyOwnershipVerificationToken : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Ecom") 20 | static UEIK_API_VerifyOwnershipVerificationToken* VerifyOwnershipVerificationToken(FString KeyId); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_KeyId; 26 | }; 27 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/PlayerReports/EIK_API_FindPlayerReports.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_FindPlayerReports.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_FindPlayerReports : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Player Reports") 20 | static UEIK_API_FindPlayerReports* FindPlayerReports(FString Authorization, FString DeploymentId, FString ReportingPlayerId, FString ReportedPlayerId, int32 ReasonId, FString StartTime, FString EndTime, bool bPagination, int32 Offset = 0, int32 Limit = 50, FString Order = "time:desc"); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_DeploymentId; 27 | FString Var_ReportingPlayerId; 28 | FString Var_ReportedPlayerId; 29 | int32 Var_ReasonId; 30 | FString Var_StartTime; 31 | FString Var_EndTime; 32 | bool Var_bPagination; 33 | int32 Var_Offset; 34 | int32 Var_Limit; 35 | FString Var_Order; 36 | }; 37 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/PlayerReports/EIK_API_GetReportReasonDefinition.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_GetReportReasonDefinition.h" 5 | 6 | UEIK_API_GetReportReasonDefinition* UEIK_API_GetReportReasonDefinition::GetReportReasonDefinition(FString Authorization) 7 | { 8 | UEIK_API_GetReportReasonDefinition* Proxy = NewObject(); 9 | Proxy->Var_Authorization = Authorization; 10 | return Proxy; 11 | } 12 | 13 | void UEIK_API_GetReportReasonDefinition::Activate() 14 | { 15 | Super::Activate(); 16 | FString URL = FString::Printf(TEXT("%s/player-reports/v1/report/reason/definition"), *APIEndpoint); 17 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 18 | HttpRequest->SetVerb(TEXT("GET")); 19 | HttpRequest->SetURL(URL); 20 | HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); 21 | if (Var_Authorization.Contains("Bearer")) 22 | { 23 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 24 | } 25 | else 26 | { 27 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 28 | } 29 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_GetReportReasonDefinition::OnResponseReceived); 30 | HttpRequest->ProcessRequest(); 31 | } 32 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/PlayerReports/EIK_API_GetReportReasonDefinition.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_GetReportReasonDefinition.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_GetReportReasonDefinition : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Player Reports") 20 | static UEIK_API_GetReportReasonDefinition* GetReportReasonDefinition(FString Authorization); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | }; 27 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/PlayerReports/EIK_API_SendNewPlayerReport.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_SendNewPlayerReport.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_SendNewPlayerReport : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web API|Player Reports") 20 | static UEIK_API_SendNewPlayerReport* SendNewPlayerReport(FString Authorization, FString ReportingPlayerId, FString ReportedPlayerId, FString Time, int32 ReasonId, FString Message, FString Context); 21 | 22 | private: 23 | 24 | virtual void Activate() override; 25 | FString Var_ReportedPlayerId; 26 | FString Var_ReportingPlayerId; 27 | FString Var_Time; 28 | int32 Var_ReasonId; 29 | FString Var_Message; 30 | FString Var_Authorization; 31 | FString Var_Context; 32 | }; 33 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_ApprovePendingSanctions.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_ApprovePendingSanctions.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_ApprovePendingSanctions : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_ApprovePendingSanctions* ApprovePendingSanctions(FString Authorization, FString DeploymentId, FString EOS_OrganizationId, FString EOS_ClientId, FString EOS_DeploymentId, TArray ReferenceIds); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | FString Var_EOS_OrganizationId; 27 | FString Var_EOS_ClientId; 28 | FString Var_EOS_DeploymentId; 29 | TArray Var_ReferenceIds; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_BulkQueryActiveSanction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_BulkQueryActiveSanction.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_BulkQueryActiveSanction : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_BulkQueryActiveSanction* BulkQueryActiveSanction(FString Authorization, FString DeploymentId, TArray ProductUserId, TArray Action); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | TArray Var_ProductUserId; 27 | TArray Var_Action; 28 | 29 | 30 | }; 31 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_CreateSanctionAppealForLocalUser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_CreateSanctionAppealForLocalUser.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_CreateSanctionAppealForLocalUser : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_CreateSanctionAppealForLocalUser* CreateSanctionAppealForLocalUser(FString Authorization, FString DeploymentId, FString ProductUserId, FString ReferenceId, FString Reason); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | FString Var_ProductUserId; 27 | FString Var_ReferenceId; 28 | FString Var_Reason; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_CreateSanctionAppeals.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_CreateSanctionAppeals.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_CreateSanctionAppeals : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_CreateSanctionAppeals* CreateSanctionAppeals(FString Authorization, FString DeploymentId, FString ReferenceId, int32 Reason); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | FString Var_ReferenceId; 27 | int32 Var_Reason; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_QueryActiveSanctions.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryActiveSanctions.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryActiveSanctions : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //The queryActiveSanctions request will return a list of all active sanctions for a given player. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 21 | static UEIK_API_QueryActiveSanctions* QueryActiveSanctions(FString Authorization, FString ProductUserId, TArray Action); 22 | 23 | private: 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_ProductUserId; 27 | TArray Var_Action; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_QueryAllSanctions.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_QueryAllSanctions.h" 5 | 6 | UEIK_API_QueryAllSanctions* UEIK_API_QueryAllSanctions::QueryAllSanctions(FString Authorization, FString DeploymentId, 7 | int32 Limit, int32 Offset) 8 | { 9 | UEIK_API_QueryAllSanctions* Proxy = NewObject(); 10 | Proxy->Var_Authorization = Authorization; 11 | Proxy->Var_DeploymentId = DeploymentId; 12 | Proxy->Var_Limit = Limit; 13 | Proxy->Var_Offset = Offset; 14 | return Proxy; 15 | } 16 | 17 | void UEIK_API_QueryAllSanctions::Activate() 18 | { 19 | Super::Activate(); 20 | FString URL = FString::Printf(TEXT("%s/sanctions/v1/%s/sanctions?limit=%d&offset=%d"), *APIEndpoint, *Var_DeploymentId, Var_Limit, Var_Offset); 21 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 22 | HttpRequest->SetVerb(TEXT("GET")); 23 | HttpRequest->SetURL(URL); 24 | if (Var_Authorization.Contains("Bearer")) 25 | { 26 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 27 | } 28 | else 29 | { 30 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 31 | } 32 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_QueryAllSanctions::OnResponseReceived); 33 | HttpRequest->ProcessRequest(); 34 | } 35 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_QueryAllSanctions.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryAllSanctions.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryAllSanctions : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_QueryAllSanctions* QueryAllSanctions(FString Authorization, FString DeploymentId, int32 Limit = 100, int32 Offset = 0); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | int32 Var_Limit; 27 | int32 Var_Offset; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_QueryAllSanctionsForPlayer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_QueryAllSanctionsForPlayer.h" 5 | 6 | UEIK_API_QueryAllSanctionsForPlayer* UEIK_API_QueryAllSanctionsForPlayer::QueryAllSanctionsForPlayer( 7 | FString Authorization, FString DeploymentId, FString ProductUserId, int32 Limit, int32 Offset) 8 | { 9 | UEIK_API_QueryAllSanctionsForPlayer* Proxy = NewObject(); 10 | Proxy->Var_Authorization = Authorization; 11 | Proxy->Var_DeploymentId = DeploymentId; 12 | Proxy->Var_ProductUserId = ProductUserId; 13 | Proxy->Var_Limit = Limit; 14 | Proxy->Var_Offset = Offset; 15 | return Proxy; 16 | } 17 | 18 | void UEIK_API_QueryAllSanctionsForPlayer::Activate() 19 | { 20 | Super::Activate(); 21 | FString URL = FString::Printf(TEXT("%s/sanctions/v1/%s/users/%s?limit=%d&offset=%d"), *APIEndpoint, *Var_DeploymentId, *Var_ProductUserId, Var_Limit, Var_Offset); 22 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 23 | HttpRequest->SetVerb(TEXT("GET")); 24 | HttpRequest->SetURL(URL); 25 | if (Var_Authorization.Contains("Bearer")) 26 | { 27 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 28 | } 29 | else 30 | { 31 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 32 | } 33 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_QueryAllSanctionsForPlayer::OnResponseReceived); 34 | HttpRequest->ProcessRequest(); 35 | } 36 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_QueryAllSanctionsForPlayer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QueryAllSanctionsForPlayer.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QueryAllSanctionsForPlayer : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_QueryAllSanctionsForPlayer* QueryAllSanctionsForPlayer(FString Authorization, FString DeploymentId, FString ProductUserId, int32 Limit = 100, int32 Offset = 0); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | FString Var_ProductUserId; 27 | int32 Var_Limit; 28 | int32 Var_Offset; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_QuerySanctionAppeals.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_QuerySanctionAppeals.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_QuerySanctionAppeals : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_QuerySanctionAppeals* QuerySanctionAppeals(FString Authorization, FString DeploymentId, FString ReferenceId, FString Status, FString ProductUserId, int32 Limit = 100, int32 Offset = 0); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | FString Var_ReferenceId; 27 | FString Var_Status; 28 | FString Var_ProductUserId; 29 | int32 Var_Limit; 30 | int32 Var_Offset; 31 | }; 32 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_RemoveSanctions.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_RemoveSanctions.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_RemoveSanctions : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_RemoveSanctions* RemoveSanctions(FString Authorization, FString DeploymentId, TArray ReferenceIds, FString Justification); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_DeploymentId; 26 | TArray Var_ReferenceIds; 27 | FString Var_Justification; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_SyncSanctionsToExternalService.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_SyncSanctionsToExternalService.h" 5 | 6 | UEIK_API_SyncSanctionsToExternalService* UEIK_API_SyncSanctionsToExternalService::SyncSanctionsToExternalService( 7 | FString Authorization, FString LastLogId) 8 | { 9 | UEIK_API_SyncSanctionsToExternalService* Proxy = NewObject(); 10 | Proxy->Var_Authorization = Authorization; 11 | Proxy->Var_LastLogId = LastLogId; 12 | return Proxy; 13 | } 14 | 15 | void UEIK_API_SyncSanctionsToExternalService::Activate() 16 | { 17 | Super::Activate(); 18 | FString URL = FString::Printf(TEXT("%s/sanctions/v1/sync"), *APIEndpoint); 19 | if (!Var_LastLogId.IsEmpty()) 20 | { 21 | URL.Append(FString::Printf(TEXT("?lastLogId=%s"), *Var_LastLogId)); 22 | } 23 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 24 | HttpRequest->SetVerb(TEXT("GET")); 25 | HttpRequest->SetURL(URL); 26 | if (Var_Authorization.Contains("Bearer")) 27 | { 28 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 29 | } 30 | else 31 | { 32 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 33 | } 34 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_SyncSanctionsToExternalService::OnResponseReceived); 35 | HttpRequest->ProcessRequest(); 36 | } 37 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Sanctions/EIK_API_SyncSanctionsToExternalService.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_SyncSanctionsToExternalService.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_SyncSanctionsToExternalService : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 20 | static UEIK_API_SyncSanctionsToExternalService* SyncSanctionsToExternalService(FString Authorization, FString LastLogId); 21 | 22 | private: 23 | virtual void Activate() override; 24 | FString Var_Authorization; 25 | FString Var_LastLogId; 26 | }; 27 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Voice/EIK_API_ModifyParticipant.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_ModifyParticipant.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_ModifyParticipant : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Room members can be remote-muted, i.e. be muted for everyone, independent of their local mute status. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 21 | static UEIK_API_ModifyParticipant* ModifyParticipant(FString Authorization, FString DeploymentId, FString RoomId, FString ProductUserId, bool bHardMuted); 22 | 23 | private: 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_DeploymentId; 27 | FString Var_RoomId; 28 | FString Var_ProductUserId; 29 | bool Var_bHardMuted; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Voice/EIK_API_RemoveVoiceParticipant.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_API_RemoveVoiceParticipant.h" 5 | 6 | UEIK_API_RemoveVoiceParticipant* UEIK_API_RemoveVoiceParticipant::RemoveVoiceParticipant(FString Authorization, 7 | FString DeploymentId, FString RoomId, FString ProductUserId) 8 | { 9 | UEIK_API_RemoveVoiceParticipant* Proxy = NewObject(); 10 | Proxy->Var_Authorization = Authorization; 11 | Proxy->Var_DeploymentId = DeploymentId; 12 | Proxy->Var_RoomId = RoomId; 13 | Proxy->Var_ProductUserId = ProductUserId; 14 | return Proxy; 15 | } 16 | 17 | void UEIK_API_RemoveVoiceParticipant::Activate() 18 | { 19 | Super::Activate(); 20 | FString URL = FString::Printf(TEXT("%s/rtc/v1/%s/room/%s/participants/%s"), *APIEndpoint, *Var_DeploymentId, *Var_RoomId, *Var_ProductUserId); 21 | 22 | TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); 23 | HttpRequest->SetVerb(TEXT("DELETE")); 24 | HttpRequest->SetURL(URL); 25 | if (Var_Authorization.Contains("Bearer")) 26 | { 27 | HttpRequest->SetHeader(TEXT("Authorization"), Var_Authorization); 28 | } 29 | else 30 | { 31 | HttpRequest->SetHeader(TEXT("Authorization"), FString::Printf(TEXT("Bearer %s"), *Var_Authorization)); 32 | } 33 | HttpRequest->OnProcessRequestComplete().BindUObject(this, &UEIK_API_RemoveVoiceParticipant::OnResponseReceived); 34 | HttpRequest->ProcessRequest(); 35 | } -------------------------------------------------------------------------------- /Source/EIKWeb/Functions/Voice/EIK_API_RemoveVoiceParticipant.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "EIK_BaseWebApi.h" 7 | #include "EIK_API_RemoveVoiceParticipant.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class EIKWEB_API UEIK_API_RemoveVoiceParticipant : public UEIK_BaseWebApi 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //The removeParticipant request will remove a player from the voice room and revoke their room token, preventing them from reusing their existing token to join the same room again. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit|Web") 21 | static UEIK_API_RemoveVoiceParticipant* RemoveVoiceParticipant(FString Authorization, FString DeploymentId, FString RoomId, FString ProductUserId); 22 | 23 | private: 24 | virtual void Activate() override; 25 | FString Var_Authorization; 26 | FString Var_DeploymentId; 27 | FString Var_RoomId; 28 | FString Var_ProductUserId; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/EIKWeb/Private/EIKWeb.cpp: -------------------------------------------------------------------------------- 1 | #include "EIKWeb.h" 2 | 3 | #define LOCTEXT_NAMESPACE "FEIKWebModule" 4 | 5 | void FEIKWebModule::StartupModule() 6 | { 7 | 8 | } 9 | 10 | void FEIKWebModule::ShutdownModule() 11 | { 12 | 13 | } 14 | 15 | #undef LOCTEXT_NAMESPACE 16 | 17 | IMPLEMENT_MODULE(FEIKWebModule, EIKWeb) -------------------------------------------------------------------------------- /Source/EIKWeb/Private/EIK_BaseWebApi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_BaseWebApi.h" 5 | #include "Runtime/Launch/Resources/Version.h" 6 | 7 | 8 | void UEIK_BaseWebApi::OnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) 9 | { 10 | if(!bWasSuccessful) 11 | { 12 | OnResponse.Broadcast(false, FEIK_BaseWebApiResponse(-1, "Request failed")); 13 | DestroyAsyncTask(); 14 | return; 15 | } 16 | if(!Response.IsValid()) 17 | { 18 | OnResponse.Broadcast(false, FEIK_BaseWebApiResponse(-1, "Response is invalid")); 19 | DestroyAsyncTask(); 20 | return; 21 | } 22 | OnResponse.Broadcast(true, FEIK_BaseWebApiResponse(Response->GetResponseCode(), Response->GetContentAsString())); 23 | DestroyAsyncTask(); 24 | } 25 | 26 | void UEIK_BaseWebApi::DestroyAsyncTask() 27 | { 28 | SetReadyToDestroy(); 29 | #if ENGINE_MAJOR_VERSION == 5 30 | MarkAsGarbage(); 31 | #else 32 | MarkPendingKill(); 33 | #endif 34 | } 35 | -------------------------------------------------------------------------------- /Source/EIKWeb/Public/EIKWeb.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | class FEIKWebModule : public IModuleInterface 7 | { 8 | public: 9 | virtual void StartupModule() override; 10 | virtual void ShutdownModule() override; 11 | }; 12 | -------------------------------------------------------------------------------- /Source/EIKWeb/Public/EIK_BaseWebApi.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "HttpModule.h" 5 | #include "Interfaces/IHttpRequest.h" 6 | #include "Interfaces/IHttpResponse.h" 7 | #include "Runtime/Json/Public/Dom/JsonValue.h" 8 | #include "Misc/Base64.h" 9 | #include "Runtime/Json/Public/Serialization/JsonSerializer.h" 10 | #include "Runtime/Json/Public/Dom/JsonObject.h" 11 | #include "Kismet/BlueprintAsyncActionBase.h" 12 | #include "EIK_BaseWebApi.generated.h" 13 | 14 | USTRUCT(BlueprintType) 15 | struct FEIK_BaseWebApiResponse 16 | { 17 | GENERATED_BODY() 18 | 19 | UPROPERTY(BlueprintReadWrite, Category = "EOS Integration Kit|Web") 20 | int32 StatusCode; 21 | 22 | UPROPERTY(BlueprintReadWrite, Category = "EOS Integration Kit|Web") 23 | FString Response; 24 | 25 | FEIK_BaseWebApiResponse() 26 | { 27 | StatusCode = -1; 28 | Response = ""; 29 | } 30 | FEIK_BaseWebApiResponse(int32 InStatusCode, const FString& InResponse) 31 | { 32 | StatusCode = InStatusCode; 33 | Response = InResponse; 34 | } 35 | 36 | }; 37 | 38 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_BaseWebApiDelegate, bool, bSuccess, const FEIK_BaseWebApiResponse&, Response); 39 | UCLASS() 40 | class UEIK_BaseWebApi : public UBlueprintAsyncActionBase 41 | { 42 | GENERATED_BODY() 43 | 44 | public: 45 | 46 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit|Web") 47 | FEIK_BaseWebApiDelegate OnResponse; 48 | 49 | protected: 50 | void OnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); 51 | void DestroyAsyncTask(); 52 | FString APIEndpoint = "https://api.epicgames.dev"; 53 | }; 54 | -------------------------------------------------------------------------------- /Source/EOSIntegrationKit/EOSIntegrationKit.Build.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using UnrealBuildTool; 3 | 4 | public class EOSIntegrationKit : ModuleRules 5 | { 6 | public EOSIntegrationKit(ReadOnlyTargetRules Target) : base(Target) 7 | { 8 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 9 | 10 | PublicDependencyModuleNames.AddRange( 11 | new string[] 12 | { 13 | "Core", 14 | "OnlineSubsystemUtils", 15 | } 16 | ); 17 | PrivateDependencyModuleNames.AddRange( 18 | new string[] 19 | { 20 | "Core", 21 | "CoreUObject", 22 | "Engine", 23 | "Slate", 24 | "SlateCore", 25 | "Projects", 26 | "OnlineSubsystem", 27 | "Slate", 28 | "SlateCore", 29 | } 30 | ); 31 | if (Target.bBuildEditor) 32 | { 33 | PrivateDependencyModuleNames.AddRange( 34 | new string[] { 35 | "UnrealEd", 36 | "ToolMenus", 37 | } 38 | ); 39 | } 40 | 41 | if (!Target.bBuildEditor && Target.Platform == UnrealTargetPlatform.Android) 42 | { 43 | PublicDefinitions.Add("ANDROIDX_ENABLED=1"); 44 | PublicDependencyModuleNames.AddRange(new string[] { "Launch" }); 45 | 46 | string modulePath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath); 47 | AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(modulePath, "EOSIntegrationKit_Android.xml")); 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /Source/EOSIntegrationKit/Public/EOSIntegrationKit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "Interfaces/IPluginManager.h" 5 | #include "Modules/ModuleManager.h" 6 | 7 | DECLARE_LOG_CATEGORY_EXTERN(LogEOSIntegrationKit, Log, All); 8 | class FEOSIntegrationKitModule : public IModuleInterface 9 | { 10 | public: 11 | virtual void StartupModule() override; 12 | void ConfigureOnlineSubsystemEIK() const; 13 | static void ConfigureDedicatedServerConfigEIK(); 14 | virtual void ShutdownModule() override; 15 | }; 16 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/EIK_CalculatePingForIp_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "EIK_CalculatePingForIp_AsyncFunction.generated.h" 9 | 10 | /** 11 | * 12 | */ 13 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnCalculatePingForIpComplete, int32, Ping); 14 | UCLASS() 15 | class ONLINESUBSYSTEMEIK_API UEIK_CalculatePingForIp_AsyncFunction : public UBlueprintAsyncActionBase 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | Beacons | Ping", meta = (BlueprintInternalUseOnly = "true"), DisplayName = "Calculate Ping For Ip") 21 | static UEIK_CalculatePingForIp_AsyncFunction* CalculatePingForIp(FString IpAddress, int32 Port, bool bPortOverride); 22 | 23 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Beacons | Ping") 24 | FEIK_OnCalculatePingForIpComplete OnSuccess; 25 | 26 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Beacons | Ping") 27 | FEIK_OnCalculatePingForIpComplete OnFailure; 28 | 29 | private: 30 | UFUNCTION() 31 | void OnPingComplete(int32 Ping, bool bSuccess); 32 | virtual void Activate() override; 33 | 34 | FString Var_IpAddress; 35 | int32 Var_Port; 36 | bool Var_bPortOverride; 37 | }; 38 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/EIK_CalculatePingForSession_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "Engine/World.h" 9 | #include "OnlineSubsystemEIK/Subsystem/EIK_Subsystem.h" 10 | #include "EIK_CalculatePingForSession_AsyncFunction.generated.h" 11 | 12 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnCalculatePingForSessionComplete, int32, Ping); 13 | UCLASS() 14 | class ONLINESUBSYSTEMEIK_API UEIK_CalculatePingForSession_AsyncFunction : public UBlueprintAsyncActionBase 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | Beacons | Ping", meta = (BlueprintInternalUseOnly = "true", WorldContext = "WorldContextObject"), DisplayName = "Calculate Ping For Session") 21 | static UEIK_CalculatePingForSession_AsyncFunction* CalculatePingForSession(FSessionFindStruct Session, UObject* WorldContextObject); 22 | 23 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Beacons | Ping") 24 | FEIK_OnCalculatePingForSessionComplete OnSuccess; 25 | 26 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Beacons | Ping") 27 | FEIK_OnCalculatePingForSessionComplete OnFailure; 28 | 29 | private: 30 | UFUNCTION() 31 | void OnPingComplete(int32 Ping, bool bSuccess); 32 | virtual void Activate() override; 33 | 34 | FSessionFindStruct Var_SessionFindStruct; 35 | 36 | UPROPERTY() 37 | UObject* WorldContextObject; 38 | }; 39 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/PingClient.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "FindSessionsCallbackProxy.h" 7 | #include "Misc/ConfigCacheIni.h" 8 | #include "OnlineBeaconClient.h" 9 | #include "PingClient.generated.h" 10 | 11 | DECLARE_LOG_CATEGORY_EXTERN(LogPingClient, Log, All); 12 | 13 | DECLARE_DYNAMIC_DELEGATE_TwoParams(FEIK_PingComplete, int32, PingMS, bool, bSuccess); 14 | 15 | UCLASS(Blueprintable, BlueprintType, Transient, NotPlaceable, Config = Engine) 16 | class ONLINESUBSYSTEMEIK_API APingClient : public AOnlineBeaconClient 17 | 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | APingClient(const FObjectInitializer& ObjectInitializer); 23 | 24 | virtual void OnFailure() override; 25 | 26 | UFUNCTION(Client, Reliable) 27 | void ClientPingBegin(); 28 | 29 | UFUNCTION(Server, Reliable, WithValidation) 30 | void ServerPong(); 31 | 32 | UFUNCTION(Client, Reliable) 33 | void ClientPingEnd(); 34 | 35 | UFUNCTION(BlueprintCallable, Category=Ping) 36 | bool ConnectToHost(FString Address, int32 Port, const bool bPortOverride, FEIK_PingComplete Ref); 37 | 38 | UFUNCTION(BlueprintCallable, Category=Ping) 39 | bool ConnectToSession(FBlueprintSessionResult SearchResult, FEIK_PingComplete Ref); 40 | 41 | UFUNCTION(BlueprintCallable, Category=Ping) 42 | void Disconnect(); 43 | 44 | FEIK_PingComplete OnPingComplete; 45 | protected: 46 | int64 PingBeginTime; 47 | int32 PingMS; 48 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/PingHost.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #include "PingHost.h" 4 | 5 | DEFINE_LOG_CATEGORY(LogPingHost) 6 | 7 | APingHost::APingHost(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) 8 | { 9 | BeaconState = EBeaconState::AllowRequests; 10 | } 11 | 12 | bool APingHost::InitializeHost() 13 | { 14 | bInitSuccess = InitHost(); 15 | return bInitSuccess; 16 | } 17 | 18 | void APingHost::RegisterHostObject(AOnlineBeaconHostObject* HostObject) 19 | { 20 | if (bInitSuccess) 21 | { 22 | RegisterHost(HostObject); 23 | } 24 | } -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/PingHost.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "OnlineBeaconHost.h" 7 | #include "PingHost.generated.h" 8 | 9 | DECLARE_LOG_CATEGORY_EXTERN(LogPingHost, Log, All); 10 | 11 | /** 12 | * 13 | */ 14 | UCLASS(Blueprintable, BlueprintType, Transient, NotPlaceable, Config=Engine) 15 | class ONLINESUBSYSTEMEIK_API APingHost : public AOnlineBeaconHost 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | APingHost(const FObjectInitializer& ObjectInitializer); 21 | 22 | UFUNCTION(BlueprintCallable, Category=Ping) 23 | bool InitializeHost(); 24 | 25 | UFUNCTION(BlueprintCallable, Category=Ping) 26 | void RegisterHostObject(AOnlineBeaconHostObject* HostObject); 27 | 28 | protected: 29 | bool bInitSuccess; 30 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/PingHostObject.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #include "PingHostObject.h" 4 | #include "PingClient.h" 5 | 6 | DEFINE_LOG_CATEGORY(LogPingHostObject) 7 | 8 | APingHostObject::APingHostObject(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) 9 | { 10 | ClientBeaconActorClass = APingClient::StaticClass(); 11 | BeaconTypeName = ClientBeaconActorClass->GetName(); 12 | 13 | PrimaryActorTick.bCanEverTick = true; 14 | PrimaryActorTick.bAllowTickOnDedicatedServer = true; 15 | PrimaryActorTick.bStartWithTickEnabled = true; 16 | } 17 | 18 | AOnlineBeaconClient* APingHostObject::SpawnBeaconActor(UNetConnection* ClientConnection) 19 | { 20 | return Super::SpawnBeaconActor(ClientConnection); 21 | } 22 | 23 | void APingHostObject::OnClientConnected(AOnlineBeaconClient* ClientActor, UNetConnection* ClientConnection) 24 | { 25 | Super::OnClientConnected(ClientActor, ClientConnection); 26 | APingClient* BeaconClient = Cast(ClientActor); 27 | if (BeaconClient != nullptr) 28 | { 29 | BeaconClient->ClientPingBegin(); 30 | } 31 | } 32 | 33 | bool APingHostObject::Init() 34 | { 35 | return true; 36 | } -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Beacons/PingHostObject.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "OnlineBeaconHostObject.h" 7 | #include "PingHostObject.generated.h" 8 | 9 | DECLARE_LOG_CATEGORY_EXTERN(LogPingHostObject, Log, All); 10 | 11 | /** 12 | * 13 | */ 14 | UCLASS(Blueprintable, BlueprintType, Transient, NotPlaceable, Config = Engine) 15 | class ONLINESUBSYSTEMEIK_API APingHostObject : public AOnlineBeaconHostObject 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | APingHostObject(const FObjectInitializer& ObjectInitializer); 21 | 22 | virtual AOnlineBeaconClient* SpawnBeaconActor(class UNetConnection* ClientConnection) override; 23 | 24 | virtual void OnClientConnected(class AOnlineBeaconClient* ClientActor, class UNetConnection* ClientConnection) override; 25 | 26 | virtual bool Init(); 27 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Extra/EIK_GetAppleAuthToken_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Interfaces/OnlineIdentityInterface.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "OnlineSubsystem.h" 9 | #include "OnlineSubsystemEOS.h" 10 | #include "UserManagerEOS.h" 11 | #include "EIK_GetAppleAuthToken_AsyncFunction.generated.h" 12 | 13 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnGetAppleAuthTokenComplete, const FString&, AuthToken); 14 | 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_GetAppleAuthToken_AsyncFunction : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), DisplayName="Get Apple Auth Token", Category = "EOS Integration Kit|Extra") 22 | static UEIK_GetAppleAuthToken_AsyncFunction* GetAppleAuthToken(); 23 | 24 | UPROPERTY(BlueprintAssignable) 25 | FEIK_OnGetAppleAuthTokenComplete OnSuccess; 26 | 27 | UPROPERTY(BlueprintAssignable) 28 | FEIK_OnGetAppleAuthTokenComplete OnFailure; 29 | 30 | private: 31 | void OnLoginComplete(int LocalUserNum, bool bWasSuccess, const FUniqueNetId& UniqueNetId, const FString& Error); 32 | virtual void Activate() override; 33 | }; 34 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Extra/EIK_GetPlatformAuthToken_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Interfaces/OnlineIdentityInterface.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "EIK_GetPlatformAuthToken_AsyncFunction.generated.h" 9 | 10 | UENUM(BlueprintType) 11 | enum EEIK_PlatformToUse 12 | { 13 | Steam, 14 | Apple, 15 | }; 16 | 17 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnGetPlatformAuthTokenComplete, const FString&, AuthToken); 18 | 19 | UCLASS() 20 | class ONLINESUBSYSTEMEIK_API UEIK_GetPlatformAuthToken_AsyncFunction : public UBlueprintAsyncActionBase 21 | { 22 | GENERATED_BODY() 23 | 24 | public: 25 | 26 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), DisplayName="Get Steam Auth Token", Category = "EOS Integration Kit|Extra") 27 | static UEIK_GetPlatformAuthToken_AsyncFunction* GetPlatformAuthToken(); 28 | 29 | UPROPERTY(BlueprintAssignable) 30 | FOnGetPlatformAuthTokenComplete OnSuccess; 31 | 32 | UPROPERTY(BlueprintAssignable) 33 | FOnGetPlatformAuthTokenComplete OnFailure; 34 | private: 35 | void OnGetPlatformAuthTokenComplete(int I, bool bArg, const FExternalAuthToken& ExternalAuthToken); 36 | virtual void Activate() override; 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Extra/EIK_SanctionsAsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_SanctionsAsyncFunction.generated.h" 9 | 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSanctionsDelegate, const TArray&, Sanctions); 12 | 13 | UCLASS() 14 | class ONLINESUBSYSTEMEIK_API UEIK_SanctionsAsyncFunction : public UBlueprintAsyncActionBase 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | /* 20 | This C++ method gets the logged in user's achievements from the EOS backend. 21 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/authentication/ 22 | */ 23 | UFUNCTION(BlueprintCallable, DisplayName="Get EIK Player Sanctions",meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Others") 24 | static UEIK_SanctionsAsyncFunction* GetEikPlayerSanctionsAsyncFunction(FString LocalProductUserID, FString TargetProductUserID); 25 | 26 | FString Var_LocalProductUserID; 27 | FString Var_TargetProductUserID; 28 | 29 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Sanctions") 30 | FSanctionsDelegate Success; 31 | 32 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Sanctions") 33 | FSanctionsDelegate Failure; 34 | 35 | void Func_GetSanctions(); 36 | 37 | static void EOS_CALL ReturnFunc(const EOS_Sanctions_QueryActivePlayerSanctionsCallbackInfo* Data); 38 | 39 | void GetFinalValues(); 40 | void FireFailure(); 41 | void Activate() override; 42 | }; 43 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Friends/EIK_AcceptFriendInvite_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/Subsystem/EIK_Subsystem.h" 8 | #include "EIK_AcceptFriendInvite_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAcceptFriendInviteComplete, const FString&, Error); 11 | UCLASS() 12 | class ONLINESUBSYSTEMEIK_API UEIK_AcceptFriendInvite_AsyncFunction : public UBlueprintAsyncActionBase 13 | { 14 | GENERATED_BODY() 15 | public: 16 | 17 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Friends", DisplayName = "Accept Friend Invite") 18 | static UEIK_AcceptFriendInvite_AsyncFunction* AcceptFriendInvite(FEIKUniqueNetId FriendId); 19 | 20 | private: 21 | void OnAcceptComplete(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& FriendId, const FString& ListName, const FString& ErrorStr); 22 | virtual void Activate() override; 23 | FEIKUniqueNetId Var_FriendId; 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FOnAcceptFriendInviteComplete OnSuccess; 27 | 28 | UPROPERTY(BlueprintAssignable) 29 | FOnAcceptFriendInviteComplete OnFailure; 30 | 31 | }; 32 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Friends/EIK_InviteFriend_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/Subsystem/EIK_Subsystem.h" 8 | #include "EIK_InviteFriend_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnInviteFriendComplete, const FString&, Error); 11 | UCLASS() 12 | class ONLINESUBSYSTEMEIK_API UEIK_InviteFriend_AsyncFunction : public UBlueprintAsyncActionBase 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Friends", DisplayName = "Add New Friend") 18 | static UEIK_InviteFriend_AsyncFunction* InviteFriend(FEIKUniqueNetId FriendId); 19 | 20 | private: 21 | FEIKUniqueNetId Var_FriendId; 22 | void OnInviteComplete(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& FriendId, const FString& ListName, const FString& ErrorStr); 23 | virtual void Activate() override; 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FOnInviteFriendComplete OnSuccess; 27 | 28 | UPROPERTY(BlueprintAssignable) 29 | FOnInviteFriendComplete OnFailure; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Friends/EIK_RejectFriendInvite_AsyncFunction.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_RejectFriendInvite_AsyncFunction.h" 5 | #include "OnlineSubsystemUtils.h" 6 | 7 | UEIK_RejectFriendInvite_AsyncFunction* UEIK_RejectFriendInvite_AsyncFunction::RejectFriendInvite( 8 | FEIKUniqueNetId FriendId) 9 | { 10 | UEIK_RejectFriendInvite_AsyncFunction* UEIK_RejectFriendInviteObject= NewObject(); 11 | UEIK_RejectFriendInviteObject->Var_FriendId = FriendId; 12 | return UEIK_RejectFriendInviteObject; 13 | } 14 | 15 | void UEIK_RejectFriendInvite_AsyncFunction::Activate() 16 | { 17 | Super::Activate(); 18 | if(const IOnlineSubsystem *SubsystemRef = Online::GetSubsystem(GetWorld())) 19 | { 20 | if(const IOnlineFriendsPtr FriendsInterface = SubsystemRef->GetFriendsInterface()) 21 | { 22 | FriendsInterface->RejectInvite(0,*Var_FriendId.GetUniqueNetId(),""); 23 | SetReadyToDestroy(); 24 | #if ENGINE_MAJOR_VERSION == 5 25 | MarkAsGarbage(); 26 | #else 27 | MarkPendingKill(); 28 | #endif 29 | } 30 | else 31 | { 32 | // Failed to get Friends Interface 33 | SetReadyToDestroy(); 34 | #if ENGINE_MAJOR_VERSION == 5 35 | MarkAsGarbage(); 36 | #else 37 | MarkPendingKill(); 38 | #endif 39 | OnFailure.Broadcast("Failed to get Friends Interface"); 40 | } 41 | } 42 | else 43 | { 44 | // Failed to get Subsystem 45 | SetReadyToDestroy(); 46 | #if ENGINE_MAJOR_VERSION == 5 47 | MarkAsGarbage(); 48 | #else 49 | MarkPendingKill(); 50 | #endif 51 | OnFailure.Broadcast("Failed to get Subsystem"); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Friends/EIK_RejectFriendInvite_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/Subsystem/EIK_Subsystem.h" 8 | #include "EIK_RejectFriendInvite_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRejectFriendInviteComplete, const FString&, Error); 11 | UCLASS() 12 | class ONLINESUBSYSTEMEIK_API UEIK_RejectFriendInvite_AsyncFunction : public UBlueprintAsyncActionBase 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | 18 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Friends", DisplayName = "Reject Friend Invite") 19 | static UEIK_RejectFriendInvite_AsyncFunction* RejectFriendInvite(FEIKUniqueNetId FriendId); 20 | 21 | private: 22 | FEIKUniqueNetId Var_FriendId; 23 | virtual void Activate() override; 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FOnRejectFriendInviteComplete OnSuccess; 27 | 28 | UPROPERTY(BlueprintAssignable) 29 | FOnRejectFriendInviteComplete OnFailure; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Friends/EIK_SendSessionInvite_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/Subsystem/EIK_Subsystem.h" 8 | #include "EIK_SendSessionInvite_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSendSessionInviteComplete, const FString&, Error); 11 | UCLASS() 12 | class ONLINESUBSYSTEMEIK_API UEIK_SendSessionInvite_AsyncFunction : public UBlueprintAsyncActionBase 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Friends", DisplayName = "Send Session Invite") 18 | static UEIK_SendSessionInvite_AsyncFunction* SendSessionInvite( 19 | FName SessionName, 20 | FEIKUniqueNetId FriendId); 21 | 22 | private: 23 | FEIKUniqueNetId Var_FriendId; 24 | FName Var_SessionName; 25 | virtual void Activate() override; 26 | 27 | UPROPERTY(BlueprintAssignable) 28 | FOnSendSessionInviteComplete OnSuccess; 29 | 30 | UPROPERTY(BlueprintAssignable) 31 | FOnSendSessionInviteComplete OnFailure; 32 | }; 33 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Login/EIK_DeleteDeviceId_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | 8 | #include "OnlineSubsystemEOS.h" 9 | #include "eos_connect.h" 10 | #include "eos_connect_types.h" 11 | 12 | #include "EIK_DeleteDeviceId_AsyncFunction.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDeleteDeviceIDResponsDelegate); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_DeleteDeviceId_AsyncFunction : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Login") 24 | static UEIK_DeleteDeviceId_AsyncFunction* DeleteDeviceId(); 25 | 26 | static void OnDeleteDeviceIdComplete(const EOS_Connect_DeleteDeviceIdCallbackInfo* Data); 27 | virtual void Activate() override; 28 | 29 | 30 | UPROPERTY(BlueprintAssignable) 31 | FDeleteDeviceIDResponsDelegate OnSuccess; 32 | 33 | UPROPERTY(BlueprintAssignable) 34 | FDeleteDeviceIDResponsDelegate OnFailure; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Login/EIK_Logout_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Runtime/Launch/Resources/Version.h" 7 | #include "Kismet/BlueprintAsyncActionBase.h" 8 | #include "EIK_Logout_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE(FLogout_Delegate); 11 | 12 | /** 13 | * 14 | */ 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_Logout_AsyncFunction : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | UPROPERTY(BlueprintAssignable, DisplayName="Success") 22 | FLogout_Delegate OnSuccess; 23 | UPROPERTY(BlueprintAssignable, DisplayName="Failure") 24 | FLogout_Delegate OnFail; 25 | /* 26 | This C++ method logs out in a user to an online subsystem using the selected method and sets up a callback function to handle the login response. 27 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/authentication/ 28 | */ 29 | UFUNCTION(BlueprintCallable, DisplayName="Logout Using EIK",meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Login") 30 | static UEIK_Logout_AsyncFunction* LogoutUsingEIK(); 31 | 32 | void Activate() override; 33 | 34 | void LogoutPlayer(); 35 | 36 | void LogoutCallback(int32 LocalUserNum, bool bWasSuccess); 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/PlayFab/EIK_ConnectPlayFab_AsyncFunction.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | 4 | #include "EIK_ConnectPlayFab_AsyncFunction.h" 5 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/PlayFab/EIK_ConnectPlayFab_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "EIK_ConnectPlayFab_AsyncFunction.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_ConnectPlayFab_AsyncFunction : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | }; 17 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Reports/EIK_OpenReportsUI_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "eos_ui.h" 6 | #include "eos_ui_types.h" 7 | #include "CoreMinimal.h" 8 | #include "Kismet/BlueprintAsyncActionBase.h" 9 | #include "EIK_OpenReportsUI_AsyncFunction.generated.h" 10 | 11 | /** 12 | * 13 | */ 14 | 15 | DECLARE_DYNAMIC_MULTICAST_DELEGATE(FReportsUIDelegate); 16 | 17 | UCLASS() 18 | class ONLINESUBSYSTEMEIK_API UEIK_OpenReportsUI_AsyncFunction : public UBlueprintAsyncActionBase 19 | { 20 | GENERATED_BODY() 21 | public: 22 | 23 | //PUID's' 24 | FString LocalReporterPUID; 25 | FString TargetPlayerPUID; 26 | 27 | //Delegates 28 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit || Reports") 29 | FReportsUIDelegate Success; 30 | 31 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit || Reports") 32 | FReportsUIDelegate Failure; 33 | 34 | UFUNCTION(BlueprintCallable, DisplayName = "Show Epic Player Report UI", meta = (BlueprintInternalUseOnly = "true"), Category = "EOS Integration Kit || Reports") 35 | static UEIK_OpenReportsUI_AsyncFunction* ShowEIKPlayerReportUIAsyncFunction(FString LocalReporterPUID, FString TargetPlayerPUID); 36 | 37 | void SendReportFunc(); 38 | 39 | static void EOS_CALL SendReportFuncCallback(const EOS_UI_OnShowReportPlayerCallbackInfo* Data); 40 | 41 | void ResultFaliure(); 42 | 43 | void ResultSuccess(); 44 | 45 | void Activate() override; 46 | }; 47 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Sessions/EIK_DestroySession_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Interfaces/OnlineSessionInterface.h" 8 | #include "OnlineSubsystemEIK/Subsystem/EIK_Subsystem.h" 9 | #include "EIK_DestroySession_AsyncFunction.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDestroySession_Delegate); 12 | 13 | UCLASS() 14 | class ONLINESUBSYSTEMEIK_API UEIK_DestroySession_AsyncFunction : public UBlueprintAsyncActionBase 15 | { 16 | GENERATED_BODY() 17 | public: 18 | 19 | bool bDelegateCalled = false; 20 | FName Var_SessionName; 21 | 22 | UPROPERTY(BlueprintAssignable, DisplayName="Success") 23 | FDestroySession_Delegate OnSuccess; 24 | 25 | UPROPERTY(BlueprintAssignable, DisplayName="Failure") 26 | FDestroySession_Delegate OnFail; 27 | 28 | /* 29 | *This C++ method destroys a session using the EOS SDK and sets up a callback function to handle the destroy session response. 30 | *Documentation link: https://eik.betide.studio/multiplayer/sessions/matchmaking-sessions/ 31 | *For Input Parameters, please refer to the documentation link above. 32 | */ 33 | UFUNCTION(BlueprintCallable, DisplayName="Destroy EIK Session",meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Sessions") 34 | static UEIK_DestroySession_AsyncFunction* DestroyEIKSessions(FName SessionName); 35 | 36 | 37 | virtual void Activate() override; 38 | 39 | void DestroySession(); 40 | 41 | void OnDestroySessionCompleted(FName SessionName, bool bWasSuccess); 42 | }; 43 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Stats/EIK_GetStats_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Interfaces/OnlineStatsInterface.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "Kismet/BlueprintAsyncActionBase.h" 9 | #include "EIK_GetStats_AsyncFunction.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FGetStatsResult, const TArray&, Stats); 12 | 13 | UCLASS() 14 | class ONLINESUBSYSTEMEIK_API UEIK_GetStats_AsyncFunction : public UBlueprintAsyncActionBase 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | 20 | TArray StatName; 21 | 22 | UPROPERTY(BlueprintAssignable) 23 | FGetStatsResult OnSuccess; 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FGetStatsResult OnFail; 27 | 28 | bool bDelegateCalled = false; 29 | /* 30 | This C++ method gets the stats in the online subsystem using the selected method and sets up a callback function to handle the response. 31 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/stats/ 32 | For Input Parameters, please refer to the documentation link above. 33 | */ 34 | UFUNCTION(BlueprintCallable, DisplayName="Get EIK Stats", meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Statistics") 35 | static UEIK_GetStats_AsyncFunction* GetStats( TArray StatName); 36 | 37 | virtual void Activate() override; 38 | void GetStats(); 39 | void OnGetStatsCompleted(const FOnlineError &ResultState, const TArray> &UsersStatsResult); 40 | 41 | }; 42 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Stats/EIK_SetStats_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineError.h" 8 | #include "Runtime/Launch/Resources/Version.h" 9 | #include "EIK_SetStats_AsyncFunction.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE(FSetStatsResult); 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_SetStats_AsyncFunction : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | FString StatName; 20 | int32 StatValue; 21 | UPROPERTY(BlueprintAssignable) 22 | FSetStatsResult OnSuccess; 23 | 24 | UPROPERTY(BlueprintAssignable) 25 | FSetStatsResult OnFail; 26 | 27 | bool bDelegateCalled = false; 28 | /* 29 | This C++ method sets the stats in the online subsystem using the selected method and sets up a callback function to handle the response. 30 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/sessions/ 31 | */ 32 | UFUNCTION(BlueprintCallable, DisplayName="Set EIK Stats", meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Statistics") 33 | static UEIK_SetStats_AsyncFunction* SetEIKStats(const FString& StatName, const int32 StatValue); 34 | 35 | void OnEUpdateStatsCompleted(const FOnlineError& Result); 36 | 37 | 38 | void Activate() override; 39 | void SetEIKStatsLocal(); 40 | }; 41 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Store/EIK_GetOffers_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "EIK_GetOffers_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FGetOffers_Delegate, const TArray&, Offers); 11 | 12 | /** 13 | * 14 | */ 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_GetOffers_AsyncFunction : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | UPROPERTY(BlueprintAssignable, DisplayName="Success") 23 | FGetOffers_Delegate OnSuccess; 24 | UPROPERTY(BlueprintAssignable, DisplayName="Failure") 25 | FGetOffers_Delegate OnFail; 26 | 27 | bool bDelegateCalled = false; 28 | void Activate() override; 29 | void GetOffers(); 30 | 31 | /* 32 | This C++ method gets the offers in the online subsystem using the selected method and sets up a callback function to handle the response. 33 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/store/ 34 | */ 35 | UFUNCTION(BlueprintCallable, DisplayName="Get EIK Offers",meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Store") 36 | static UEIK_GetOffers_AsyncFunction* GetEIKOffers(); 37 | }; 38 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Store/EIK_OwnedItems_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "EIK_OwnedItems_AsyncFunction.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FGetOwnedItems_Delegate, const TArray&, OwnedItemNames, const FString&, ErrorString); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_OwnedItems_AsyncFunction : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | UPROPERTY(BlueprintAssignable, DisplayName="Success") 19 | FGetOwnedItems_Delegate OnSuccess; 20 | UPROPERTY(BlueprintAssignable, DisplayName="Failure") 21 | FGetOwnedItems_Delegate OnFail; 22 | 23 | bool bDelegateCalled = false; 24 | void Activate() override; 25 | void GetOwnedItems(); 26 | 27 | /* 28 | This C++ method gets the owned items in the online subsystem using the selected method and sets up a callback function to handle the response. 29 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/stats/ 30 | */ 31 | UFUNCTION(BlueprintCallable, DisplayName="Get EIK Owned Items",meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Store") 32 | static UEIK_OwnedItems_AsyncFunction* GetEIKOwnedItems(); 33 | }; 34 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/Store/EIK_PurchaseItem_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "EIK_PurchaseItem_AsyncFunction.generated.h" 9 | 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE(FPurchaseItemResult); 12 | 13 | UCLASS() 14 | class ONLINESUBSYSTEMEIK_API UEIK_PurchaseItem_AsyncFunction : public UBlueprintAsyncActionBase 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | 20 | FString ItemID; 21 | 22 | UPROPERTY(BlueprintAssignable) 23 | FPurchaseItemResult OnSuccess; 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FPurchaseItemResult OnFail; 27 | 28 | bool bDelegateCalled = false; 29 | 30 | /* 31 | This C++ method purchases an item in the online subsystem using the selected method and sets up a callback function to handle the response. 32 | Documentation link: https://betide-studio.gitbook.io/eos-integration-kit/sessions/ 33 | */ 34 | UFUNCTION(BlueprintCallable, DisplayName="Purchase EIK Item", meta = (BlueprintInternalUseOnly = "true"), Category="EOS Integration Kit || Store") 35 | static UEIK_PurchaseItem_AsyncFunction* PurchaseItem(FString ItemID); 36 | 37 | void Activate() override; 38 | 39 | void PurchaseItem(); 40 | 41 | 42 | }; 43 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/AsyncFunctions/SupportTickets/EIK_DeleteTicketData_AsyncFunct.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | 8 | #include "EIKSettings.h" 9 | #include "Runtime/Online/HTTP/Public/Http.h" 10 | 11 | #include "EIK_DeleteTicketData_AsyncFunct.generated.h" 12 | 13 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnTicketDeleteComplete, const FString&, ResponseStr, const int32&, HTTP_ResponseCode, bool, bWasSuccessful); 14 | 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_DeleteTicketData_AsyncFunct : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | // Variables 22 | FString Var_Email; 23 | 24 | // Delegates 25 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit || Support Tickets") 26 | FOnTicketDeleteComplete Success; 27 | 28 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit || Support Tickets") 29 | FOnTicketDeleteComplete Failure; 30 | 31 | // Functions 32 | void Activate() override; 33 | 34 | UFUNCTION(BlueprintCallable, DisplayName = "Delete EIK Support Ticket Data", meta = (BlueprintInternalUseOnly = "true"), Category = "EOS Integration Kit | Support Tickets ") 35 | static UEIK_DeleteTicketData_AsyncFunct* DeleteEIKTicketDataAsyncFunction(FString Email); 36 | 37 | void DeleteTicketData(); 38 | void OnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); 39 | }; 40 | 41 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/Android/AndroidEOSHelpers.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "AndroidEOSHelpers.h" 4 | 5 | #if WITH_EOS_SDK 6 | 7 | void FAndroidEOSHelpers::PlatformTriggerLoginUI(FOnlineSubsystemEOS* InEOSSubsystem, const int ControllerIndex, bool bShowOnlineOnly, bool bShowSkipButton, const FOnLoginUIClosedDelegate& Delegate) 8 | { 9 | ShowAccountPortalUI(InEOSSubsystem, ControllerIndex, Delegate); 10 | } 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/Android/AndroidEOSHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSHelpers.h" 8 | 9 | class FAndroidEOSHelpers : public FEOSHelpers 10 | { 11 | public: 12 | virtual void PlatformTriggerLoginUI(FOnlineSubsystemEOS* EOSSubsystem, const int ControllerIndex, bool bShowOnlineOnly, bool bShowSkipButton, const FOnLoginUIClosedDelegate& Delegate) override; 13 | }; 14 | 15 | using FPlatformEOSHelpers = FAndroidEOSHelpers; 16 | 17 | #endif -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/EIK_BaseGameMode.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #include "EIK_BaseGameMode.h" 4 | #include "GameFramework/GameSession.h" 5 | #include "Net/OnlineEngineInterface.h" 6 | 7 | void AEIK_BaseGameMode::PreLogin(const FString& Options, const FString& Address, const FUniqueNetIdRepl& UniqueId, 8 | FString& ErrorMessage) 9 | { 10 | ErrorMessage = GameSession->ApproveLogin(Options); 11 | FGameModeEvents::GameModePreLoginEvent.Broadcast(this, UniqueId, ErrorMessage); 12 | } 13 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/EIK_EngineSubsystem.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_EngineSubsystem.h" 5 | 6 | #include "Online.h" 7 | #include "OnlineSubsystemModule.h" 8 | #include "OnlineSubsystem.h" 9 | #include "Interfaces/OnlineIdentityInterface.h" 10 | 11 | #if WITH_EDITOR 12 | #include "Editor.h" 13 | #endif 14 | 15 | void UEIK_EngineSubsystem::Initialize(FSubsystemCollectionBase& Collection) 16 | { 17 | #if WITH_EDITOR 18 | FEditorDelegates::BeginPIE.AddUObject( this, &UEIK_EngineSubsystem::BeginPIE ); 19 | Super::Initialize(Collection); 20 | #endif 21 | 22 | } 23 | 24 | void UEIK_EngineSubsystem::BeginPIE(const bool bIsSimulating) 25 | { 26 | #if WITH_EDITOR 27 | static const FName OnlineSubsystemModuleName = TEXT("OnlineSubsystem"); 28 | FOnlineSubsystemModule& OSSModule = FModuleManager::GetModuleChecked(OnlineSubsystemModuleName); 29 | OSSModule.ReloadDefaultSubsystem(); 30 | #endif 31 | } 32 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/EOSHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #if defined(EOS_PLATFORM_BASE_FILE_NAME) 8 | #include EOS_PLATFORM_BASE_FILE_NAME 9 | #endif 10 | 11 | #include "eos_auth_types.h" 12 | #include "eos_types.h" 13 | #include "Interfaces/OnlineExternalUIInterface.h" 14 | 15 | class FOnlineSubsystemEOS; 16 | using IEIKPlatformHandlePtr = TSharedPtr; 17 | 18 | class FEOSHelpers 19 | { 20 | public: 21 | virtual ~FEOSHelpers() = default; 22 | 23 | virtual void PlatformAuthCredentials(EOS_Auth_Credentials &Credentials); 24 | virtual void PlatformTriggerLoginUI(FOnlineSubsystemEOS* EOSSubsystem, const int ControllerIndex, bool bShowOnlineOnly, bool bShowSkipButton, const FOnLoginUIClosedDelegate& Delegate); 25 | virtual IEIKPlatformHandlePtr CreatePlatform(EOS_Platform_Options& PlatformOptions); 26 | 27 | protected: 28 | /** Shared LoginUI logic that can be used by platforms that support LoginUI */ 29 | void ShowAccountPortalUI(FOnlineSubsystemEOS* InEOSSubsystem, const int ControllerIndex, const FOnLoginUIClosedDelegate& Delegate); 30 | 31 | private: 32 | /** Completion handler for ShowAccountPortalUI */ 33 | void OnAccountPortalLoginComplete(int ControllerIndex, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& ErrorString, FOnlineSubsystemEOS* InEOSSubsystem, const FOnLoginUIClosedDelegate LoginUIClosedDelegate, FDelegateHandle* LoginDelegateHandle) const; 34 | }; 35 | 36 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/IOS/IOSEOSHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | #if WITH_EOS_SDK 5 | 6 | #include "eos_auth_types.h" 7 | #include "ThirdParty/EIKSDK/Bin/IOS/EOSSDK.framework/Headers/eos_ios.h" 8 | #include "Interfaces/OnlineExternalUIInterface.h" 9 | #include "EOSHelpers.h" 10 | 11 | class FOnlineSubsystemEOS; 12 | 13 | class FIOSEOSHelpers : public FEOSHelpers 14 | { 15 | public: 16 | virtual ~FIOSEOSHelpers(); 17 | 18 | virtual void PlatformAuthCredentials(EOS_Auth_Credentials &Credentials) override; 19 | virtual void PlatformTriggerLoginUI(FOnlineSubsystemEOS* EOSSubsystem, const int ControllerIndex, bool bShowOnlineOnly, bool bShowSkipButton, const FOnLoginUIClosedDelegate& Delegate) override; 20 | 21 | private: 22 | EOS_IOS_Auth_CredentialsOptions CredentialsOptions; 23 | }; 24 | 25 | using FPlatformEOSHelpers = FIOSEOSHelpers; 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/Linux/LinuxEOSHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSHelpers.h" 8 | 9 | using FPlatformEOSHelpers = FEOSHelpers; 10 | 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/Mac/MacEOSHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSHelpers.h" 8 | 9 | using FPlatformEOSHelpers = FEOSHelpers; 10 | 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/NetDriverEIK.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "NetDriverEIKBase.h" 7 | #include "NetDriverEIKBase.h" 8 | #include "NetDriverEIK.generated.h" 9 | 10 | class ISocketSubsystem; 11 | 12 | UCLASS(Transient, Config=Engine) 13 | class ONLINESUBSYSTEMEIK_API UNetDriverEIK 14 | : public UNetDriverEIKBase 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/OnlineSubsystemEIKModule.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Modules/ModuleInterface.h" 7 | 8 | /** 9 | * Online subsystem module class (EOS Implementation) 10 | * Code related to the loading of the EOS module 11 | */ 12 | class FOnlineSubsystemEIKModule : public IModuleInterface 13 | { 14 | private: 15 | 16 | /** Class responsible for creating instance(s) of the subsystem */ 17 | class FOnlineFactoryEOS* EOSFactory; 18 | 19 | public: 20 | 21 | FOnlineSubsystemEIKModule() : 22 | EOSFactory(NULL) 23 | {} 24 | 25 | virtual ~FOnlineSubsystemEIKModule() {} 26 | 27 | #if WITH_EDITOR 28 | void OnPostEngineInit(); 29 | void OnPreExit(); 30 | #endif 31 | 32 | // IModuleInterface 33 | 34 | virtual void StartupModule() override; 35 | virtual void ShutdownModule() override; 36 | virtual bool SupportsDynamicReloading() override 37 | { 38 | return false; 39 | } 40 | 41 | virtual bool SupportsAutomaticShutdown() override 42 | { 43 | return false; 44 | } 45 | /** This function will be bound to Command. */ 46 | void PluginButtonClicked(); 47 | 48 | private: 49 | 50 | void RegisterMenus(); 51 | 52 | void ConfigureOnlineSubsystemEIK(); 53 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/OnlineSubsystemEOSPrivate.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "OnlineSubsystem.h" 7 | #include "Modules/ModuleManager.h" 8 | 9 | #define INVALID_INDEX -1 10 | 11 | /** URL Prefix when using EOS socket connection */ 12 | #define EOS_URL_PREFIX TEXT("EOS.") 13 | 14 | /** pre-pended to all NULL logging */ 15 | #undef ONLINE_LOG_PREFIX 16 | #define ONLINE_LOG_PREFIX TEXT("EOS: ") 17 | 18 | 19 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/SocketSubsystemEOSUtils_OnlineSubsystemEOS.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "SocketSubsystemEOSUtils_OnlineSubsystemEOS.h" 4 | 5 | #include "OnlineSubsystemEOS.h" 6 | #include "UserManagerEOS.h" 7 | #include "OnlineSessionEOS.h" 8 | 9 | FSocketSubsystemEOSUtils_OnlineSubsystemEOS::FSocketSubsystemEOSUtils_OnlineSubsystemEOS(FOnlineSubsystemEOS& InSubsystemEOS) 10 | : SubsystemEOS(InSubsystemEOS) 11 | { 12 | } 13 | 14 | FSocketSubsystemEOSUtils_OnlineSubsystemEOS::~FSocketSubsystemEOSUtils_OnlineSubsystemEOS() 15 | { 16 | } 17 | 18 | EOS_ProductUserId FSocketSubsystemEOSUtils_OnlineSubsystemEOS::GetLocalUserId() 19 | { 20 | EOS_ProductUserId Result = nullptr; 21 | 22 | Result = SubsystemEOS.UserManager->GetLocalProductUserId(); 23 | 24 | return Result; 25 | } 26 | 27 | FString FSocketSubsystemEOSUtils_OnlineSubsystemEOS::GetSessionId() 28 | { 29 | FString Result; 30 | 31 | const IOnlineSessionPtr DefaultSessionInt = SubsystemEOS.GetSessionInterface(); 32 | if (DefaultSessionInt.IsValid()) 33 | { 34 | if (const FNamedOnlineSession* const NamedSession = DefaultSessionInt->GetNamedSession(NAME_GameSession)) 35 | { 36 | Result = NamedSession->GetSessionIdStr(); 37 | } 38 | } 39 | 40 | return Result; 41 | } 42 | 43 | FName FSocketSubsystemEOSUtils_OnlineSubsystemEOS::GetSubsystemInstanceName() 44 | { 45 | return SubsystemEOS.GetInstanceName(); 46 | } 47 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/SocketSubsystemEOSUtils_OnlineSubsystemEOS.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "SocketSubsystemEIK.h" 6 | 7 | class FOnlineSubsystemEOS; 8 | 9 | class FSocketSubsystemEOSUtils_OnlineSubsystemEOS : public ISocketSubsystemEOSUtils 10 | { 11 | public: 12 | FSocketSubsystemEOSUtils_OnlineSubsystemEOS(FOnlineSubsystemEOS& InSubsystemEOS); 13 | virtual ~FSocketSubsystemEOSUtils_OnlineSubsystemEOS() override; 14 | 15 | virtual EOS_ProductUserId GetLocalUserId() override; 16 | virtual FString GetSessionId() override; 17 | virtual FName GetSubsystemInstanceName() override; 18 | 19 | private: 20 | FOnlineSubsystemEOS& SubsystemEOS; 21 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/Windows/WindowsEOSHelpers.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "WindowsEOSHelpers.h" 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSShared.h" 8 | #include "HAL/FileManager.h" 9 | #include "Misc/Paths.h" 10 | #if WITH_EOS_RTC 11 | #include "Windows/eos_Windows.h" 12 | #endif 13 | 14 | IEIKPlatformHandlePtr FWindowsEOSHelpers::CreatePlatform(EOS_Platform_Options& PlatformOptions) 15 | { 16 | #if WITH_EOS_RTC 17 | const FTCHARToUTF8 Utf8XAudioPath(*IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*FPaths::Combine(FPaths::EngineDir(), TEXT("Binaries/ThirdParty/Windows/XAudio2_9"), PLATFORM_64BITS ? TEXT("x64") : TEXT("x86"), TEXT("xaudio2_9redist.dll")))); 18 | 19 | EOS_Windows_RTCOptions WindowsRtcOptions = { 0 }; 20 | WindowsRtcOptions.ApiVersion = EOS_WINDOWS_RTCOPTIONS_API_LATEST; 21 | static_assert(EOS_WINDOWS_RTCOPTIONS_API_LATEST == 1, "EOS_Windows_RTCOptions updated, check new fields"); 22 | WindowsRtcOptions.XAudio29DllPath = Utf8XAudioPath.Get(); 23 | 24 | EOS_Platform_RTCOptions* RTCOptions = const_cast(PlatformOptions.RTCOptions); 25 | if (ensure(RTCOptions)) 26 | { 27 | RTCOptions->PlatformSpecificOptions = &WindowsRtcOptions; 28 | } 29 | #endif // WITH_EOS_RTC 30 | 31 | return FEOSHelpers::CreatePlatform(PlatformOptions); 32 | } 33 | 34 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Private/Windows/WindowsEOSHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #if WITH_EOS_SDK 6 | 7 | #include "EOSHelpers.h" 8 | 9 | class FWindowsEOSHelpers : public FEOSHelpers 10 | { 11 | public: 12 | virtual ~FWindowsEOSHelpers() = default; 13 | 14 | virtual IEIKPlatformHandlePtr CreatePlatform(EOS_Platform_Options& PlatformOptions) override; 15 | }; 16 | 17 | using FPlatformEOSHelpers = FWindowsEOSHelpers; 18 | 19 | #endif // WITH_EOS_SDK -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Public/EIK_BaseGameMode.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "GameFramework/GameMode.h" 7 | #include "EIK_BaseGameMode.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API AEIK_BaseGameMode : public AGameMode 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | virtual void PreLogin(const FString& Options, const FString& Address, const FUniqueNetIdRepl& UniqueId, FString& ErrorMessage) override; 19 | 20 | }; 21 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Public/EIK_EngineSubsystem.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Subsystems/EngineSubsystem.h" 7 | #include "EIK_EngineSubsystem.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_EngineSubsystem : public UEngineSubsystem 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | virtual void Initialize( FSubsystemCollectionBase& Collection ) override; 19 | 20 | void BeginPIE( const bool bIsSimulating ); 21 | 22 | }; 23 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Public/EIK_FriendSubsystem.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Subsystems/Subsystem.h" 7 | #include "EIK_FriendSubsystem.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_FriendSubsystem : public USubsystem 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | }; 29 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/Public/IOnlineSubsystemEOS.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "OnlineSubsystemImpl.h" 6 | 7 | class FUniqueNetId; 8 | class IVoiceChatUser; 9 | using IEIKPlatformHandlePtr = TSharedPtr; 10 | 11 | /** 12 | * OnlineSubsystemEOS - Implementation of the online subsystem for EOS services 13 | */ 14 | class ONLINESUBSYSTEMEIK_API IOnlineSubsystemEOS : 15 | public FOnlineSubsystemImpl 16 | { 17 | public: 18 | IOnlineSubsystemEOS(FName InSubsystemName, FName InInstanceName) : FOnlineSubsystemImpl(InSubsystemName, InInstanceName) {} 19 | virtual ~IOnlineSubsystemEOS() = default; 20 | 21 | virtual IVoiceChatUser* GetVoiceChatUserInterface(const FUniqueNetId& LocalUserId) = 0; 22 | virtual IEIKPlatformHandlePtr GetEOSPlatformHandle() const = 0; 23 | }; -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/AchievementsInterface/EIK_Achievements_QueryDefinitions.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_Achievements_QueryDefinitions.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnEIK_Achievements_QueryDefinitionsComplete, TEnumAsByte, ResultCode); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Achievements_QueryDefinitions : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Query for a list of definitions for all existing achievements, including localized text, icon IDs and whether an achievement is hidden. 20 | UFUNCTION(BlueprintCallable, Category="EOS Integration Kit | SDK Functions | Achievements Interface", DisplayName="EOS_Achievements_QueryDefinitions") 21 | static UEIK_Achievements_QueryDefinitions* EIK_Achievements_QueryDefinitions(FEIK_ProductUserId UserId); 22 | 23 | UPROPERTY(BlueprintAssignable) 24 | FOnEIK_Achievements_QueryDefinitionsComplete OnCallback; 25 | 26 | private: 27 | 28 | virtual void Activate() override; 29 | FEIK_ProductUserId Var_UserId; 30 | 31 | }; 32 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/AchievementsInterface/EIK_Achievements_QueryPlayerAchievements.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "eos_achievements.h" 8 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 9 | #include "EIK_Achievements_QueryPlayerAchievements.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnEIK_Achievements_QueryPlayerAchievementsComplete, TEnumAsByte, ResultCode, FEIK_ProductUserId, LocalUserId, FEIK_ProductUserId, TargetUserId); 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Achievements_QueryPlayerAchievements : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Query for a list of achievements for a specific player, including progress towards completion for each achievement. 20 | UFUNCTION(BlueprintCallable, Category="EOS Integration Kit | SDK Functions | Achievements Interface", DisplayName="EOS_Achievements_QueryPlayerAchievements") 21 | static UEIK_Achievements_QueryPlayerAchievements* EIK_Achievements_QueryPlayerAchievements(FEIK_ProductUserId LocalUserId, FEIK_ProductUserId TargetUserId); 22 | 23 | UPROPERTY(BlueprintAssignable) 24 | FOnEIK_Achievements_QueryPlayerAchievementsComplete OnCallback; 25 | private: 26 | FEIK_ProductUserId Var_LocalUserId; 27 | FEIK_ProductUserId Var_TargetUserId; 28 | virtual void Activate() override; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/AchievementsInterface/EIK_Achievements_UnlockAchievements.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "eos_achievements.h" 8 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 9 | #include "EIK_Achievements_UnlockAchievements.generated.h" 10 | 11 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnEIK_Achievements_UnlockAchievementsComplete, TEnumAsByte, ResultCode, FEIK_ProductUserId, UserId, int32, AchievementCount); 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Achievements_UnlockAchievements : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | UFUNCTION(BlueprintCallable, Category="EOS Integration Kit | SDK Functions | Achievements Interface", DisplayName="EOS_Achievements_UnlockAchievements") 20 | static UEIK_Achievements_UnlockAchievements* EIK_Achievements_UnlockAchievements(FEIK_ProductUserId UserId, TArray AchievementIds); 21 | 22 | UPROPERTY(BlueprintAssignable) 23 | FOnEIK_Achievements_UnlockAchievementsComplete OnCallback; 24 | 25 | private: 26 | virtual void Activate() override; 27 | FEIK_ProductUserId Var_UserId; 28 | TArray Var_AchievementIds; 29 | }; 30 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/AuthInterface/EIK_Auth_Login.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_Auth_Login.h" 5 | 6 | #include "OnlineSubsystemEOS.h" 7 | #include "Async/Async.h" 8 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 9 | 10 | UEIK_Auth_Login* UEIK_Auth_Login::Login(FEIK_Auth_LoginOptions Options) 11 | { 12 | UEIK_Auth_Login* Node = NewObject(); 13 | Node->Var_Options = Options; 14 | return Node; 15 | } 16 | 17 | void UEIK_Auth_Login::Activate() 18 | { 19 | Super::Activate(); 20 | if( IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get("EIK")) 21 | { 22 | if (FOnlineSubsystemEOS* EOSRef = static_cast(OnlineSub)) 23 | { 24 | EOS_Auth_LoginOptions Options = Var_Options.ToEOSAuthLoginOptions(); 25 | EOS_Auth_Login(EOSRef->AuthHandle, &Options, this, &UEIK_Auth_Login::Internal_OnLoginComplete); 26 | return; 27 | } 28 | } 29 | UE_LOG(LogEIK, Error, TEXT("Failed to login either OnlineSubsystem is not valid or EOSRef is not valid.")); 30 | FEIK_Auth_LoginCallbackInfo Info; 31 | Info.Result = EEIK_Result::EOS_NotFound; 32 | OnCallback.Broadcast(Info); 33 | } 34 | 35 | void UEIK_Auth_Login::Internal_OnLoginComplete(const EOS_Auth_LoginCallbackInfo* Data) 36 | { 37 | UEIK_Auth_Login* Node = static_cast(Data->ClientData); 38 | if(Node) 39 | { 40 | AsyncTask(ENamedThreads::GameThread, [Node, Data]() 41 | { 42 | Node->OnCallback.Broadcast(*Data); 43 | }); 44 | Node->SetReadyToDestroy(); 45 | #if ENGINE_MAJOR_VERSION == 5 46 | Node->MarkAsGarbage(); 47 | #else 48 | Node->MarkPendingKill(); 49 | #endif 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/AuthInterface/EIK_Auth_Logout.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | THIRD_PARTY_INCLUDES_START 8 | #include 9 | THIRD_PARTY_INCLUDES_END 10 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 11 | #include "EIK_Auth_Logout.generated.h" 12 | 13 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnLogoutCallback, TEnumAsByte, ResultCode, FEIK_EpicAccountId, EpicAccountId); 14 | UCLASS() 15 | class ONLINESUBSYSTEMEIK_API UEIK_Auth_Logout : public UBlueprintAsyncActionBase 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | 21 | //Signs the player out of the online service. 22 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Auth Interface", DisplayName = "EOS_Auth_Logout") 23 | static UEIK_Auth_Logout* Logout(FEIK_EpicAccountId EpicAccountId); 24 | 25 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit") 26 | FOnLogoutCallback OnCallback; 27 | private: 28 | FEIK_EpicAccountId Var_EpicAccountId; 29 | virtual void Activate() override; 30 | static void EOS_CALL OnLogoutCallback(const EOS_Auth_LogoutCallbackInfo* Data); 31 | }; 32 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/AuthInterface/EIK_Auth_VerifyUserAuth.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | THIRD_PARTY_INCLUDES_START 7 | #include 8 | THIRD_PARTY_INCLUDES_END 9 | #include "Kismet/BlueprintAsyncActionBase.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 11 | #include "EIK_Auth_VerifyUserAuth.generated.h" 12 | 13 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_Auth_OnVerifyUserAuthCallback, TEnumAsByte, ResultCode); 14 | 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_Auth_VerifyUserAuth : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | //Contact the backend service to verify validity of an existing user auth token. This function is intended for server-side use only. 23 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Auth Interface", DisplayName = "EOS_Auth_VerifyUserAuth") 24 | static UEIK_Auth_VerifyUserAuth* VerifyUserAuth(FEIK_Auth_Token AuthToken); 25 | 26 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit") 27 | FEIK_Auth_OnVerifyUserAuthCallback OnCallback; 28 | 29 | private: 30 | FEIK_Auth_Token Var_AuthToken; 31 | static void EOS_CALL OnVerifyUserAuthCallback(const EOS_Auth_VerifyUserAuthCallbackInfo* Data); 32 | virtual void Activate() override; 33 | }; 34 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_Connect_CreateUser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_Connect_CreateUser.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnCreateUserCallback, EEIK_Result, ResultCode, FEIK_ProductUserId, LocalUserId); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Connect_CreateUser : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | //Create an account association with the Epic Online Service as a product user given their external auth credentials. 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Connect Interface", DisplayName="EOS_Connect_CreateUser") 20 | static UEIK_Connect_CreateUser* CreateUser(FEIK_ContinuanceToken ContinuanceToken); 21 | 22 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit") 23 | FOnCreateUserCallback OnCallback; 24 | 25 | private: 26 | virtual void Activate() override; 27 | FEIK_ContinuanceToken Var_ContinuanceToken; 28 | static void EOS_CALL OnCreateUserCallback(const EOS_Connect_CreateUserCallbackInfo* Data); 29 | }; 30 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_Connect_Logout.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_Connect_Logout.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_Connect_Logout_Delegate, const FEIK_ProductUserId&, ProductUserId); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Connect_Logout : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Logout a currently logged in user. NOTE: Access tokens for Product User IDs cannot be revoked. This operation really just cleans up state for the Product User ID and locally discards any associated access token. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Connect Interface", DisplayName="EOS_Connect_Logout") 21 | static UEIK_Connect_Logout* EIK_Connect_Logout(FEIK_ProductUserId ProductUserId); 22 | 23 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit") 24 | FEIK_Connect_Logout_Delegate OnCallback; 25 | 26 | static void OnLogoutCallback(const EOS_Connect_LogoutCallbackInfo* Data); 27 | 28 | private: 29 | FEIK_ProductUserId Var_ProductUserId; 30 | virtual void Activate() override; 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_LinkAccount_AsyncFunction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "eos_connect_types.h" 7 | #include "eos_connect.h" 8 | #include "OnlineSubsystem.h" 9 | #include "OnlineSubsystemEOS.h" 10 | #include "Kismet/BlueprintAsyncActionBase.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_LinkAccount_AsyncFunction.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnLinkAccountCallback, TEnumAsByte, Result); 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_LinkAccount_AsyncFunction : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | Connect | Link Account") 23 | static UEIK_LinkAccount_AsyncFunction* LinkAccount(const FString& LocalProductUserId, const FEIK_ContinuanceToken& ContinuanceToken); 24 | 25 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit") 26 | FOnLinkAccountCallback OnCallback; 27 | 28 | private: 29 | FString Var_LocalProductUserId; 30 | FEIK_ContinuanceToken Var_ContinuanceToken; 31 | static void EOS_CALL OnLinkAccountCallback(const EOS_Connect_LinkAccountCallbackInfo* Data); 32 | virtual void Activate() override; 33 | }; 34 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | 4 | #include "EIK_SharedFunctionFile.h" 5 | 6 | FString UEIK_SharedFunctionFile::ConvertOculusUserIdAndNonceToEosFormat(FString OculusUserId, FString OculusNonce) 7 | { 8 | return OculusUserId + TEXT("|") + OculusNonce; 9 | } 10 | DEFINE_LOG_CATEGORY(LogEIK); 11 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/EcomInterface/EIK_Ecom_QueryOffers.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_Ecom_QueryOffers.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_Ecom_QueryOffersCallback, FEIK_EpicAccountId, LocalUserId, const TEnumAsByte&, ResultCode); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Ecom_QueryOffers : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Query for a list of catalog offers defined with Epic Online Services. This data will be cached for a limited time and retrieved again from the backend when necessary. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Ecom Interface", DisplayName = "EOS_Ecom_QueryOffers") 21 | static UEIK_Ecom_QueryOffers* EIK_Ecom_QueryOffers(FEIK_EpicAccountId LocalUserId, FString OverrideCatalogNamespace); 22 | 23 | UPROPERTY(BlueprintAssignable) 24 | FEIK_Ecom_QueryOffersCallback OnCallback; 25 | private: 26 | FEIK_EpicAccountId Var_LocalUserId; 27 | FString Var_OverrideCatalogNamespace; 28 | static void EOS_CALL OnQueryOffersCallback(const EOS_Ecom_QueryOffersCallbackInfo* Data); 29 | virtual void Activate() override; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/EcomInterface/EIK_Ecom_RedeemEntitlements.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_Ecom_RedeemEntitlements.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FEIK_Ecom_RedeemEntitlementsCallback, const FEIK_EpicAccountId&, LocalUserId, const TEnumAsByte, ResultCode, int32, RedeemedEntitlementIdsCount); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_Ecom_RedeemEntitlements : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Requests that the provided entitlement be marked redeemed. This will cause that entitlement to no longer be returned from QueryEntitlements unless the include redeemed request flag is set true. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Ecom Interface", DisplayName="EOS_Ecom_RedeemEntitlements") 21 | static UEIK_Ecom_RedeemEntitlements* EIK_Ecom_RedeemEntitlements(const FEIK_EpicAccountId& LocalUserId, const TArray& EntitlementIds); 22 | 23 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | SDK Functions | Ecom Interface") 24 | FEIK_Ecom_RedeemEntitlementsCallback OnCallback; 25 | private: 26 | static void EOS_CALL OnRedeemEntitlementsCallback(const EOS_Ecom_RedeemEntitlementsCallbackInfo* Data); 27 | virtual void Activate() override; 28 | FEIK_EpicAccountId Var_LocalUserId; 29 | TArray Var_EntitlementIds; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/FriendsInterface/EIK_Friends_QueryFriends.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | THIRD_PARTY_INCLUDES_START 8 | #include "eos_friends.h" 9 | #include "eos_friends_types.h" 10 | THIRD_PARTY_INCLUDES_END 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Friends_QueryFriends.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_Friends_QueryFriendsCallback, const TEnumAsByte&, Result, const FEIK_EpicAccountId&, LocalUserId); 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_Friends_QueryFriends : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | /* 23 | *Starts an asynchronous task that reads the user's friends list and blocklist from the backend service, caching it for future use. 24 | 25 | When the Social Overlay is enabled then this will be called automatically. The Social Overlay is enabled by default (see EOS_PF_DISABLE_SOCIAL_OVERLAY). 26 | */ 27 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Friends Interface", DisplayName="EOS_Friends_QueryFriends") 28 | static UEIK_Friends_QueryFriends* EIK_Friends_QueryFriends(FEIK_EpicAccountId LocalUserId); 29 | 30 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Friends Interface") 31 | FEIK_Friends_QueryFriendsCallback OnCallback; 32 | 33 | private: 34 | static void EOS_CALL OnQueryFriendsCallback(const EOS_Friends_QueryFriendsCallbackInfo* Data); 35 | virtual void Activate() override; 36 | FEIK_EpicAccountId Var_LocalUserId; 37 | }; 38 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/FriendsInterface/EIK_Friends_RejectInvite.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | THIRD_PARTY_INCLUDES_START 8 | #include "eos_friends.h" 9 | #include "eos_friends_types.h" 10 | THIRD_PARTY_INCLUDES_END 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Friends_RejectInvite.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FEIK_Friends_RejectInviteCallback, const TEnumAsByte&, Result, const FEIK_EpicAccountId&, LocalUserId, const FEIK_EpicAccountId&, TargetUserId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Friends_RejectInvite : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | //Starts an asynchronous task that rejects a friend invitation from another user. The completion delegate is executed after the backend response has been received. 24 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Friends Interface", DisplayName="EOS_Friends_RejectInvite") 25 | static UEIK_Friends_RejectInvite* EIK_Friends_RejectInvite(FEIK_EpicAccountId LocalUserId, FEIK_EpicAccountId TargetUserId); 26 | 27 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | Friends Interface") 28 | FEIK_Friends_RejectInviteCallback OnCallback; 29 | 30 | private: 31 | static void EOS_CALL OnRejectInviteCallback(const EOS_Friends_RejectInviteCallbackInfo* Data); 32 | virtual void Activate() override; 33 | FEIK_EpicAccountId Var_LocalUserId; 34 | FEIK_EpicAccountId Var_TargetUserId; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_LobbySearch_Find.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_LobbySearch_Find.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIKLobbySearchFind, const TEnumAsByte&, ResultCode); 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_LobbySearch_Find : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | //Find lobbies matching the search criteria setup via this lobby search handle. When the operation completes, this handle will have the search results that can be parsed 23 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_LobbySearch_Find") 24 | static UEIK_LobbySearch_Find* EIK_LobbySearch_Find(FEIK_HLobbySearch Handle, FEIK_ProductUserId LocalUserId); 25 | 26 | UPROPERTY(BlueprintAssignable) 27 | FEIKLobbySearchFind OnCallback; 28 | 29 | private: 30 | virtual void Activate() override; 31 | static void EOS_CALL OnFindComplete(const EOS_LobbySearch_FindCallbackInfo* Data); 32 | FEIK_ProductUserId Var_LocalUserId; 33 | FEIK_HLobbySearch Var_Handle; 34 | }; 35 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_DestroyLobby.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_Lobby_DestroyLobby.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_Lobby_DestroyLobbyDelegate, const TEnumAsByte&, Result, const FEIK_LobbyId&, LobbyId); 11 | UCLASS() 12 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_DestroyLobby : public UBlueprintAsyncActionBase 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | 18 | /**Destroy a lobby given a lobby ID */ 19 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_DestroyLobby") 20 | static UEIK_Lobby_DestroyLobby* EIK_Lobby_DestroyLobby(FEIK_ProductUserId LocalUserId, FEIK_LobbyId LobbyId); 21 | 22 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface") 23 | FEIK_Lobby_DestroyLobbyDelegate OnCallback; 24 | 25 | private: 26 | static void EOS_CALL OnDestroyLobbyComplete(const EOS_Lobby_DestroyLobbyCallbackInfo* Data); 27 | virtual void Activate() override; 28 | FEIK_ProductUserId Var_LocalUserId; 29 | FEIK_LobbyId Var_LobbyId; 30 | }; 31 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_KickMember.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_KickMember.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbyKickMember, const TEnumAsByte&, ResultCode, const FEIK_LobbyId&, LobbyId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_KickMember : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | //Kick an existing member from the lobby 23 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_KickMember") 24 | static UEIK_Lobby_KickMember* EIK_Lobby_KickMember(FEIK_LobbyId LobbyId, FEIK_ProductUserId ProductUserId, FEIK_ProductUserId TargetUserId); 25 | 26 | UPROPERTY(BlueprintAssignable) 27 | FEIKLobbyKickMember OnCallback; 28 | 29 | private: 30 | static void EOS_CALL OnKickMemberComplete(const EOS_Lobby_KickMemberCallbackInfo* Data); 31 | virtual void Activate() override; 32 | FEIK_LobbyId Var_LobbyId; 33 | FEIK_ProductUserId Var_ProductUserId; 34 | FEIK_ProductUserId Var_TargetUserId; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_LeaveLobby.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_LeaveLobby.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbyLeaveLobby, const TEnumAsByte&, ResultCode, const FEIK_LobbyId&, LobbyId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_LeaveLobby : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | //Leave a lobby given a lobby ID If the lobby you are leaving had an RTC Room enabled, leaving the lobby will also automatically leave the RTC room. 24 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_LeaveLobby") 25 | static UEIK_Lobby_LeaveLobby* EIK_Lobby_LeaveLobby(FEIK_ProductUserId LocalUserId, FEIK_LobbyId LobbyId); 26 | 27 | UPROPERTY(BlueprintAssignable) 28 | FEIKLobbyLeaveLobby OnCallback; 29 | 30 | private: 31 | static void EOS_CALL OnLeaveLobbyComplete(const EOS_Lobby_LeaveLobbyCallbackInfo* Data); 32 | virtual void Activate() override; 33 | FEIK_ProductUserId Var_LocalUserId; 34 | FEIK_LobbyId Var_LobbyId; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_PromoteMember.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_PromoteMember.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbyPromoteMember, const TEnumAsByte&, ResultCode, const FEIK_LobbyId&, LobbyId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_PromoteMember : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | //Promote an existing member of the lobby to owner, allowing them to make lobby data modifications 23 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_PromoteMember") 24 | static UEIK_Lobby_PromoteMember* EIK_Lobby_PromoteMember(FEIK_LobbyId LobbyId, FEIK_ProductUserId ProductUserId, FEIK_ProductUserId TargetUserId); 25 | 26 | UPROPERTY(BlueprintAssignable) 27 | FEIKLobbyPromoteMember OnCallback; 28 | 29 | private: 30 | static void EOS_CALL OnPromoteMemberComplete(const EOS_Lobby_PromoteMemberCallbackInfo* Data); 31 | virtual void Activate() override; 32 | FEIK_LobbyId Var_LobbyId; 33 | FEIK_ProductUserId Var_ProductUserId; 34 | FEIK_ProductUserId Var_TargetUserId; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_QueryInvites.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_QueryInvites.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbyQueryInvites, const TEnumAsByte&, ResultCode, const FEIK_LobbyId&, LobbyId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_QueryInvites : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | //Retrieve all existing invites for a single user 24 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_QueryInvites") 25 | static UEIK_Lobby_QueryInvites* EIK_Lobby_QueryInvites(FEIK_ProductUserId LocalUserId); 26 | 27 | UPROPERTY(BlueprintAssignable) 28 | FEIKLobbyQueryInvites OnCallback; 29 | 30 | private: 31 | static void EOS_CALL OnQueryInvitesComplete(const EOS_Lobby_QueryInvitesCallbackInfo* Data); 32 | virtual void Activate() override; 33 | FEIK_ProductUserId Var_LocalUserId; 34 | }; 35 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_RejectInvite.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_RejectInvite.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbyRejectInvite, const TEnumAsByte&, ResultCode, const FString&, InviteId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_RejectInvite : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | //Reject an invite from another user. 24 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_RejectInvite") 25 | static UEIK_Lobby_RejectInvite* EIK_Lobby_RejectInvite(FEIK_ProductUserId LocalUserId, FString InviteId); 26 | 27 | UPROPERTY(BlueprintAssignable) 28 | FEIKLobbyRejectInvite OnCallback; 29 | 30 | private: 31 | static void EOS_CALL OnRejectInviteComplete(const EOS_Lobby_RejectInviteCallbackInfo* Data); 32 | virtual void Activate() override; 33 | FEIK_ProductUserId Var_LocalUserId; 34 | FString Var_InviteId; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_SendInvite.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_SendInvite.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbySendInvite, const TEnumAsByte&, ResultCode, const FEIK_LobbyId&, LobbyId); 15 | 16 | UCLASS() 17 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_SendInvite : public UBlueprintAsyncActionBase 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | //Send an invite to another user. User must be a member of the lobby or else the call will fail 24 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_SendInvite") 25 | static UEIK_Lobby_SendInvite* EIK_Lobby_SendInvite(FEIK_ProductUserId LocalUserId, FEIK_LobbyId LobbyId, FEIK_ProductUserId TargetUserId); 26 | 27 | UPROPERTY(BlueprintAssignable) 28 | FEIKLobbySendInvite OnCallback; 29 | private: 30 | virtual void Activate() override; 31 | static void EOS_CALL OnSendInviteComplete(const EOS_Lobby_SendInviteCallbackInfo* Data); 32 | FEIK_ProductUserId Var_LocalUserId; 33 | FEIK_LobbyId Var_LobbyId; 34 | FEIK_ProductUserId Var_TargetUserId; 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/LobbyInterface/EIK_Lobby_UpdateLobby.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSessionEOS.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | #include "EIK_Lobby_UpdateLobby.generated.h" 13 | 14 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIKLobbyUpdateLobby, const TEnumAsByte&, ResultCode, const FEIK_LobbyId&, LobbyId); 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_Lobby_UpdateLobby : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | //Update a lobby given a lobby modification handle created by EOS_Lobby_UpdateLobbyModification 23 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Lobby Interface", DisplayName="EOS_Lobby_UpdateLobby") 24 | static UEIK_Lobby_UpdateLobby* EIK_Lobby_UpdateLobby(FEIK_HLobbyModification LobbyModificationHandle); 25 | 26 | UPROPERTY(BlueprintAssignable) 27 | FEIKLobbyUpdateLobby OnCallback; 28 | private: 29 | virtual void Activate() override; 30 | static void EOS_CALL OnUpdateLobbyComplete(const EOS_Lobby_UpdateLobbyCallbackInfo* Data); 31 | FEIK_HLobbyModification Var_LobbyModificationHandle; 32 | }; 33 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/P2PInterface/EIK_P2P_QueryNATType.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "EIK_P2P_QueryNATType.generated.h" 9 | 10 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_P2P_QueryNATTypeDelegate, const TEnumAsByte&, Result, const TEnumAsByte&, NATType); 11 | 12 | UCLASS() 13 | class ONLINESUBSYSTEMEIK_API UEIK_P2P_QueryNATType : public UBlueprintAsyncActionBase 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | 19 | //Query the current NAT-type of our connection. 20 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | P2P Interface", DisplayName="EOS_P2P_QueryNATType") 21 | static UEIK_P2P_QueryNATType* EIK_P2P_QueryNATType(); 22 | 23 | UPROPERTY(BlueprintAssignable) 24 | FEIK_P2P_QueryNATTypeDelegate OnCallback; 25 | 26 | private: 27 | virtual void Activate() override; 28 | static void EOS_CALL EOS_P2P_QueryNATType_Callback(const EOS_P2P_OnQueryNATTypeCompleteInfo* Data); 29 | 30 | }; 31 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/PlayerDataStorageInterface/EIK_PlayerDataStorage_DeleteFile.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Async/Async.h" 10 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 11 | #include "EIK_PlayerDataStorage_DeleteFile.generated.h" 12 | 13 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_PlayerDataStorage_DeleteFileDelegate, const TEnumAsByte&, Result, const FEIK_ProductUserId&, LocalUserId); 14 | 15 | UCLASS() 16 | class ONLINESUBSYSTEMEIK_API UEIK_PlayerDataStorage_DeleteFile : public UBlueprintAsyncActionBase 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | //Deletes an existing file in the cloud. If successful, the file's data will be removed from our local cache. 23 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Player Data Storage Interface", DisplayName="EOS_PlayerDataStorage_DeleteFile") 24 | static UEIK_PlayerDataStorage_DeleteFile* EIK_PlayerDataStorage_DeleteFile(FEIK_ProductUserId LocalUserId, FString Filename); 25 | 26 | UPROPERTY(BlueprintAssignable) 27 | FEIK_PlayerDataStorage_DeleteFileDelegate OnCallback; 28 | 29 | private: 30 | virtual void Activate() override; 31 | static void EOS_CALL EOS_PlayerDataStorage_OnDeleteFileComplete(const EOS_PlayerDataStorage_DeleteFileCallbackInfo* Data); 32 | FEIK_ProductUserId Var_LocalUserId; 33 | FString Var_Filename; 34 | }; 35 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/PresenceInterface/EIK_Presence_QueryPresence.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "eos_presence.h" 9 | #include "OnlineSubsystemEOS.h" 10 | #include "EIK_Presence_QueryPresence.generated.h" 11 | 12 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FEIK_Presence_QueryPresenceComplete, const FEIK_EpicAccountId&, LocalUserId, const FEIK_EpicAccountId&, TargetUserId, const TEnumAsByte&, Result); 13 | 14 | UCLASS() 15 | class ONLINESUBSYSTEMEIK_API UEIK_Presence_QueryPresence : public UBlueprintAsyncActionBase 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | 21 | //Query a user's presence. This must complete successfully before CopyPresence will have valid results. If HasPresence returns true for a remote user, this does not need to be called. 22 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Presence Interface", DisplayName="EOS_Presence_QueryPresence") 23 | static UEIK_Presence_QueryPresence* EIK_Presence_QueryPresence(FEIK_EpicAccountId LocalUserId, FEIK_EpicAccountId TargetUserId); 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FEIK_Presence_QueryPresenceComplete OnCallback; 27 | 28 | private: 29 | virtual void Activate() override; 30 | static void EOS_CALL Internal_OnQueryPresenceComplete(const EOS_Presence_QueryPresenceCallbackInfo* Data); 31 | FEIK_EpicAccountId Var_LocalUserId; 32 | FEIK_EpicAccountId Var_TargetUserId; 33 | }; 34 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/PresenceInterface/EIK_Presence_SetPresence.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 8 | #include "eos_presence.h" 9 | #include "OnlineSubsystemEOS.h" 10 | #include "EIK_Presence_SetPresence.generated.h" 11 | 12 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_Presence_SetPresenceComplete, const FEIK_EpicAccountId&, LocalUserId, const TEnumAsByte&, Result); 13 | 14 | UCLASS() 15 | class ONLINESUBSYSTEMEIK_API UEIK_Presence_SetPresence : public UBlueprintAsyncActionBase 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | 21 | //Sets your new presence with the data applied to a PresenceModificationHandle. The PresenceModificationHandle can be released safely after calling this function. 22 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Presence Interface", DisplayName="EOS_Presence_SetPresence") 23 | static UEIK_Presence_SetPresence* EIK_Presence_SetPresence(FEIK_EpicAccountId LocalUserId, FEIK_HPresenceModification PresenceModificationHandle); 24 | 25 | UPROPERTY(BlueprintAssignable) 26 | FEIK_Presence_SetPresenceComplete OnCallback; 27 | 28 | private: 29 | virtual void Activate() override; 30 | static void EOS_CALL Internal_OnSetPresenceComplete(const EOS_Presence_SetPresenceCallbackInfo* Data); 31 | FEIK_EpicAccountId Var_LocalUserId; 32 | FEIK_HPresenceModification Var_PresenceModificationHandle; 33 | }; 34 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/SessionsInterface/EIK_Sessions_DestroySession.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 10 | THIRD_PARTY_INCLUDES_START 11 | #include "eos_sessions.h" 12 | #include "eos_sessions_types.h" 13 | THIRD_PARTY_INCLUDES_END 14 | #include "EIK_Sessions_DestroySession.generated.h" 15 | 16 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnDestroySessionCallback, const TEnumAsByte&, ResultCode); 17 | 18 | UCLASS() 19 | class ONLINESUBSYSTEMEIK_API UEIK_Sessions_DestroySession : public UBlueprintAsyncActionBase 20 | { 21 | GENERATED_BODY() 22 | 23 | public: 24 | 25 | //Destroy a session given a session name 26 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface", DisplayName="EOS_Sessions_DestroySession") 27 | static UEIK_Sessions_DestroySession* EIK_Sessions_DestroySession(FString SessionName); 28 | 29 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit") 30 | FEIK_OnDestroySessionCallback OnCallback; 31 | private: 32 | FString Var_SessionName; 33 | virtual void Activate() override; 34 | static void EOS_CALL OnDestroySessionCallback(const EOS_Sessions_DestroySessionCallbackInfo* Data); 35 | }; 36 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/SessionsInterface/EIK_Sessions_EndSession.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 10 | THIRD_PARTY_INCLUDES_START 11 | #include "eos_sessions.h" 12 | #include "eos_sessions_types.h" 13 | THIRD_PARTY_INCLUDES_END 14 | #include "EIK_Sessions_EndSession.generated.h" 15 | 16 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnEndSessionCallback, const TEnumAsByte&, ResultCode); 17 | 18 | UCLASS() 19 | class ONLINESUBSYSTEMEIK_API UEIK_Sessions_EndSession : public UBlueprintAsyncActionBase 20 | { 21 | GENERATED_BODY() 22 | 23 | public: 24 | //Mark a session as ended, making it unavailable to find if "join in progress" was disabled. The session may be started again if desired 25 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface", DisplayName="EOS_Sessions_EndSession") 26 | static UEIK_Sessions_EndSession* EIK_Sessions_EndSession(FString SessionName); 27 | 28 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface") 29 | FEIK_OnEndSessionCallback OnCallback; 30 | 31 | private: 32 | FString Var_SessionName; 33 | virtual void Activate() override; 34 | static void EOS_CALL OnEndSessionCallback(const EOS_Sessions_EndSessionCallbackInfo* Data); 35 | 36 | }; 37 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/SessionsInterface/EIK_Sessions_QueryInvites.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "Runtime/Launch/Resources/Version.h" 10 | #include "Async/TaskGraphInterfaces.h" 11 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 12 | THIRD_PARTY_INCLUDES_START 13 | #include "eos_sessions.h" 14 | #include "eos_sessions_types.h" 15 | THIRD_PARTY_INCLUDES_END 16 | #include "EIK_Sessions_QueryInvites.generated.h" 17 | 18 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEIK_OnQueryInvitesCallback, const TEnumAsByte&, ResultCode, const FEIK_ProductUserId&, LocalUserId); 19 | 20 | UCLASS() 21 | class ONLINESUBSYSTEMEIK_API UEIK_Sessions_QueryInvites : public UBlueprintAsyncActionBase 22 | { 23 | GENERATED_BODY() 24 | 25 | public: 26 | //Retrieve all existing invites for a single user 27 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface", DisplayName="EOS_Sessions_QueryInvites") 28 | static UEIK_Sessions_QueryInvites* EIK_Sessions_QueryInvites(FEIK_ProductUserId LocalUserId); 29 | 30 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface") 31 | FEIK_OnQueryInvitesCallback OnCallback; 32 | 33 | private: 34 | FEIK_ProductUserId Var_LocalUserId; 35 | virtual void Activate() override; 36 | static void EOS_CALL OnQueryInvitesCallback(const EOS_Sessions_QueryInvitesCallbackInfo* Data); 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/SessionsInterface/EIK_Sessions_RejectInvite.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 10 | THIRD_PARTY_INCLUDES_START 11 | #include "eos_sessions.h" 12 | #include "eos_sessions_types.h" 13 | THIRD_PARTY_INCLUDES_END 14 | #include "EIK_Sessions_RejectInvite.generated.h" 15 | 16 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnRejectInviteCallback, const TEnumAsByte&, ResultCode); 17 | 18 | UCLASS() 19 | class ONLINESUBSYSTEMEIK_API UEIK_Sessions_RejectInvite : public UBlueprintAsyncActionBase 20 | { 21 | GENERATED_BODY() 22 | 23 | public: 24 | //Reject an invite from another player. 25 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface", DisplayName="EOS_Sessions_RejectInvite") 26 | static UEIK_Sessions_RejectInvite* EIK_Sessions_RejectInvite(FString InviteId, FEIK_ProductUserId LocalUserId); 27 | 28 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface") 29 | FEIK_OnRejectInviteCallback OnCallback; 30 | 31 | private: 32 | FString Var_InviteId; 33 | FEIK_ProductUserId Var_LocalUserId; 34 | virtual void Activate() override; 35 | static void EOS_CALL OnRejectInviteCallback(const EOS_Sessions_RejectInviteCallbackInfo* Data); 36 | }; 37 | -------------------------------------------------------------------------------- /Source/OnlineSubsystemEIK/SdkFunctions/SessionsInterface/EIK_Sessions_StartSession.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Betide Studio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Kismet/BlueprintAsyncActionBase.h" 7 | #include "OnlineSubsystemEIK/SdkFunctions/ConnectInterface/EIK_ConnectSubsystem.h" 8 | #include "OnlineSubsystemEOS.h" 9 | #include "OnlineSubsystemEIK/SdkFunctions/EIK_SharedFunctionFile.h" 10 | THIRD_PARTY_INCLUDES_START 11 | #include "eos_sessions.h" 12 | #include "eos_sessions_types.h" 13 | THIRD_PARTY_INCLUDES_END 14 | #include "EIK_Sessions_StartSession.generated.h" 15 | 16 | DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEIK_OnStartSessionCallback, const TEnumAsByte&, ResultCode); 17 | UCLASS() 18 | class ONLINESUBSYSTEMEIK_API UEIK_Sessions_StartSession : public UBlueprintAsyncActionBase 19 | { 20 | GENERATED_BODY() 21 | 22 | public: 23 | 24 | //Mark a session as started, making it unable to find if session properties indicate "join in progress" is not available 25 | UFUNCTION(BlueprintCallable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface", DisplayName="EOS_Sessions_StartSession") 26 | static UEIK_Sessions_StartSession* EIK_Sessions_StartSession(FString SessionName); 27 | 28 | UPROPERTY(BlueprintAssignable, Category = "EOS Integration Kit | SDK Functions | Sessions Interface") 29 | FEIK_OnStartSessionCallback OnCallback; 30 | 31 | private: 32 | FString Var_SessionName; 33 | virtual void Activate() override; 34 | static void EOS_CALL OnStartSessionCallback(const EOS_Sessions_StartSessionCallbackInfo* Data); 35 | 36 | 37 | }; 38 | -------------------------------------------------------------------------------- /Source/SocketSubsystemEIK/Private/NetConnectionEIK.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "IpConnection.h" 7 | #include "NetConnectionEIK.generated.h" 8 | 9 | UCLASS(Transient, Config=Engine) 10 | class SOCKETSUBSYSTEMEIK_API UNetConnectionEIK 11 | : public UIpConnection 12 | { 13 | GENERATED_BODY() 14 | 15 | public: 16 | explicit UNetConnectionEIK(const FObjectInitializer& ObjectInitializer); 17 | 18 | //~ Begin NetConnection Interface 19 | virtual void InitLocalConnection(UNetDriver* InDriver, FSocket* InSocket, const FURL& InURL, EConnectionState InState, int32 InMaxPacket = 0, int32 InPacketOverhead = 0) override; 20 | virtual void InitRemoteConnection(UNetDriver* InDriver, FSocket* InSocket, const FURL& InURL, const FInternetAddr& InRemoteAddr, EConnectionState InState, int32 InMaxPacket = 0, int32 InPacketOverhead = 0) override; 21 | virtual void CleanUp() override; 22 | //~ End NetConnection Interface 23 | 24 | void DestroyEOSConnection(); 25 | 26 | public: 27 | bool bIsPassthrough; 28 | 29 | protected: 30 | bool bHasP2PSession; 31 | }; 32 | -------------------------------------------------------------------------------- /Source/SocketSubsystemEIK/Private/SocketSubsystemEIKModule.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "SocketSubsystemEIKModule.h" 4 | 5 | #include "Features/IModularFeatures.h" 6 | #include "Modules/ModuleManager.h" 7 | 8 | IMPLEMENT_MODULE(FSocketSubsystemEIKModule, SocketSubsystemEIK); 9 | 10 | void FSocketSubsystemEIKModule::StartupModule() 11 | { 12 | 13 | } 14 | 15 | void FSocketSubsystemEIKModule::ShutdownModule() 16 | { 17 | 18 | } -------------------------------------------------------------------------------- /Source/SocketSubsystemEIK/Private/SocketSubsystemEIKModule.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Modules/ModuleInterface.h" 6 | 7 | class FSocketSubsystemEIKModule: public IModuleInterface 8 | { 9 | public: 10 | FSocketSubsystemEIKModule() = default; 11 | ~FSocketSubsystemEIKModule() = default; 12 | 13 | private: 14 | // ~Begin IModuleInterface 15 | virtual void StartupModule() override; 16 | virtual void ShutdownModule() override; 17 | // ~End IModuleInterface 18 | }; -------------------------------------------------------------------------------- /Source/SocketSubsystemEIK/Public/NetDriverEIKBase.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "IpNetDriver.h" 7 | #include "OnlineBeacon.h" 8 | #include "NetDriverEIKBase.generated.h" 9 | 10 | class ISocketSubsystem; 11 | 12 | UCLASS(Transient, Config=Engine) 13 | class SOCKETSUBSYSTEMEIK_API UNetDriverEIKBase 14 | : public UIpNetDriver 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | //~ Begin UNetDriver Interface 20 | virtual bool IsAvailable() const override; 21 | virtual bool InitBase(bool bInitAsClient, FNetworkNotify* InNotify, const FURL& URL, bool bReuseAddressAndPort, FString& Error) override; 22 | virtual bool InitConnect(FNetworkNotify* InNotify, const FURL& ConnectURL, FString& Error) override; 23 | virtual bool InitListen(FNetworkNotify* InNotify, FURL& LocalURL, bool bReuseAddressAndPort, FString& Error) override; 24 | virtual ISocketSubsystem* GetSocketSubsystem() override; 25 | virtual void Shutdown() override; 26 | virtual int GetClientPort() override; 27 | bool IsBeaconDriver() const; 28 | //~ End UNetDriver Interface 29 | 30 | UWorld* FindWorld() const; 31 | 32 | public: 33 | UPROPERTY() 34 | bool bIsPassthrough; 35 | 36 | UPROPERTY(Config) 37 | bool bIsUsingP2PSockets; 38 | }; 39 | -------------------------------------------------------------------------------- /Source/SocketSubsystemEIK/Public/SocketSubsystemEIKUtils.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #if WITH_EOS_SDK 8 | #if defined(EOS_PLATFORM_BASE_FILE_NAME) 9 | #include EOS_PLATFORM_BASE_FILE_NAME 10 | #endif 11 | 12 | #include "eos_common.h" 13 | #endif 14 | 15 | class SOCKETSUBSYSTEMEIK_API ISocketSubsystemEOSUtils 16 | { 17 | public: 18 | virtual ~ISocketSubsystemEOSUtils() {}; 19 | 20 | #if WITH_EOS_SDK 21 | virtual EOS_ProductUserId GetLocalUserId() = 0; 22 | #endif 23 | virtual FString GetSessionId() = 0; 24 | 25 | virtual FName GetSubsystemInstanceName() = 0; 26 | }; 27 | typedef TSharedPtr ISocketSubsystemEOSUtilsPtr; 28 | -------------------------------------------------------------------------------- /Source/SocketSubsystemEIK/SocketSubsystemEIK.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using System; 4 | using System.IO; 5 | using UnrealBuildTool; 6 | 7 | public class SocketSubsystemEIK : ModuleRules 8 | { 9 | public SocketSubsystemEIK(ReadOnlyTargetRules Target) : base(Target) 10 | { 11 | Type = ModuleType.CPlusPlus; 12 | PrivatePCHHeaderFile = "Public/InternetAddrEIK.h"; 13 | PublicDependencyModuleNames.AddRange( 14 | new string[] 15 | { 16 | "Core", 17 | "Engine", 18 | "EIKShared", 19 | "NetCore", 20 | "Sockets", 21 | "OnlineSubsystemUtils" 22 | } 23 | ); 24 | 25 | PrivateDependencyModuleNames.AddRange( 26 | new string[] 27 | { 28 | "CoreUObject", 29 | "EIKSDK" 30 | } 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Source/ThirdParty/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/.DS_Store -------------------------------------------------------------------------------- /Source/ThirdParty/EIKSDK/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/EIKSDK/.DS_Store -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/Android/libs/googlesignin.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/Android/libs/googlesignin.aar -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/GoogleOneTapLibrary.tps: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Notes: This is a sample module and not actually third party. 5 | 6 | 7 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/AppAuth.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/AppAuth.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GTMAppAuth.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GTMAppAuth.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GTMSessionFetcher.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GTMSessionFetcher.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GoogleSignIn.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GoogleSignIn.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GoogleUtilities.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/GoogleUtilities.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/RecaptchaInterop.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/RecaptchaInterop.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/nanopb.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Frameworks/nanopb.embeddedframework.zip -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/Info.plist -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/Roboto-Bold.ttf -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/ar.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "تسجيل الدخول"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "تسجيل الدخول باستخدام Google"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "موافق"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "إلغاء"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "إعدادات"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "يتعذَّر تسجيل الدخول إلى الحساب"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "يطلب منك المشرف تعيين رمز مرور على هذا الجهاز للدخول إلى هذا الحساب. يُرجى تعيين رمز المرور وإعادة المحاولة."; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "لا يتوافق هذا الجهاز مع سياسة الأمان التي أعدها مشرفك"; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "هل تريد الربط بتطبيق Device Policy؟"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "يجب الربط مع تطبيق Device Policy قبل تسجيل الدخول لحماية بيانات مؤسستك."; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "ربط"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/google.png -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/google@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/google@2x.png -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/google@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/google@3x.png -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/he.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "היכנס"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "היכנס באמצעות Google"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "אישור"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "ביטול"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "הגדרות"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "לא ניתן להיכנס לחשבון"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "מנהל המערכת דורש ממך להגדיר קוד סיסמה במכשיר זה כדי לגשת לחשבון זה. יש להגדיר קוד סיסמה ולנסות שוב."; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "המכשיר אינו פועל בהתאם למדיניות האבטחה שנקבעה על-ידי מנהל המערכת."; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "האם להתחבר באמצעות האפליקציית Device Policy?"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "על מנת להגן על נתוני הארגון שלך, יש להתחבר באמצעות אפליקציית Device Policy לפני הכניסה לחשבון."; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "התחברות"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/ja.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "ログイン"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "Googleでログイン"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "OK"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "キャンセル"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "設定"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "アカウントにログインできません"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "このアカウントにアクセスするには、この端末でパスコードを設定する必要があります。パスコードを設定してから、もう一度お試しください。"; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "この端末は、管理者が設定したセキュリティ ポリシーに準拠していません。"; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "Device Policy アプリと接続しますか?"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "組織のデータを保護するために、ログインする前に Device Policy アプリと接続する必要があります。"; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "接続"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/ko.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "로그인"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "Google 계정으로 로그인"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "확인"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "취소"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "설정"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "계정에 로그인할 수 없음"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "관리자의 설정에 따라 이 계정에 액세스하려면 사용 중인 기기에 비밀번호를 설정해야 합니다. 비밀번호를 설정한 후 다시 시도해 주세요."; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "관리자가 설정한 보안 정책을 준수하지 않는 기기입니다."; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "Device Policy 앱과 연결하시겠습니까?"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "조직의 데이터를 보호하려면 로그인하기 전에 Device Policy 앱과 연결해야 합니다."; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "연결"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/th.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "ลงชื่อเข้าใช้"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "ลงชื่อเข้าใช้ด้วย Google"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "ตกลง"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "ยกเลิก"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "การตั้งค่า"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "ลงชื่อเข้าใช้บัญชีไม่ได้"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "ผู้ดูแลระบบกำหนดให้คุณตั้งรหัสผ่านในอุปกรณ์นี้เพื่อเข้าถึงบัญชีนี้ โปรดตั้งรหัสผ่าน แล้วลองอีกครั้ง"; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "อุปกรณ์ไม่ตรงตามนโยบายความปลอดภัยที่กำหนดโดยผู้ดูแลระบบของคุณ"; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "เชื่อมต่อแอป Device Policy ไหม"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "เพื่อปกป้องข้อมูลขององค์กร คุณต้องเชื่อมต่อแอป Device Policy ก่อนลงชื่อเข้าสู่ระบบ"; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "เชื่อมต่อ"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/zh_CN.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "登录"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "使用 Google 帐号登录"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "确定"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "取消"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "设置"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "无法登录帐号"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "您的管理员要求您必须先在此设备上设置密码,然后才能访问此帐号。请设置密码并重试。"; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "该设备不符合管理员设置的安全政策。"; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "要关联 Device Policy 应用吗?"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "要保护您组织的数据,您必须在登录前关联 Device Policy 应用。"; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "关联"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GoogleOneTapLibrary/IOS/Resources/GoogleSignIn.bundle/zh_TW.lproj/GoogleSignIn.strings: -------------------------------------------------------------------------------- 1 | /* Sign-in button text */ 2 | "Sign in" = "登入"; 3 | 4 | /* Long form sign-in button text */ 5 | "Sign in with Google" = "登入 Google 帳戶"; 6 | 7 | /* The text for the button for user to acknowledge and dismiss a dialog. */ 8 | "OK" = "確定"; 9 | 10 | /* The text for the button for user to dismiss a dialog without taking any action. */ 11 | "Cancel" = "取消"; 12 | 13 | /* The name of the iOS native "Settings" app. */ 14 | "SettingsAppName" = "設定"; 15 | 16 | /* The title for the error dialog for unable to sign in because of EMM policy. */ 17 | "EmmErrorTitle" = "無法登入帳戶"; 18 | 19 | /* The text in the error dialog asking user to set up a passcode for the device due to EMM policy. */ 20 | "EmmPasscodeRequired" = "管理員要求您必須為這個裝置設定通行碼,才能存取這個帳戶。請設定通行碼,然後再試一次。"; 21 | 22 | /* The text in the error dialog informing user that EMM policy prevented sign-in on the device. */ 23 | "EmmGeneralError" = "這部裝置不符合您的管理員所設定的安全性政策規定。"; 24 | 25 | /* The title in the error dialog informing user that connecting with Device Policy app is required. */ 26 | "EmmConnectTitle" = "要連結 Device Policy 應用程式嗎?"; 27 | 28 | /* The text in the error dialog informing user that connecting with Device Policy app is required. */ 29 | "EmmConnectText" = "為了保護貴機構的資料,您必須在登入前連結 Device Policy 應用程式。"; 30 | 31 | /* The action button label in the error dialog informing user that connecting with Device Policy app is required. */ 32 | "EmmConnectLabel" = "連結"; 33 | -------------------------------------------------------------------------------- /Source/ThirdParty/GooglePlayGamesLibrary/Android/libs/gpgs.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/betidestudio/EOSIntegrationKit/89243127bd156ac00d57f86c3d912dd6a62dadcc/Source/ThirdParty/GooglePlayGamesLibrary/Android/libs/gpgs.aar --------------------------------------------------------------------------------