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 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 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(); }