diff options
author | Sadie Powell <sadie@witchery.services> | 2022-12-31 21:55:05 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2022-12-31 21:55:05 +0000 |
commit | b64dc09bd2c717222ba90f6f5950b2ee3a26a9ea (patch) | |
tree | 501e46df860297691aaded0fca7619c4ac444251 /modules/protocol/inspircd3.cpp | |
parent | fee60c8e064815847662bfce9c421fc9ad7109a0 (diff) |
Fix marking services pseudoclients as an oper on InspIRCd.
The bot user needs to be marked as introduced in order to send an
oper type.
Diffstat (limited to 'modules/protocol/inspircd3.cpp')
-rw-r--r-- | modules/protocol/inspircd3.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/protocol/inspircd3.cpp b/modules/protocol/inspircd3.cpp index e370db454..940bb8f83 100644 --- a/modules/protocol/inspircd3.cpp +++ b/modules/protocol/inspircd3.cpp @@ -280,8 +280,16 @@ class InspIRCd3Proto : public IRCDProto { Anope::string modes = "+" + u->GetModes(); UplinkSocket::Message(Me) << "UID " << u->GetUID() << " " << u->timestamp << " " << u->nick << " " << u->host << " " << u->host << " " << u->GetIdent() << " 0.0.0.0 " << u->timestamp << " " << modes << " :" << u->realname; + if (modes.find('o') != Anope::string::npos) + { + // Mark as introduced so we can send an oper type. + BotInfo *bi = BotInfo::Find(u->nick, true); + if (bi) + bi->introduced = true; + UplinkSocket::Message(u) << "OPERTYPE :service"; + } } void SendServer(const Server *server) anope_override |