public override async void Execute(Level level)
        {
            try
            {
                ClientAvatar player     = level.GetPlayerAvatar();
                long         allianceID = player.GetAllianceId();
                Alliance     alliance   = await ObjectManager.GetAlliance(allianceID);

                ChallangeStreamEntry cm = new ChallangeStreamEntry();
                cm.SetMessage(Message);
                cm.SetSenderId(player.GetId());
                cm.SetSenderName(player.GetAvatarName());
                cm.SetSenderLevel(player.GetAvatarLevel());
                cm.SetSenderRole(await player.GetAllianceRole());
                cm.SetId(alliance.GetChatMessages().Count + 1);
                cm.SetSenderLeagueId(player.GetLeagueId());

                StreamEntry s = alliance.GetChatMessages().Find(c => c.GetStreamEntryType() == 12);
                if (s != null)
                {
                    alliance.GetChatMessages().RemoveAll(t => t == s);

                    foreach (AllianceMemberEntry op in alliance.GetAllianceMembers())
                    {
                        Level alliancemembers = await ResourcesManager.GetPlayer(op.GetAvatarId());

                        if (alliancemembers.GetClient() != null)
                        {
                            PacketProcessor.Send(new AllianceStreamEntryRemovedMessage(alliancemembers.GetClient(), s.GetId()));
                        }
                    }
                }

                alliance.AddChatMessage(cm);

                foreach (AllianceMemberEntry op in alliance.GetAllianceMembers())
                {
                    Level alliancemembers = await ResourcesManager.GetPlayer(op.GetAvatarId());

                    if (alliancemembers.GetClient() != null)
                    {
                        AllianceStreamEntryMessage p = new AllianceStreamEntryMessage(alliancemembers.GetClient());
                        p.SetStreamEntry(cm);
                        PacketProcessor.Send(p);
                    }
                }
            } catch (Exception) { }
        }
Пример #2
0
        public override void Execute(Level level)
        {
            var player     = level.GetPlayerAvatar();
            var allianceID = player.GetAllianceId();
            var alliance   = ObjectManager.GetAlliance(allianceID);

            var cm = new ChallangeStreamEntry();

            cm.SetMessage(Message);
            cm.SetSenderId(player.GetId());
            cm.SetSenderName(player.GetAvatarName());
            cm.SetSenderLevel(player.GetAvatarLevel());
            cm.SetSenderRole(player.GetAllianceRole());
            cm.SetId(alliance.GetChatMessages().Count + 1);
            cm.SetSenderLeagueId(player.GetLeagueId());

            var s = alliance.GetChatMessages().Find(c => c.GetStreamEntryType() == 12);

            if (s != null)
            {
                alliance.GetChatMessages().RemoveAll(t => t == s);
                Parallel.ForEach((alliance.GetAllianceMembers()), op =>
                {
                    var alliancemembers = ResourcesManager.GetPlayer(op.GetAvatarId());
                    if (alliancemembers.GetClient() != null)
                    {
                        new AllianceStreamEntryRemovedMessage(alliancemembers.GetClient(), s.GetId()).Send();
                    }
                });
            }

            alliance.AddChatMessage(cm);

            Parallel.ForEach((alliance.GetAllianceMembers()), op =>
            {
                var alliancemembers = ResourcesManager.GetPlayer(op.GetAvatarId());
                if (alliancemembers.GetClient() != null)
                {
                    var p = new AllianceStreamEntryMessage(alliancemembers.GetClient());
                    p.SetStreamEntry(cm);
                    p.Send();
                }
            });
        }
Пример #3
0
        public void LoadFromJSON(string jsonString)
        {
            var jsonObject = JObject.Parse(jsonString);

            m_vAllianceId          = jsonObject["alliance_id"].ToObject <long>();
            m_vAllianceName        = jsonObject["alliance_name"].ToObject <string>();
            m_vAllianceBadgeData   = jsonObject["alliance_badge"].ToObject <int>();
            m_vAllianceType        = jsonObject["alliance_type"].ToObject <int>();
            m_vRequiredScore       = jsonObject["required_score"].ToObject <int>();
            m_vAllianceDescription = jsonObject["description"].ToObject <string>();
            m_vAllianceExperience  = jsonObject["alliance_experience"].ToObject <int>();
            m_vAllianceLevel       = jsonObject["alliance_level"].ToObject <int>();
            m_vWarLogPublic        = jsonObject["war_log_public"].ToObject <byte>();
            m_vFriendlyWar         = jsonObject["friendly_war"].ToObject <byte>();
            m_vWonWars             = jsonObject["won_wars"].ToObject <int>();
            m_vLostWars            = jsonObject["lost_wars"].ToObject <int>();
            m_vDrawWars            = jsonObject["draw_wars"].ToObject <int>();
            m_vWarFrequency        = jsonObject["war_frequency"].ToObject <int>();
            m_vAllianceOrigin      = jsonObject["alliance_origin"].ToObject <int>();
            var jsonMembers = (JArray)jsonObject["members"];

            foreach (JToken jToken in jsonMembers)
            {
                var  jsonMember = (JObject)jToken;
                long id         = jsonMember["avatar_id"].ToObject <long>();
                var  pl         = ResourcesManager.GetPlayer(id);
                var  member     = new AllianceMemberEntry(id);
                m_vScore = m_vScore + pl.GetPlayerAvatar().GetScore();
                member.Load(jsonMember);
                m_vAllianceMembers.Add(id, member);
            }
            m_vScore = m_vScore / 2;
            var jsonMessages = (JArray)jsonObject["chatMessages"];

            if (jsonMessages != null)
            {
                foreach (JToken jToken in jsonMessages)
                {
                    JObject jsonMessage        = (JObject)jToken;
                    StreamEntry.StreamEntry se = new StreamEntry.StreamEntry();
                    if (jsonMessage["type"].ToObject <int>() == 1)
                    {
                        se = new TroopRequestStreamEntry();
                    }
                    else if (jsonMessage["type"].ToObject <int>() == 2)
                    {
                        se = new ChatStreamEntry();
                    }
                    else if (jsonMessage["type"].ToObject <int>() == 3)
                    {
                        se = new InvitationStreamEntry();
                    }
                    else if (jsonMessage["type"].ToObject <int>() == 4)
                    {
                        se = new AllianceEventStreamEntry();
                    }
                    else if (jsonMessage["type"].ToObject <int>() == 5)
                    {
                        se = new ShareStreamEntry();
                    }
                    else if (jsonMessage["type"].ToObject <int>() == 12)
                    {
                        se = new ChallangeStreamEntry();
                    }
                    se.Load(jsonMessage);
                    m_vChatMessages.Add(se);
                }
            }
        }