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