예제 #1
0
        public static void HandlePasswordChange(IRealmClient client, RealmPacketIn packet)
        {
            var channelName = packet.ReadCString();
            var password    = packet.ReadCString();

            ChannelMember member;
            var           chan = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, out member);

            if (chan != null)
            {
                if (!member.IsModerator)
                {
                    SendNotModeratorReply(client, channelName);
                }
                else
                {
                    chan.Password = password;
                    SendPasswordChangedToEveryone(chan, client.ActiveCharacter.EntityId);
                }
            }
            else
            {
                SendNotOnChannelReply(client, channelName);
            }
        }
예제 #2
0
        public static void HandleModerateRequest(IRealmClient client, RealmPacketIn packet)
        {
            var channelName = packet.ReadCString();

            ChannelMember member;
            var           chan = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, out member);

            if (chan != null)
            {
                chan.ToggleModerated(member);
            }
        }
예제 #3
0
        public static void HandleUnbanRequest(IRealmClient client, RealmPacketIn packet)
        {
            var channelName = packet.ReadCString();
            var targetName  = packet.ReadCString();

            ChannelMember member;
            var           chan = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, out member);

            if (chan != null)
            {
                chan.SetBanned(member, targetName, false);
            }
        }
예제 #4
0
        public static void HandleChannelInvite(IRealmClient client, RealmPacketIn packet)
        {
            var channelName = packet.ReadCString();
            var targetName  = packet.ReadCString();

            ChannelMember inviter;
            var           chan = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, out inviter);

            if (chan != null)
            {
                chan.Invite(inviter, targetName);
            }
        }
예제 #5
0
        public static void HandleMuteRequest(IRealmClient client, RealmPacketIn packet)
        {
            var channelName = packet.ReadCString();
            var targetName  = packet.ReadCString();

            ChannelMember senderMember, targetMember;
            var           chan = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, targetName, out senderMember, out targetMember);

            if (chan != null)
            {
                chan.SetMuted(senderMember, targetMember, true);
            }
        }
예제 #6
0
        public static void HandleOwnerChange(IRealmClient client, RealmPacketIn packet)
        {
            var channelName = packet.ReadCString();
            var newOwner    = packet.ReadCString();

            ChannelMember senderMember, targetMember;
            var           chan = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, newOwner, out senderMember, out targetMember);

            if (chan != null)
            {
                chan.MakeOwner(senderMember, targetMember);
            }
        }
예제 #7
0
        /// <summary>
        /// Handles a request of toggling the moderate mode of the channel
        /// </summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandleModerateRequest(IRealmClient client, RealmPacketIn packet)
        {
            string        channelName = packet.ReadCString();
            ChannelMember member;
            ChatChannel   chatChannel =
                ChatChannel.EnsurePresence((IUser)client.ActiveCharacter, channelName, out member);

            if (chatChannel == null)
            {
                return;
            }
            chatChannel.ToggleModerated(member);
        }
예제 #8
0
        /// <summary>Handles a request of unbanning a channel member</summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandleUnbanRequest(IRealmClient client, RealmPacketIn packet)
        {
            string        channelName = packet.ReadCString();
            string        targetName  = packet.ReadCString();
            ChannelMember member;
            ChatChannel   chatChannel =
                ChatChannel.EnsurePresence(client.ActiveCharacter, channelName, out member);

            if (chatChannel == null)
            {
                return;
            }
            chatChannel.SetBanned(member, targetName, false);
        }
예제 #9
0
        /// <summary>Handles a invite to channel packet</summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandleChannelInvite(IRealmClient client, RealmPacketIn packet)
        {
            string        channelName = packet.ReadCString();
            string        targetName  = packet.ReadCString();
            ChannelMember member;
            ChatChannel   chatChannel =
                ChatChannel.EnsurePresence((IUser)client.ActiveCharacter, channelName, out member);

            if (chatChannel == null)
            {
                return;
            }
            chatChannel.Invite(member, targetName);
        }
예제 #10
0
        /// <summary>Handles a request of muting a channel member</summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandleMuteRequest(IRealmClient client, RealmPacketIn packet)
        {
            string        channelName = packet.ReadCString();
            string        targetName  = packet.ReadCString();
            ChannelMember userMember;
            ChannelMember targetMember;
            ChatChannel   chatChannel = ChatChannel.EnsurePresence(client.ActiveCharacter, channelName,
                                                                   targetName, out userMember, out targetMember);

            if (chatChannel == null)
            {
                return;
            }
            chatChannel.SetMuted(userMember, targetMember, true);
        }
예제 #11
0
        /// <summary>Handles an incoming owner set request</summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandleOwnerChange(IRealmClient client, RealmPacketIn packet)
        {
            string        channelName = packet.ReadCString();
            string        targetName  = packet.ReadCString();
            ChannelMember userMember;
            ChannelMember targetMember;
            ChatChannel   chatChannel = ChatChannel.EnsurePresence((IUser)client.ActiveCharacter, channelName,
                                                                   targetName, out userMember, out targetMember);

            if (chatChannel == null)
            {
                return;
            }
            chatChannel.MakeOwner(userMember, targetMember);
        }
예제 #12
0
        /// <summary>Handles an incoming channel password change request</summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandlePasswordChange(IRealmClient client, RealmPacketIn packet)
        {
            string        str1 = packet.ReadCString();
            string        str2 = packet.ReadCString();
            ChannelMember member;
            ChatChannel   chan = ChatChannel.EnsurePresence((IUser)client.ActiveCharacter, str1, out member);

            if (chan != null)
            {
                if (!member.IsModerator)
                {
                    ChannelHandler.SendNotModeratorReply((IPacketReceiver)client, str1);
                }
                else
                {
                    chan.Password = str2;
                    ChannelHandler.SendPasswordChangedToEveryone(chan, client.ActiveCharacter.EntityId);
                }
            }
            else
            {
                ChannelHandler.SendNotOnChannelReply((IPacketReceiver)client, str1);
            }
        }