Exemplo n.º 1
0
 private void handleUnban(BroadcastChatClient client, string channel, string target)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!server.Channels[channel].Clients.ContainsKey(client.Nick))
     {
         client.SendErrorNotInChannel(channel);
     }
     else if (!server.Channels[channel].Clients.ContainsKey(target))
     {
         client.SendErrorUserNotInChannel(channel, target);
     }
     else if (!server.Channels[channel].OperClients.ContainsKey(client.Nick))
     {
         client.SendErrorNotChanOper(channel, target);
     }
     else if (!server.Channels[channel].BannedClients.ContainsKey(target))
     {
         client.SendErrorUserAlreadyBanned(channel, target);
     }
     else
     {
         server.Channels[channel].SendUnban(client.Nick, target);
     }
 }
Exemplo n.º 2
0
 private void handleLeave(BroadcastChatClient client, string channel, string reason)
 {
     if (!client.Channels.ContainsKey(channel))
     {
         client.SendErrorNotInChannel(channel);
     }
     else if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else
     {
         server.Channels[channel].SendLeave(client.Nick, reason);
         client.Channels.Remove(channel);
     }
 }
Exemplo n.º 3
0
 private void handleTopic(BroadcastChatClient client, string channel, string newTopic)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!server.Channels[channel].Clients.ContainsKey(client.Nick))
     {
         client.SendErrorNotInChannel(channel);
     }
     else if (!server.Channels[channel].OperClients.ContainsKey(client.Nick))
     {
         client.SendErrorNotChanOper(channel, client.Nick);
     }
     else
     {
         server.Channels[channel].SendTopic(client, newTopic);
     }
 }
Exemplo n.º 4
0
 private void handleChanMsg(BroadcastChatClient client, string channel, string message)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!client.Channels.ContainsKey(channel))
     {
         client.SendErrorNotInChannel(channel);
     }
     else if (server.Channels[channel].BannedClients.ContainsKey(client.Nick))
     {
         client.SendErrorBanned(channel);
     }
     else
     {
         server.Channels[channel].SendChanMsg(client.Nick, message);
     }
 }
Exemplo n.º 5
0
 private void handleUserList(BroadcastChatClient client, string channel)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!client.Channels.ContainsKey(channel))
     {
         client.SendErrorNotInChannel(channel);
     }
     else
     {
         StringBuilder sb = new StringBuilder();
         foreach (string cl in server.Channels[channel].Clients.Keys)
         {
             sb.AppendFormat(server.Channels[channel].OperClients.ContainsKey(cl) ? "@{0} " : "{0} ", cl);
         }
         client.SendUserList(channel, sb.ToString());
     }
 }
Exemplo n.º 6
0
 private void handleBanList(BroadcastChatClient client, string channel)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!server.Channels[channel].Clients.ContainsKey(client.Nick))
     {
         client.SendErrorNotInChannel(channel);
     }
     else
     {
         StringBuilder sb = new StringBuilder();
         foreach (string nick in server.Channels[channel].BannedClients.Keys)
         {
             sb.AppendFormat("{0} ", nick);
         }
         client.SendBanList(channel, sb.ToString());
     }
 }
Exemplo n.º 7
0
 private void handleChanOper(BroadcastChatClient client, string channel, string mod, string target)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!server.Channels[channel].Clients.ContainsKey(client.Nick))
     {
         client.SendErrorNotInChannel(channel);
     }
     else if (!server.Channels[channel].OperClients.ContainsKey(client.Nick))
     {
         client.SendErrorNotChanOper(channel, client.Nick);
     }
     else if (mod.ToUpper() == "GIVE")
     {
         if (server.Channels[channel].OperClients.ContainsKey(target))
         {
             client.SendErrorAlreadyChanOper(channel, target);
         }
         else
         {
             server.Channels[channel].SendChanOperGive(client, target);
         }
     }
     else if (mod.ToUpper() == "TAKE")
     {
         if (!server.Channels[channel].OperClients.ContainsKey(target))
         {
             client.SendErrorNotChanOper(channel, target);
         }
         else
         {
             server.Channels[channel].SendChanOperTake(client, target);
         }
     }
     else
     {
         client.SendErrorExpected(mod.ToUpper(), "GIVE", "TAKE");
     }
 }
Exemplo n.º 8
0
 private void handleKick(BroadcastChatClient client, string channel, string kicked)
 {
     if (!server.Channels.ContainsKey(channel))
     {
         client.SendErrorNoChannel(channel);
     }
     else if (!server.Clients.ContainsKey(kicked))
     {
         client.SendErrorNoNick(kicked);
     }
     else if (!server.Channels[channel].Clients.ContainsKey(kicked))
     {
         client.SendErrorUserNotInChannel(channel, kicked);
     }
     else if (!server.Channels[channel].OperClients.ContainsKey(client.Nick))
     {
         client.SendErrorNotChanOper(channel, client.Nick);
     }
     else
     {
         server.Channels[channel].SendKick(client.Nick, server.Clients[kicked]);
     }
 }