#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: Matchmaking

#include "Basic.hpp"

#include "OnlineSubsystemUtils_classes.hpp"
#include "Engine_classes.hpp"
#include "Matchmaking_structs.hpp"


SDK_NAMESPACE_START

// Class Matchmaking.DedicatedServerMatchmakingBeaconClient
// 0x0038 (0x0370 - 0x0338)
class ADedicatedServerMatchmakingBeaconClient final : public AOnlineBeaconClient
{
public:
	class ADedicatedServerMatchmakingBeaconHostObject* HostStateOnServer;                            // 0x0338(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_340[0x30];                                     // 0x0340(0x0030)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnReserveForMatchResult(bool bWasSuccessful);
	void ReserveForMatch(const TArray<struct FDedicatedServerMatchmakingBeaconClientMatchMember>& MatchMembers, const TArray<int32>& TeamSizes);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("DedicatedServerMatchmakingBeaconClient")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"DedicatedServerMatchmakingBeaconClient")
	}
	static class ADedicatedServerMatchmakingBeaconClient* GetDefaultObj()
	{
		return GetDefaultObjImpl<ADedicatedServerMatchmakingBeaconClient>();
	}
};
DUMPER7_ASSERTS_ADedicatedServerMatchmakingBeaconClient;

// Class Matchmaking.DedicatedServerMatchmakingBeaconHost
// 0x0100 (0x03A8 - 0x02A8)
class ADedicatedServerMatchmakingBeaconHost final : public AActor
{
public:
	class AOnlineBeaconHost*                      Beacon;                                            // 0x02A8(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_2B0[0xC8];                                     // 0x02B0(0x00C8)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         BeaconPort;                                        // 0x0378(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         ReservationTimeoutSeconds;                         // 0x037C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bRequireAllPlayersConnectedForMatchStart;          // 0x0380(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bAllowPlayerReconnections;                         // 0x0381(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_382[0x6];                                      // 0x0382(0x0006)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(bool bIsReserved, const struct FDedicatedServerReservation& Reservation)> OnReservationStatusChanged; // 0x0388(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const struct FDedicatedServerReservation& Reservation)> OnMatchReadyToStart; // 0x0398(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)

public:
	void MatchEnded();

	void GetCurrentReservation(bool* bOutIsReserved, struct FDedicatedServerReservation* OutReservation) const;
	TSet<class FString> GetRemainingReservationMembers() const;
	bool IsMatchPlaying() const;
	bool IsReserved() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("DedicatedServerMatchmakingBeaconHost")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"DedicatedServerMatchmakingBeaconHost")
	}
	static class ADedicatedServerMatchmakingBeaconHost* GetDefaultObj()
	{
		return GetDefaultObjImpl<ADedicatedServerMatchmakingBeaconHost>();
	}
};
DUMPER7_ASSERTS_ADedicatedServerMatchmakingBeaconHost;

// Class Matchmaking.DedicatedServerMatchmakingBeaconHostObject
// 0x0008 (0x02D8 - 0x02D0)
class ADedicatedServerMatchmakingBeaconHostObject final : public AOnlineBeaconHostObject
{
public:
	class ADedicatedServerMatchmakingBeaconHost*  HostOwner;                                         // 0x02D0(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("DedicatedServerMatchmakingBeaconHostObject")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"DedicatedServerMatchmakingBeaconHostObject")
	}
	static class ADedicatedServerMatchmakingBeaconHostObject* GetDefaultObj()
	{
		return GetDefaultObjImpl<ADedicatedServerMatchmakingBeaconHostObject>();
	}
};
DUMPER7_ASSERTS_ADedicatedServerMatchmakingBeaconHostObject;

SDK_NAMESPACE_END
