diff options
Diffstat (limited to 'modules/protocol/plexus.cpp')
-rw-r--r-- | modules/protocol/plexus.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index fd6379fc9..fa5f88f5a 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -27,7 +27,7 @@ IRCDVar myIrcd[] = { 0, /* Join 2 Message */ 1, /* Chan SQlines */ 0, /* Quit on Kill */ - 0, /* vidents */ + 1, /* vidents */ 1, /* svshold */ 1, /* time stamp on mode */ 1, /* UMODE */ @@ -159,6 +159,22 @@ class PlexusProto : public IRCDProto send_cmd(Config->Numeric, "ENCAP %s SVSNICK %s %ld %s %ld", u->server->GetName().c_str(), u->GetUID().c_str(), static_cast<long>(u->timestamp), newnick.c_str(), static_cast<long>(when)); } + void SendVhostDel(User *u) + { + BotInfo *bi = findbot(Config->HostServ); + if (u->HasMode(UMODE_CLOAK)) + u->RemoveMode(bi, UMODE_CLOAK); + else + this->SendVhost(u, u->GetIdent(), u->chost); + } + + void SendVhost(User *u, const Anope::string &ident, const Anope::string &host) + { + if (!ident.empty()) + send_cmd(Config->Numeric, "ENCAP * CHGIDENT %s %s", u->nick.c_str(), ident.c_str()); + send_cmd(Config->Numeric, "ENCAP * CHGHOST %s %s", u->nick.c_str(), host.c_str()); + } + void SendConnect() { plexus_cmd_pass(Config->Uplinks[CurrentUplink]->password); |