Thanks, it worked.
My Final setup:
.h:
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "KickPlayer.generated.h"
/**
*
*/
UCLASS()
class MYPROJECT_API UKickPlayer : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
UFUNCTION(BlueprintCallable, Category = "KickPlayer")
static bool Kick(APlayerController* KickedPlayer, const FText & KickReason, AGameModeBase* CurrentGameMode);
};
.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "KickPlayer.h"
#include "GameFramework/GameSession.h"
#include "GameFramework/GameModeBase.h"
#include "Runtime/Engine/Public/TimerManager.h"
#include "Kismet/GameplayStatics.h"
bool UKickPlayer::Kick(APlayerController* KickedPlayer, const FText & KickReason, AGameModeBase* CurrentGameMode)
{
AGameSession *Sessao=CurrentGameMode->GetWorld()->GetAuthGameMode()->GameSession;
if (Sessao)
{
return Sessao->KickPlayer(KickedPlayer, KickReason);
}
else
{
return false;
}
}