private void OnStartFriendlyChallengeSpectateMessageReceived(StartFriendlyChallengeSpectateMessage message) { if (this.m_session.Alliance != null) { Alliance alliance = this.m_session.Alliance; LogicLong streamId = message.GetStreamId(); if (alliance.StreamEntryList.IndexOf(streamId) != -1) { StreamEntry streamEntry = StreamManager.GetAllianceStream(message.GetStreamId()); if (streamEntry.GetStreamEntryType() == StreamEntryType.CHALLENGE) { ChallengeStreamEntry challengeStreamEntry = (ChallengeStreamEntry)streamEntry; if (challengeStreamEntry.IsStarted() && challengeStreamEntry.GetLiveReplayId() != null) { this.m_session.SendMessage(new GameSpectateLiveReplayMessage { LiveReplayId = challengeStreamEntry.GetLiveReplayId(), IsEnemy = false }, 9); return; } } } } LiveReplayFailedMessage liveReplayFailedMessage = new LiveReplayFailedMessage(); liveReplayFailedMessage.SetReason(LiveReplayFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(liveReplayFailedMessage, 1); }
private static void OnAllianceChallengeReportMessageReceived(AllianceChallengeReportMessage message) { if (AllianceManager.TryGet(message.AccountId, out Alliance alliance)) { ChallengeStreamEntry streamEntry = (ChallengeStreamEntry)StreamManager.GetAllianceStream(message.StreamId); if (streamEntry != null) { ChallengeReplayStreamEntry challengeReplayStreamEntry = new ChallengeReplayStreamEntry(); challengeReplayStreamEntry.SetSenderAvatarId(challengeReplayStreamEntry.GetSenderAvatarId()); challengeReplayStreamEntry.SetSenderHomeId(challengeReplayStreamEntry.GetSenderHomeId()); challengeReplayStreamEntry.SetSenderName(challengeReplayStreamEntry.GetSenderName()); challengeReplayStreamEntry.SetSenderLevel(challengeReplayStreamEntry.GetSenderLevel()); challengeReplayStreamEntry.SetSenderLeagueType(challengeReplayStreamEntry.GetSenderLeagueType()); challengeReplayStreamEntry.SetSenderRole(challengeReplayStreamEntry.GetSenderRole()); challengeReplayStreamEntry.SetBattleLogJSON(message.BattleLog); challengeReplayStreamEntry.SetReplayMajorVersion(LogicVersion.MAJOR_VERSION); challengeReplayStreamEntry.SetReplayBuildVersion(LogicVersion.BUILD_VERSION); challengeReplayStreamEntry.SetReplayContentVersion(ResourceManager.GetContentVersion()); challengeReplayStreamEntry.SetReplayId(message.ReplayId); StreamManager.Create(alliance.Id, challengeReplayStreamEntry); alliance.RemoveStreamEntry(streamEntry.GetId()); alliance.AddStreamEntry(challengeReplayStreamEntry); } else { Logging.Warning("StreamMessageManager.onAllianceChallengeReportMessageReceived: pStreamEntry has been deleted. Replay ignored."); } } }
public override async void Process() { if (GameMode == 0) { var home = Device.Player.Home; var alliance = await Resources.Alliances.GetAllianceAsync(home.AllianceInfo.Id); if (alliance == null) { return; } var entry = new ChallengeStreamEntry { Message = Message, Arena = Arena + 1 }; entry.SetSender(Device.Player); alliance.AddEntry(entry); } else { await new MatchmakeFailedMessage(Device).SendAsync(); await new CancelMatchmakeDoneMessage(Device).SendAsync(); } }
private void OnCancelChallengeMessageReceived(CancelChallengeMessage message) { if (this.m_session.Alliance != null) { Alliance alliance = this.m_session.Alliance; AllianceMemberEntry memberEntry = alliance.Members[this.m_session.AccountId]; for (int i = 0; i < alliance.StreamEntryList.Size(); i++) { StreamEntry streamEntry = StreamManager.GetAllianceStream(alliance.StreamEntryList[i]); if (streamEntry != null && streamEntry.GetStreamEntryType() == StreamEntryType.CHALLENGE && streamEntry.GetSenderAvatarId().Equals(memberEntry.GetAvatarId())) { ChallengeStreamEntry prevChallengeStreamEntry = (ChallengeStreamEntry)streamEntry; if (prevChallengeStreamEntry.IsStarted()) { return; } alliance.RemoveStreamEntry(streamEntry.GetId()); } } } }
private static void OnAllianceChallengeLiveReplayIdMessageReceived(AllianceChallengeLiveReplayIdMessage message) { ChallengeStreamEntry streamEntry = (ChallengeStreamEntry)StreamManager.GetAllianceStream(message.AccountId); if (streamEntry != null) { streamEntry.SetLiveReplayId(message.LiveReplayId); } }
public override void Execute(Level level) { ChallangeCommand challangeCommand = this; try { ClientAvatar player = level.GetPlayerAvatar(); Alliance alliance = ObjectManager.GetAlliance(player.GetAllianceId()); ChallengeStreamEntry cm = new ChallengeStreamEntry(); cm.SetMessage(challangeCommand.Message); cm.SetSenderId(player.GetId()); cm.SetSenderName(player.GetAvatarName()); cm.SetSenderLevel(player.GetAvatarLevel()); ChallengeStreamEntry challengeStreamEntry = cm; int allianceRole = player.GetAllianceRole(); challengeStreamEntry.SetSenderRole(allianceRole); challengeStreamEntry = (ChallengeStreamEntry)null; cm.SetId(alliance.GetChatMessages().Count + 1); cm.SetSenderLeagueId(player.GetLeagueId()); alliance.AddChatMessage((UCS.Logic.StreamEntry.StreamEntry)cm); UCS.Logic.StreamEntry.StreamEntry s = alliance.GetChatMessages().Find((Predicate <UCS.Logic.StreamEntry.StreamEntry>)(c => c.GetStreamEntryType() == 12)); List <AllianceMemberEntry> .Enumerator enumerator; if (s != null) { alliance.GetChatMessages().RemoveAll((Predicate <UCS.Logic.StreamEntry.StreamEntry>)(t => t == s)); foreach (AllianceMemberEntry allianceMember in alliance.GetAllianceMembers()) { Level player1 = ResourcesManager.GetPlayer(allianceMember.GetAvatarId(), false); if (player1.GetClient() != null) { new AllianceStreamEntryRemovedMessage(player1.GetClient(), s.GetId()).Send(); } } enumerator = new List <AllianceMemberEntry> .Enumerator(); } foreach (AllianceMemberEntry allianceMember in alliance.GetAllianceMembers()) { Level player1 = ResourcesManager.GetPlayer(allianceMember.GetAvatarId(), false); if (player1.GetClient() != null) { AllianceStreamEntryMessage Message = new AllianceStreamEntryMessage(player1.GetClient()); ChallengeStreamEntry challengeStreamEntry1 = cm; Message.SetStreamEntry((UCS.Logic.StreamEntry.StreamEntry)challengeStreamEntry1); Message.Send(); } } enumerator = new List <AllianceMemberEntry> .Enumerator(); player = (ClientAvatar)null; alliance = (Alliance)null; cm = (ChallengeStreamEntry)null; } catch (Exception ex) { } }
private static void OnAllianceChallengeSpectatorCountMessageReceived(AllianceChallengeSpectatorCountMessage message) { if (AllianceManager.TryGet(message.AccountId, out Alliance alliance)) { ChallengeStreamEntry streamEntry = (ChallengeStreamEntry)StreamManager.GetAllianceStream(message.StreamId); if (streamEntry != null && streamEntry.GetSpectatorCount() != message.Count) { streamEntry.SetSpectatorCount(message.Count); alliance.UpdateStreamEntry(streamEntry); } } }
private void OnAcceptFriendlyBattleMessageReceived(AcceptFriendlyBattleMessage message) { if (this.m_session.Alliance != null) { Alliance alliance = this.m_session.Alliance; LogicLong streamId = message.GetStreamId(); if (alliance.StreamEntryList.IndexOf(streamId) != -1) { StreamEntry streamEntry = StreamManager.GetAllianceStream(message.GetStreamId()); if (streamEntry.GetStreamEntryType() == StreamEntryType.CHALLENGE) { ChallengeStreamEntry challengeStreamEntry = (ChallengeStreamEntry)streamEntry; if (challengeStreamEntry.IsStarted()) { ChallengeFailedMessage challengeFailedMessage = new ChallengeFailedMessage(); challengeFailedMessage.SetReason(ChallengeFailedMessage.Reason.ALREADY_CLOSED); this.m_session.SendPiranhaMessage(challengeFailedMessage, 1); return; } this.m_session.SendMessage(new ChangeGameStateMessage { StateType = GameStateType.CHALLENGE_ATTACK, ChallengeAllianceId = alliance.Id, ChallengeHomeId = challengeStreamEntry.GetSenderAvatarId(), ChallengeStreamId = challengeStreamEntry.GetId(), ChallengeHomeJSON = challengeStreamEntry.GetSnapshotHomeJSON(), ChallengeMapId = challengeStreamEntry.IsWarLayout() ? 1 : 0 }, 9); challengeStreamEntry.SetStarted(true); alliance.UpdateStreamEntry(challengeStreamEntry); return; } } } ChallengeFailedMessage challengeFailedMessageGeneric = new ChallengeFailedMessage(); challengeFailedMessageGeneric.SetReason(ChallengeFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(challengeFailedMessageGeneric, 1); }
public override async void Process() { var home = Device.Player.Home; var alliance = await Resources.Alliances.GetAllianceAsync(home.AllianceInfo.Id); if (alliance != null) { var entry = new ChallengeStreamEntry { Message = Message, Arena = Arena + 1 }; entry.SetSender(Device.Player); alliance.AddEntry(entry); } }
private static void OnAllianceChallengeRequestMessageReceived(AllianceChallengeRequestMessage message) { if (AllianceManager.TryGet(message.AccountId, out Alliance alliance) && alliance.Members.TryGetValue(message.MemberId, out AllianceMemberEntry memberEntry)) { for (int i = 0; i < alliance.StreamEntryList.Size(); i++) { StreamEntry streamEntry = StreamManager.GetAllianceStream(alliance.StreamEntryList[i]); if (streamEntry != null && streamEntry.GetStreamEntryType() == StreamEntryType.CHALLENGE && streamEntry.GetSenderAvatarId().Equals(memberEntry.GetAvatarId())) { ChallengeStreamEntry prevChallengeStreamEntry = (ChallengeStreamEntry)streamEntry; if (prevChallengeStreamEntry.IsStarted()) { return; } alliance.RemoveStreamEntry(streamEntry.GetId()); } } ChallengeStreamEntry challengeStreamEntry = new ChallengeStreamEntry(); AllianceStreamEntryUtil.SetSenderInfo(challengeStreamEntry, memberEntry); string challengeMessage = message.Message; if (challengeMessage.Length > 128) { challengeMessage = challengeMessage.Substring(0, 128); } challengeStreamEntry.SetMessage(challengeMessage); challengeStreamEntry.SetSnapshotHomeJSON(message.HomeJSON); challengeStreamEntry.SetWarLayout(message.WarLayout); StreamManager.Create(alliance.Id, challengeStreamEntry); alliance.AddStreamEntry(challengeStreamEntry); AllianceManager.Save(alliance); } }
internal override async void Process() { try { ClientAvatar player = this.Device.Player.Avatar; long allianceID = player.AllianceId; Alliance alliance = ObjectManager.GetAlliance(allianceID); ChallengeStreamEntry cm = new ChallengeStreamEntry() { Message = Message }; cm.SetSender(player); cm.ID = alliance.m_vChatMessages.Count + 1; alliance.AddChatMessage((ChallengeStreamEntry)cm); StreamEntry s = alliance.m_vChatMessages.Find(c => c.GetStreamEntryType() == 12); if (s != null) { alliance.m_vChatMessages.RemoveAll(t => t == s); foreach (AllianceMemberEntry op in alliance.GetAllianceMembers()) { Level alliancemembers = await ResourcesManager.GetPlayer(op.AvatarId); if (alliancemembers.Client != null) { new AllianceStreamEntryRemovedMessage(alliancemembers.Client, s.ID).Send(); new AllianceStreamEntryMessage(alliancemembers.Client) { StreamEntry = cm }.Send(); } } } } catch (Exception) { } }