/// <summary>
 /// A client requested unban of another client
 /// </summary>
 /// <param name="me"></param>
 /// <param name="target"></param>
 void c_UnbanRequest(ChatClient me, Common.ChatClientWrapper target)
 {
     if (me.PermLevel < 2)
     {
         me.SendError("no permissions");
         return;
     }
     string targetUID = target.UniqueID;
     Common.ChatClientWrapper targ = null;
     foreach (Common.ChatClientWrapper cc in bans)
         if (cc.UniqueID == targetUID)
             targ = cc;
     if (targ == null)
         me.SendError("invalid client");
     else
     {
         bans.Remove(targ);
         UnbanEvent.Invoke(me, targ);
     }
 }
        /// <summary>
        /// A client-side Kick request
        /// </summary>
        /// <param name="me"></param>
        /// <param name="target"></param>
        void c_KickRequest(ChatClient me, Common.ChatClientMessageWrapper target)
        {
            if(me.PermLevel < 1) {
                me.SendError("no permissions");
                return;
            }

            string targetUID = target.UniqueID;
            ChatClient targ = null;
            foreach (ChatClient cc in clients)
                if (cc.UniqueID == targetUID)
                    targ = cc;
            if (targ == null)
                me.SendError("invalid client");
            else
                Kick(targ, target.Message);
        }
 /// <summary>
 /// Client requests Private Message to another client
 /// </summary>
 /// <param name="me"></param>
 /// <param name="target"></param>
 void c_PrivateMessageEvent(ChatClient me, Common.ChatClientMessageWrapper target)
 {
     string targetUID = target.UniqueID;
     ChatClient targ = null;
     foreach (ChatClient cc in clients)
         if (cc.UniqueID == targetUID)
             targ = cc;
     if (targ == null)
         me.SendError("invalid client");
     else
     {
         Common.ChatClientMessageWrapper ccmw = new Common.ChatClientMessageWrapper(me.GetBase(), target.Message);
         targ.PrivateMessage(ccmw);
         PrivateMessageEvent.Invoke(me, targ);
     }
 }
 /// <summary>
 /// Client requests ban-list
 /// </summary>
 /// <param name="me"></param>
 void c_BanListRequest(ChatClient me)
 {
     if (me.PermLevel < 2) {
         me.SendError("no permissions");
         return;
     }
     Common.ChatClientListWrapper send = new Common.ChatClientListWrapper();
     send.List.AddRange(bans);
     me.SendbanList(send);
 }