private void OnAvatarReceived(ServerRequestArgs args) { if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { this.LogicClientAvatar = ((AvatarResponseMessage)args.ResponseMessage).LogicClientAvatar; if (AllianceManager.TryGet(this.LogicClientAvatar.GetAllianceId(), out Alliance avatarAlliance) && avatarAlliance.Members.ContainsKey(this.AccountId)) { this.Alliance = avatarAlliance; this.Alliance.AddOnlineMember(this.AccountId, this); this.SendPiranhaMessage(this.Alliance.GetAllianceFulEntryUpdateMessage(), 1); this.SendPiranhaMessage(this.Alliance.GetAllianceStreamMessage(), 1); AllianceMemberUtil.SetLogicClientAvatarToAllianceMemberEntry(this.LogicClientAvatar, this.Alliance.Members[this.AccountId], this.Alliance); AllianceManager.Save(this.Alliance); } else { this.SendMessage(new StopServerSessionMessage(), 1); ServerMessageManager.SendMessage(new AllianceLeavedMessage { AccountId = this.AccountId, AllianceId = this.LogicClientAvatar.GetAllianceId() }, 9); AllianceSessionManager.Remove(this.Id); } } else { this.SendMessage(new StopServerSessionMessage(), 1); AllianceSessionManager.Remove(this.Id); } }
private void OnHomeServerBound(ServerRequestArgs args) { if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { if (this.GameAvatar.LogicClientAvatar.IsInAlliance()) { this.BindAllianceServer(); } this.SendBookmarksListMessageToClient(); this.SendAvatarStreamMessageToClient(); this.LoadGameState(new GameHomeState { Home = this.GameAvatar.LogicClientHome, PlayerAvatar = this.GameAvatar.LogicClientAvatar, SaveTime = this.GameAvatar.SaveTime, MapId = this.GameAvatar.MaintenanceTime, ServerCommands = this.GameAvatar.ServerCommands }); } else { Logging.Error("GameSession.onHomeServerBound: unable to bind a home server to the session."); this.SendMessage(new StopSessionMessage(), 1); } }
private void OnRequestAlliance(ServerRequestArgs args) { if (this.m_session.IsDestructed()) { return; } if (args.ErrorCode == ServerRequestError.Success) { RequestAllianceJoinResponseMessage responseMessage = (RequestAllianceJoinResponseMessage)args.ResponseMessage; if (responseMessage.Success) { this.m_session.SendPiranhaMessage(new AllianceJoinRequestOkMessage(), 1); } else { AllianceJoinRequestFailedMessage allianceJoinRequestFailedMessage = new AllianceJoinRequestFailedMessage(); switch (responseMessage.ErrorReason) { case RequestAllianceJoinResponseMessage.Reason.GENERIC: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.GENERIC); break; case RequestAllianceJoinResponseMessage.Reason.CLOSED: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.CLOSED); break; case RequestAllianceJoinResponseMessage.Reason.ALREADY_SENT: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.ALREADY_SENT); break; case RequestAllianceJoinResponseMessage.Reason.NO_SCORE: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.NO_SCORE); break; case RequestAllianceJoinResponseMessage.Reason.BANNED: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.BANNED); break; case RequestAllianceJoinResponseMessage.Reason.TOO_MANY_PENDING_REQUESTS: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.TOO_MANY_PENDING_REQUESTS); break; case RequestAllianceJoinResponseMessage.Reason.NO_DUEL_SCORE: allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.NO_DUEL_SCORE); break; } this.m_session.SendPiranhaMessage(allianceJoinRequestFailedMessage, 1); } } else { AllianceJoinRequestFailedMessage allianceJoinRequestFailedMessage = new AllianceJoinRequestFailedMessage(); allianceJoinRequestFailedMessage.SetReason(AllianceJoinRequestFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(allianceJoinRequestFailedMessage, 1); } }
public void OnAvatarStreamCreated(ServerRequestArgs args) { if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { this.AddAvatarStreamEntry(((CreateAvatarStreamResponseMessage)args.ResponseMessage).Entry); } else { Logging.Warning("GameAvatar.onAvatarStreamCreated: The stream server " + args.ResponseMessage.Sender + " could not create a stream."); } }
private void OnCreateAlliance(ServerRequestArgs args) { if (args.ErrorCode == ServerRequestError.Success) { CreateAllianceResponseMessage createAllianceResponseMessage = (CreateAllianceResponseMessage)args.ResponseMessage; if (createAllianceResponseMessage.Success) { LogicLong avatarId = this.m_session.GameMode.GetPlayerAvatar().GetId(); ServerRequestManager.Create(new GameJoinAllianceRequestMessage { AccountId = avatarId, AllianceId = createAllianceResponseMessage.AllianceId, Created = true }, ServerManager.GetDocumentSocket(9, avatarId)).OnComplete = this.OnGameAllianceJoin; } else { AllianceCreateFailedMessage allianceCreateFailedMessage = new AllianceCreateFailedMessage(); switch (createAllianceResponseMessage.ErrorReason) { case CreateAllianceResponseMessage.Reason.GENERIC: allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.GENERIC); break; case CreateAllianceResponseMessage.Reason.INVALID_DESCRIPTION: allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.INVALID_DESCRIPTION); break; case CreateAllianceResponseMessage.Reason.INVALID_NAME: allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.INVALID_NAME); break; case CreateAllianceResponseMessage.Reason.NAME_TOO_LONG: allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.NAME_TOO_LONG); break; case CreateAllianceResponseMessage.Reason.NAME_TOO_SHORT: allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.NAME_TOO_SHORT); break; } this.m_session.SendPiranhaMessage(allianceCreateFailedMessage, 1); } } else { AllianceCreateFailedMessage allianceCreateFailedMessage = new AllianceCreateFailedMessage(); allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(allianceCreateFailedMessage, 1); } }
private void OnGameServerBound(ServerRequestArgs args) { if (!this.m_connection.Destructed) { if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { if (this.m_connection.State == ClientConnectionState.LOGGED) { this.m_connection.Session.SetStarted(); } } else { ClientConnectionManager.Disconnect(this.m_connection, 0); } } }
private void OnGameAllianceJoin(ServerRequestArgs args) { if (args.ErrorCode == ServerRequestError.Aborted) { AllianceJoinFailedMessage allianceJoinFailedMessage = new AllianceJoinFailedMessage(); allianceJoinFailedMessage.SetReason(AllianceJoinFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(allianceJoinFailedMessage, 1); } else if (!args.ResponseMessage.Success) { GameJoinAllianceResponseMessage gameJoinAllianceResponseMessage = (GameJoinAllianceResponseMessage)args.ResponseMessage; AllianceJoinFailedMessage allianceJoinFailedMessage = new AllianceJoinFailedMessage(); switch (gameJoinAllianceResponseMessage.ErrorReason) { case GameJoinAllianceResponseMessage.Reason.NO_CASTLE: case GameJoinAllianceResponseMessage.Reason.ALREADY_IN_ALLIANCE: case GameJoinAllianceResponseMessage.Reason.GENERIC: allianceJoinFailedMessage.SetReason(AllianceJoinFailedMessage.Reason.GENERIC); break; case GameJoinAllianceResponseMessage.Reason.FULL: allianceJoinFailedMessage.SetReason(AllianceJoinFailedMessage.Reason.FULL); break; case GameJoinAllianceResponseMessage.Reason.CLOSED: allianceJoinFailedMessage.SetReason(AllianceJoinFailedMessage.Reason.CLOSED); break; case GameJoinAllianceResponseMessage.Reason.SCORE: allianceJoinFailedMessage.SetReason(AllianceJoinFailedMessage.Reason.SCORE); break; case GameJoinAllianceResponseMessage.Reason.BANNED: allianceJoinFailedMessage.SetReason(AllianceJoinFailedMessage.Reason.BANNED); break; } this.m_session.SendPiranhaMessage(allianceJoinFailedMessage, 1); } }
private void OnHomeBattleReplayLoaded(ServerRequestArgs args) { if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success && !this.m_session.IsDestructed()) { LoadReplayStreamResponseMessage loadReplayStreamResponseMessage = (LoadReplayStreamResponseMessage)args.ResponseMessage; if (loadReplayStreamResponseMessage.MajorVersion == LogicVersion.MAJOR_VERSION && loadReplayStreamResponseMessage.BuildVersion == LogicVersion.BUILD_VERSION && loadReplayStreamResponseMessage.ContentVersion == ResourceManager.GetContentVersion()) { HomeBattleReplayDataMessage homeBattleReplayDataMessage = new HomeBattleReplayDataMessage(); homeBattleReplayDataMessage.SetReplayData(loadReplayStreamResponseMessage.StreamData); this.m_session.SendPiranhaMessage(homeBattleReplayDataMessage, 1); } else { this.m_session.SendPiranhaMessage(new HomeBattleReplayFailedMessage(), 1); } } else { this.m_session.SendPiranhaMessage(new HomeBattleReplayFailedMessage(), 1); } }
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)); }