diff --git a/examples/unrealstatus/Content/ShowTheUILevel.umap b/examples/unrealstatus/Content/ShowTheUILevel.umap index 7b68148..52c2eda 100644 Binary files a/examples/unrealstatus/Content/ShowTheUILevel.umap and b/examples/unrealstatus/Content/ShowTheUILevel.umap differ diff --git a/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Private/DiscordRpcBlueprint.cpp b/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Private/DiscordRpcBlueprint.cpp index fc6b21b..5a9d4d7 100644 --- a/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Private/DiscordRpcBlueprint.cpp +++ b/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Private/DiscordRpcBlueprint.cpp @@ -59,9 +59,9 @@ static void JoinRequestHandler(const DiscordJoinRequest* request) jr.username = ANSI_TO_TCHAR(request->username); jr.discriminator = ANSI_TO_TCHAR(request->discriminator); jr.avatar = ANSI_TO_TCHAR(request->avatar); - UE_LOG(Discord, Log, TEXT("Discord join request from %s#%s"), *jr.username, *jr.discriminator); + UE_LOG(Discord, Log, TEXT("Discord join request from %s - %s#%s"), *jr.userId, *jr.username, *jr.discriminator); if (self) { - self->OnJoinRequest.Broadcast(jr); + self->OnJoinRequest.Broadcast(jr.userId, 1); } } @@ -148,3 +148,10 @@ void UDiscordRpc::ClearPresence() { Discord_ClearPresence(); } + +static void UDiscordRpc::Respond(const FString& userId, int reply) +{ + auto userid = StringCast(*userId); + UE_LOG(Discord, Log, TEXT("Responding %s to join request from %s"), *reply, *userid) + Discord_Respond((const char*)userid.Get(), reply); +} diff --git a/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Public/DiscordRpcBlueprint.h b/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Public/DiscordRpcBlueprint.h index 7fbad7b..95d6345 100644 --- a/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Public/DiscordRpcBlueprint.h +++ b/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Public/DiscordRpcBlueprint.h @@ -30,6 +30,7 @@ DECLARE_LOG_CATEGORY_EXTERN(Discord, Log, All); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDiscordConnected); DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordDisconnected, int, errorCode, const FString&, errorMessage); DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordErrored, int, errorCode, const FString&, errorMessage); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordRespond, const FString&, userId, int, reply); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDiscordJoin, const FString&, joinSecret); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDiscordSpectate, const FString&, spectateSecret); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDiscordJoinRequest, const FDiscordJoinRequestData&, joinRequest); @@ -111,6 +112,11 @@ public: Category = "Discord") void ClearPresence(); + UPROPERTY(BlueprintAssignable, + meta = (DisplayName = "Respond to join request", Keywords = "Discord rpc"), + Category = "Discord") + FDiscordRespond Respond; + UPROPERTY(BlueprintReadOnly, meta = (DisplayName = "Is Discord connected", Keywords = "Discord rpc"), Category = "Discord") diff --git a/examples/unrealstatus/Plugins/discordrpc/Source/ThirdParty/DiscordRpcLibrary/.DS_Store b/examples/unrealstatus/Plugins/discordrpc/Source/ThirdParty/DiscordRpcLibrary/.DS_Store new file mode 100644 index 0000000..ea72a62 Binary files /dev/null and b/examples/unrealstatus/Plugins/discordrpc/Source/ThirdParty/DiscordRpcLibrary/.DS_Store differ