// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/PlayerState.h" #include "MyPlayerState.generated.h" USTRUCT() struct FSessionInfo { GENERATED_BODY() UPROPERTY() int id; UPROPERTY() FString name; UPROPERTY() FString serverip; UPROPERTY() int serverport; }; UCLASS() class SKYFRONTIER_API AMyPlayerState : public APlayerState { GENERATED_BODY() public: void UpdateSessionsList(FString serverinfo); void ConnectToGameServer(FSessionInfo session); protected: virtual void BeginPlay() override; class TCPClient* tcpClient; UPROPERTY(EditDefaultsOnly, Category = "UI") TSubclassOf<class UUserWidget> MatchmakingWidgetClass; class UUserWidget* MatchmakingWidget; class UScrollBox* serverListScrollBoxWidget; TArray<FSessionInfo*> *serversList; FTimerHandle serverListTimerHandle; bool canConnectToGameServer; FSessionInfo connectToGameServerSession; UFUNCTION() void OnNewSessionClicked(); UFUNCTION() void OnUpdateServerList(); };