- if (!channel->ServerKickUser(dest, reason, true, servername))
- delete channel;
-
- Channel* n = ServerInstance->FindChan(parameters[1]);
- if (!n)
- {
- ServerInstance->SNO->WriteToSnoMask('A', std::string(user->nick)+" SAKICKed "+dest->nick+" on "+parameters[0]);
- return CMD_SUCCESS;
- }
- else
- {
- if (!n->HasUser(dest))
- {
- ServerInstance->SNO->WriteToSnoMask('A', std::string(user->nick)+" SAKICKed "+dest->nick+" on "+parameters[0]);
- return CMD_SUCCESS;
- }
- else
- {
- user->WriteServ("NOTICE %s :*** Unable to kick %s from %s",user->nick.c_str(), dest->nick.c_str(), parameters[0].c_str());
- return CMD_FAILURE;
- }
- }
- }
- else
- {
- ServerInstance->SNO->WriteToSnoMask('A', std::string(user->nick)+" sent remote SAKICK to kick "+dest->nick+" from "+parameters[0]);
+ // Target is on this server, kick them and send the snotice
+ channel->KickUser(ServerInstance->FakeClient, dest, reason);
+ ServerInstance->SNO->WriteGlobalSno('a', user->nick + " SAKICKed " + dest->nick + " on " + channel->name);