diff --git a/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp b/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp index e0341a7..bb278c1 100644 --- a/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp +++ b/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp @@ -48,3 +48,23 @@ FSpawnRequest UProtocolLibrary::DecodeSpawnPayload(const FString& payload) return request; } +FWarpRequest UProtocolLibrary::DecodeWarpPayload(const FString& payload) +{ + FString input = payload; + + FString username = TEXT(""); + FString level = TEXT(""); + + FString Left, Right; + + if (input.Split(TEXT("|"), &Left, &Right)) { + username = Left; + level = Right; + } + + FWarpRequest request = FWarpRequest(); + request.Username = username.TrimStartAndEnd(); + request.LevelName = level.TrimStartAndEnd(); + + return request; +} diff --git a/Source/EventCenterPlugin/Public/ProtocolLibrary.h b/Source/EventCenterPlugin/Public/ProtocolLibrary.h index 88379f1..06730b7 100644 --- a/Source/EventCenterPlugin/Public/ProtocolLibrary.h +++ b/Source/EventCenterPlugin/Public/ProtocolLibrary.h @@ -25,4 +25,8 @@ public: // Decode Spawn instructions UFUNCTION(BlueprintPure, Category = "EventCenterHelperFunctions") static FSpawnRequest DecodeSpawnPayload(const FString& payload); + + // Decode Warp instructions + UFUNCTION(BlueprintPure, Category = "EventCenterHelperFunctions") + static FWarpRequest DecodeWarpPayload(const FString& payload); }; diff --git a/Source/EventCenterPlugin/Public/ProtocolTypes.h b/Source/EventCenterPlugin/Public/ProtocolTypes.h index 8f226bd..b26c9e0 100644 --- a/Source/EventCenterPlugin/Public/ProtocolTypes.h +++ b/Source/EventCenterPlugin/Public/ProtocolTypes.h @@ -39,3 +39,18 @@ public: FString Model; }; +/** + * Warp instructions + */ +USTRUCT(BlueprintType) +struct EVENTCENTERPLUGIN_API FWarpRequest { + GENERATED_BODY() + +public: + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString Username; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString LevelName; +}; +