if (parameters.size() > 2)
reason = parameters[2];
- if (ServerInstance->ULine(dest->server))
+ if (dest->server->IsULine())
{
- user->WriteNumeric(ERR_NOPRIVILEGES, "%s :Cannot use an SA command on a u-lined client",user->nick.c_str());
+ user->WriteNumeric(ERR_NOPRIVILEGES, ":Cannot use an SA command on a u-lined client");
+ return CMD_FAILURE;
+ }
+
+ if (!channel->HasUser(dest))
+ {
+ user->WriteNotice("*** " + dest->nick + " is not on " + channel->name);
return CMD_FAILURE;
}
if (IS_LOCAL(dest))
{
channel->PartUser(dest, reason);
-
- Channel* n = ServerInstance->FindChan(parameters[1]);
- if (!n)
- {
- ServerInstance->SNO->WriteGlobalSno('a', user->nick+" used SAPART to make "+dest->nick+" part "+parameters[1]);
- return CMD_SUCCESS;
- }
- else
- {
- if (!n->HasUser(dest))
- {
- ServerInstance->SNO->WriteGlobalSno('a', user->nick+" used SAPART to make "+dest->nick+" part "+parameters[1]);
- return CMD_SUCCESS;
- }
- else
- {
- user->WriteNotice("*** Unable to make " + dest->nick + " part " + parameters[1]);
- return CMD_FAILURE;
- }
- }
+ ServerInstance->SNO->WriteGlobalSno('a', user->nick+" used SAPART to make "+dest->nick+" part "+channel->name);
}
return CMD_SUCCESS;