Thanks!
Code: Select all
DLLFUNC int m_saname(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
aClient *acptr;
if (!IsSAdmin(sptr) && !IsULine(sptr))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
}
if (parc != 3)
{
sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "SANAME");
return 0;
}
if (!(acptr = find_person(parv[1], NULL)))
{
sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]);
return 0;
}
if (find_client(parv[2], NULL)) /* Collision */
{
sendto_one(sptr, err_str(ERR_NICKNAMEINUSE), me.name, parv[0], parv[1]);
return 0;
}
sendto_realops("%s used SANAME to make %s nick %s", sptr->name, parv[1],
parv[2]);
if (MyClient(acptr))
{
parv[0] = parv[1];
parv[1] = parv[2];
parv[2] = NULL;
sendto_one(acptr,
":%s %s %s :*** You were forced to change nick to %s", me.name,
IsWebTV(acptr) ? "PRIVMSG" : "NOTICE", acptr->name, parv[1]);
// (void)m_nick(acptr, acptr, 2, parv); <- Old, not working m_nick call
RunHook2(HOOKTYPE_LOCAL_NICKCHANGE, acptr, parv[2]);
}
else
sendto_one(acptr, ":%s SANAME %s %s", parv[0],
parv[1], parv[2]);
return 0;
}
Code: Select all
(void)strlcpy(acptr->name, parv[2], sizeof acptr->name);
(void)add_to_client_hash_table(parv[2], acptr);