X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fuid.cpp;h=91c9f3ca88fd27475e605ebecaf48a1a3ed338c4;hb=02497bfa999da26c19a92d8620c35bb97f1da711;hp=01465670a4c1efc6b22ab175f9e8dc18ac3eb9d3;hpb=da29af8cba49d51e53d6e68237ccbf6370b6dd1f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/uid.cpp b/src/modules/m_spanningtree/uid.cpp index 01465670a..91c9f3ca8 100644 --- a/src/modules/m_spanningtree/uid.cpp +++ b/src/modules/m_spanningtree/uid.cpp @@ -24,6 +24,7 @@ #include "utils.h" #include "treeserver.h" +#include "remoteuser.h" CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vector& params) { @@ -49,12 +50,8 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorWriteFrom(collideswith, "NICK %s", collideswith->uuid.c_str()); - collideswith->WriteNumeric(ERR_NICKNAMEINUSE, collideswith->nick, "Nickname overruled."); - - // Clear the bit before calling User::ChangeNick() to make it NOT run the OnUserPostNick() hook - collideswith->registered &= ~REG_NICK; - collideswith->ChangeNick(collideswith->uuid); + LocalUser* const localuser = static_cast(collideswith); + localuser->OverruleNick(); } else if (collideswith) { @@ -73,7 +70,7 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorUsers->clientlist[params[2]] = _new; _new->nick = params[2]; _new->host = params[3]; @@ -97,7 +94,7 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorGetNumParams(true)) + if (mh->NeedsParam(true)) { if (paramptr >= params.size() - 1) throw ProtocolException("Out of parameters while processing modes"); @@ -165,6 +162,6 @@ CommandUID::Builder::Builder(User* user) push(user->ident); push(user->GetIPString()); push_int(user->signon); - push('+').push_raw(user->FormatModes(true)); + push(user->GetModeLetters(true)); push_last(user->fullname); }