6#include "CoreMinimal.h"
7#include "GameFramework/GameSession.h"
8#include "SteamBeaconGameSession.h"
9#include "ProjectXGameSession.generated.h"
11#define OfficialServerPassword "b2d171800af2027362b7cf89f6ea91d4";
18 GENERATED_USTRUCT_BODY()
23 FName SessionName =
"";
27 bool bIsPresence =
false;
29 TSharedPtr<const FUniqueNetId>
UserId;
31 int32 BestSessionIdx = INDEX_NONE;
37 GENERATED_UCLASS_BODY()
40 virtual void InitOptions(
const FString& Options)
override;
41 virtual void RegisterServer()
override;
42 virtual FString ApproveLogin(
const FString& Options,
const FUniqueNetIdRepl& UniqueId)
override;
43 virtual void AddAdmin(APlayerController* AdminPlayer)
override;
44 virtual void RemoveAdmin(APlayerController* AdminPlayer)
override;
45 virtual bool KickPlayer(APlayerController* KickedPlayer,
const FText& KickReason)
override;
46 virtual bool BanPlayer(APlayerController* BannedPlayer,
const FText& BanReason)
override;
47 virtual bool SessionKickPlayer(APlayerController* KickedPlayer,
const FText& KickReason);
48 virtual bool IsPlayerBanned(UNetConnection* NetConnection,
const FUniqueNetIdRepl& UniqueId)
const;
49 virtual bool IsPlayerSessionKicked(UNetConnection* NetConnection,
const FUniqueNetIdRepl& UniqueId)
const;
50 bool TravelToSession(int32 ControllerId, FName SessionName);
51 virtual void HandleMatchHasStarted()
override;
52 virtual void HandleMatchHasEnded()
override;
54 void FindSessions(TSharedPtr<const FUniqueNetId> UserId, FName InSessionName, int32 PartySize,
const TArray<EGameType>& GameTypes,
bool bIsLAN,
bool bIsPresence,
bool bIsMatchmaking,
bool bSearchFreshServersOnly);
56 bool JoinSession(TSharedPtr<const FUniqueNetId> UserId, FName SessionName, int32 SessionIndexInSearchResults);
57 bool JoinSession(TSharedPtr<const FUniqueNetId> UserId, FName SessionName,
const FOnlineSessionSearchResult& SearchResult);
58 bool HostSession(TSharedPtr<const FUniqueNetId> UserId, FName SessionName,
const FString& GameType,
const FString&
MapName,
bool bIsLAN,
bool bIsPresence, int32 MaxNumPlayers);
59 bool HostSession(
const TSharedPtr<const FUniqueNetId> UserId,
const FName SessionName,
const FOnlineSessionSettings& SessionSettings);
61 void DestroySession();
70 void UpdateServerInfoMapName(
const FString& MapName);
71 void UpdateServerInfoGameModeName(
const EGameType& GameMode);
73 void UpdateServerInfoMaxPlayers(int32 PlayerCountMax);
75 void StartMatchmaking();
81 UPROPERTY(GlobalConfig)
82 TArray<FString> BannedPlayerID;
83 UPROPERTY(GlobalConfig)
84 TArray<FString> BannedPlayerIP;
86 TArray<FString> SessionKickedPlayerID;
87 UPROPERTY(GlobalConfig)
88 FString ServerPassword = "";
89 UPROPERTY(GlobalConfig)
90 FString OfficialServerSessionPassword = "";
91 UPROPERTY(GlobalConfig)
92 FString ServerName = "DefaultName";
93 UPROPERTY(GlobalConfig)
94 FString ServerRegion = "USEast";
98 FOnCreateSessionCompleteDelegate OnCreateSessionCompleteDelegate;
100 FOnStartSessionCompleteDelegate OnStartSessionCompleteDelegate;
102 FOnDestroySessionCompleteDelegate OnDestroySessionCompleteDelegate;
104 FOnFindSessionsCompleteDelegate OnFindSessionsCompleteDelegate;
106 FOnJoinSessionCompleteDelegate OnJoinSessionCompleteDelegate;
108 virtual
void OnCreateSessionComplete(FName SessionName,
bool bWasSuccessful);
109 void OnStartOnlineGameComplete(FName SessionName,
bool bWasSuccessful);
110 void OnFindSessionsComplete(
bool bWasSuccessful);
111 void OnJoinSessionComplete(FName SessionName, EOnJoinSessionCompleteResult::Type Result);
112 virtual
void OnDestroySessionComplete(FName SessionName,
bool bWasSuccessful);
114 FOnCreatePresenceSessionComplete CreatePresenceSessionCompleteEvent;
115 FOnFindSessionsComplete FindSessionsCompleteEvent;
116 FOnJoinSessionComplete JoinSessionCompleteEvent;
119 FDelegateHandle OnStartSessionCompleteDelegateHandle;
120 FDelegateHandle OnCreateSessionCompleteDelegateHandle;
121 FDelegateHandle OnDestroySessionCompleteDelegateHandle;
122 FDelegateHandle OnFindSessionsCompleteDelegateHandle;
123 FDelegateHandle OnJoinSessionCompleteDelegateHandle;
131 TSharedPtr<class FOnlineSessionSearch> SearchSettings;
#define OfficialServerPassword
Definition: ProjectXGameSession.h:11
DECLARE_EVENT_TwoParams(AProjectXGameSession, FOnCreatePresenceSessionComplete, FName, bool)
EDifficultyLevel
Definition: ProjectXGameState.h:54
EGameType
Definition: ProjectXGameState.h:40
Definition: ProjectXGameSession.h:36
FOnCreatePresenceSessionComplete & OnCreatePresenceSessionComplete()
Definition: ProjectXGameSession.h:65
FOnDestroySessionCompleteDelegate & OnDestroySessionComplete()
Definition: ProjectXGameSession.h:68
FOnJoinSessionComplete & OnJoinSessionComplete()
Definition: ProjectXGameSession.h:67
TSharedPtr< class FOnlineSessionSearch > GetCurrentSearchSettings() const
Definition: ProjectXGameSession.h:79
FOnFindSessionsComplete & OnFindSessionsComplete()
Definition: ProjectXGameSession.h:66
bool IsServerOfficial()
Definition: ProjectXGameSession.h:77
Definition: ProjectXOnlineGameSettings.h:32
Definition: ProjectXGameSession.h:17
TSharedPtr< const FUniqueNetId > UserId
Definition: ProjectXGameSession.h:29