// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "ARNOPlayerController.h"
#include "GameFramework/GameModeBase.h"
#include "OnlineSubsystem.h"
#include "OnlineSubsystemUtils.h"
#include "RedpointEOSInterfaces/Private/Interfaces/OnlineVoiceAdminInterface.h"
#include "arnocMainGameModeBase.generated.h"

/**
 * 
 */
UCLASS()
class ARNOCMAIN_API AarnocMainGameModeBase : public AGameModeBase
{
	GENERATED_BODY()


public:
	AarnocMainGameModeBase();

	virtual void PostLogin(APlayerController* NewPlayer) override;
	void PreLogout(APlayerController* InPlayerController);
	void RegisterExistingPlayers();
	virtual void Logout(AController* Exiting) override;
	TSharedPtr<const FUniqueNetId> GetControllerUniqueNetId(APlayerController* InPlayerController);

private:
	bool bExistingPlayersRegistered;

	void IssuedCredentialsForPlayer(
		const FOnlineError& Result,
		const FUniqueNetId& LocalUserId,
		const TArray<FVoiceAdminChannelCredentials>& Credentials,
		FString InChannelName,
		AARNOPlayerController* NewPlayer);
};