using ServerBase; using ServerCommon; namespace GameServer.Contents.GameMode.Manage; public abstract class GameModeJoinSuccessHandlerBase : IGameModeJoinSuccessHandler { protected Player m_player; protected GameModeType m_game_mode_type; protected List m_log_invorkers; protected InstanceRoom m_instance_room; public GameModeJoinSuccessHandlerBase(Player player, GameModeType gameModeType, InstanceRoom instanceRoom) { m_player = player; m_game_mode_type = gameModeType; m_log_invorkers = new(); m_instance_room = instanceRoom; } public async Task 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 joinSuccessConfirmation(); public abstract Task joinSuccessNotify(); public abstract void joinSuccessWriteLog(); }