示例#1
0
        /// <summary>Handles an incoming channel list request</summary>
        /// <param name="client">the client the incoming packet belongs to</param>
        /// <param name="packet">the full packet</param>
        public static void HandleListChannel(IRealmClient client, RealmPacketIn packet)
        {
            string      str  = packet.ReadCString();
            ChatChannel chan = ChatChannelGroup.RetrieveChannel((IUser)client.ActiveCharacter, str);

            if (chan != null)
            {
                ChannelHandler.SendChannelList((IPacketReceiver)client, chan);
            }
            else
            {
                ChannelHandler.SendNotOnChannelReply((IPacketReceiver)client, str);
            }
        }
示例#2
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);
            }
        }