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); } }
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"); } }
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); } }
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]); } }