Files
caliverse_server/GameServer/Contents/GameMode/Manage/GameModeJoinSuccessHandlerBase.cs
2025-05-01 07:20:41 +09:00

51 lines
1.3 KiB
C#

using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer;
public abstract class GameModeJoinSuccessHandlerBase : IGameModeJoinSuccessHandler
{
protected Player m_player;
//protected InstanceRoom m_instance_room;
protected EPlaceType m_place_type;
protected List<ILogInvoker> m_log_invorkers;
public GameModeJoinSuccessHandlerBase(Player player, EPlaceType placeType)
{
m_player = player;
//m_instance_room = instanceRoom;
m_place_type = placeType;
m_log_invorkers = new();
}
public async Task<Result> joinSuccess()
{
var result = joinSuccessValidate();
if (result.isFail()) return result;
result = await joinSuccessConfirmation();
if (result.isFail()) return result;
result = joinSuccessNotify().Result;
if (result.isFail()) return result;
joinSuccessWriteLog();
return result;
}
public abstract Result joinSuccessValidate();
public abstract Task<Result> joinSuccessConfirmation();
public abstract Task<Result> joinSuccessNotify();
public abstract void joinSuccessWriteLog();
}