diff options
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
-rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index a7f1ae66c..1a7531074 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -999,7 +999,18 @@ int TreeSocket::DoCollision(userrec *u, time_t remotets, const char *remoteident * have 928AAAB's nick set to that. * -- w00t */ - this->WriteLine(std::string(":")+this->Instance->Config->ServerName+" SVSNICK "+remoteuid+" " + remoteuid); + userrec *remote = this->Instance->FindUUID(remoteuid); + + if (remote) + { + /* buh.. nick change collide. force change their nick. */ + remote->ForceNickChange(remote->uuid); + } + else + { + /* user has not been introduced yet, just inform their server */ + this->WriteLine(std::string(":")+this->Instance->Config->ServerName+" SVSNICK "+remoteuid+" " + remoteuid); + } if (!bChangeRemote) return 2; |