summaryrefslogtreecommitdiff
path: root/modules/protocol/plexus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/plexus.cpp')
-rw-r--r--modules/protocol/plexus.cpp18
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);