private static void OnForwardLogicRequestMessageReceived(ForwardLogicRequestMessage message) { PiranhaMessage logicMessage = LogicMagicMessageFactory.Instance.CreateMessageByType(message.MessageType); if (logicMessage == null) { throw new Exception("logicMessage should not be NULL!"); } logicMessage.GetByteStream().SetByteArray(message.MessageBytes, message.MessageLength); logicMessage.SetMessageVersion(message.MessageVersion); logicMessage.Decode(); if (!logicMessage.IsServerToClientMessage()) { switch (logicMessage.GetMessageType()) { case AskForJoinableAlliancesListMessage.MESSAGE_TYPE: ServerRequestManager.Create(new AvatarRequestMessage { AccountId = message.AccountId }, ServerManager.GetDocumentSocket(9, message.AccountId), 5).OnComplete = args => { SearchMessageManager.OnAvatarResponseMessageReceivedForJoinableAlliancesList(message, args); }; break; case SearchAlliancesMessage.MESSAGE_TYPE: SearchMessageManager.OnSearchAlliancesMessageReceived((SearchAlliancesMessage)logicMessage, message); break; } } }
private static void OnForwardLogicMessageRequestMessageReceived(ForwardLogicRequestMessage message) { PiranhaMessage logicMessage = LogicMagicMessageFactory.Instance.CreateMessageByType(message.MessageType); if (logicMessage == null) { throw new Exception("logicMessage should not be NULL!"); } logicMessage.GetByteStream().SetByteArray(message.MessageBytes, message.MessageLength); logicMessage.SetMessageVersion(message.MessageVersion); logicMessage.Decode(); if (!logicMessage.IsServerToClientMessage()) { switch (logicMessage.GetMessageType()) { case AskForAllianceDataMessage.MESSAGE_TYPE: AskForAllianceDataMessage askForAllianceDataMessage = (AskForAllianceDataMessage)logicMessage; LogicLong allianceId = askForAllianceDataMessage.RemoveAllianceId(); if (AllianceManager.TryGet(allianceId, out Alliance alliance)) { ServerMessageManager.SendMessage(StreamMessageManager.CreateForwardLogicMessage(alliance.GetAllianceDataMessage(), message.SessionId), ServerManager.GetProxySocket(message.SessionId)); } break; } } }
private static void OnForwardLogicMessageRequestMessageReceived(ForwardLogicRequestMessage message) { PiranhaMessage logicMessage = LogicMagicMessageFactory.Instance.CreateMessageByType(message.MessageType); if (logicMessage == null) { throw new Exception("logicMessage should not be NULL!"); } logicMessage.GetByteStream().SetByteArray(message.MessageBytes, message.MessageLength); logicMessage.SetMessageVersion(message.MessageVersion); logicMessage.Decode(); if (!logicMessage.IsServerToClientMessage()) { switch (logicMessage.GetMessageType()) { case AskForAvatarProfileMessage.MESSAGE_TYPE: { AskForAvatarProfileMessage askForAvatarProfileMessage = (AskForAvatarProfileMessage)logicMessage; LogicLong avatarId = askForAvatarProfileMessage.RemoveAvatarId(); if (GameAvatarManager.TryGet(avatarId, out GameAvatar document)) { AvatarProfileMessage avatarProfileMessage = new AvatarProfileMessage(); AvatarProfileFullEntry avatarProfileFullEntry = new AvatarProfileFullEntry(); avatarProfileFullEntry.SetLogicClientAvatar(document.LogicClientAvatar); avatarProfileFullEntry.SetCompressedHomeJSON(document.LogicClientHome.GetCompressibleHomeJSON().GetCompressed()); avatarProfileMessage.SetAvatarProfileFullEntry(avatarProfileFullEntry); ServerMessageManager.SendMessage(GameMessageManager.CreateForwardLogicMessage(avatarProfileMessage, message.SessionId), ServerManager.GetProxySocket(message.SessionId)); } else { AvatarProfileFailedMessage avatarProfileFailedMessage = new AvatarProfileFailedMessage(); avatarProfileFailedMessage.SetErrorType(AvatarProfileFailedMessage.ErrorType.NOT_FOUND); ServerMessageManager.SendMessage(GameMessageManager.CreateForwardLogicMessage(avatarProfileFailedMessage, message.SessionId), ServerManager.GetProxySocket(message.SessionId)); } break; } } } }
private static void OnForwardLogicRequestMessageReceived(ForwardLogicRequestMessage message) { PiranhaMessage logicMessage = LogicMagicMessageFactory.Instance.CreateMessageByType(message.MessageType); if (logicMessage == null) { throw new Exception("logicMessage should not be NULL!"); } logicMessage.GetByteStream().SetByteArray(message.MessageBytes, message.MessageLength); logicMessage.SetMessageVersion(message.MessageVersion); logicMessage.Decode(); if (!logicMessage.IsServerToClientMessage()) { switch (logicMessage.GetMessageType()) { case AskForAllianceRankingListMessage.MESSAGE_TYPE: ScoringMessageManager.OnAskForAllianceRankingListMessageReceived((AskForAllianceRankingListMessage)logicMessage, message); break; case AskForAvatarRankingListMessage.MESSAGE_TYPE: ScoringMessageManager.OnAskForAvatarRankingListMessageReceived((AskForAvatarRankingListMessage)logicMessage, message); break; case AskForAvatarLocalRankingListMessage.MESSAGE_TYPE: ScoringMessageManager.OnAskForLocalAvatarRankingListMessageReceived((AskForAvatarLocalRankingListMessage)logicMessage, message); break; case AskForAvatarLastSeasonRankingListMessage.MESSAGE_TYPE: ScoringMessageManager.OnAskForAvatarLastSeasonRankingListMessageReceived((AskForAvatarLastSeasonRankingListMessage)logicMessage, message); break; case AskForAvatarDuelLastSeasonRankingListMessage.MESSAGE_TYPE: ScoringMessageManager.OnAskForAvatarDuelLastSeasonRankingListMessageReceived((AskForAvatarDuelLastSeasonRankingListMessage)logicMessage, message); break; } } }
private static async void OnAvatarResponseMessageReceivedForJoinableAlliancesList(ForwardLogicRequestMessage requestMessage, ServerRequestArgs args) { int score = 0; int duelScore = 0; if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { AvatarResponseMessage responseMessage = (AvatarResponseMessage)args.ResponseMessage; score = responseMessage.LogicClientAvatar.GetScore(); duelScore = responseMessage.LogicClientAvatar.GetDuelScore(); } JoinableAllianceListMessage joinableAllianceListMessage = new JoinableAllianceListMessage(); joinableAllianceListMessage.SetAlliances(await SearchManager.GetJoinableAlliancesList(score, duelScore)); ServerMessageManager.SendMessage(SearchMessageManager.CreateForwardLogicMessage(joinableAllianceListMessage, requestMessage.SessionId), ServerManager.GetProxySocket(requestMessage.SessionId)); }
private static async void OnSearchAlliancesMessageReceived(SearchAlliancesMessage message, ForwardLogicRequestMessage requestMessage) { if (message.IsJoinableOnly()) { ServerRequestManager.Create(new AvatarRequestMessage { AccountId = requestMessage.AccountId }, ServerManager.GetDocumentSocket(9, requestMessage.AccountId), 5).OnComplete = async args => { LogicClientAvatar playerAvatar = null; if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { playerAvatar = ((AvatarResponseMessage)args.ResponseMessage).LogicClientAvatar; } AllianceListMessage allianceListMessage = new AllianceListMessage(); allianceListMessage.SetAlliances(await SearchManager.SearchAlliances(message, playerAvatar)); allianceListMessage.SetBookmarkList(new LogicArrayList <LogicLong>()); allianceListMessage.SetSearchString(message.GetSearchString()); ServerMessageManager.SendMessage(SearchMessageManager.CreateForwardLogicMessage(allianceListMessage, requestMessage.SessionId), ServerManager.GetProxySocket(requestMessage.SessionId)); }; } else { AllianceListMessage allianceListMessage = new AllianceListMessage(); allianceListMessage.SetAlliances(await SearchManager.SearchAlliances(message, null)); allianceListMessage.SetBookmarkList(new LogicArrayList <LogicLong>()); allianceListMessage.SetSearchString(message.GetSearchString()); ServerMessageManager.SendMessage(SearchMessageManager.CreateForwardLogicMessage(allianceListMessage, requestMessage.SessionId), ServerManager.GetProxySocket(requestMessage.SessionId)); } }