diff options
-rw-r--r-- | include/modules/protocol/inspircd20.h | 25 | ||||
-rw-r--r-- | modules/protocol/inspircd20.cpp | 32 |
2 files changed, 48 insertions, 9 deletions
diff --git a/include/modules/protocol/inspircd20.h b/include/modules/protocol/inspircd20.h index 391a0bc79..efaec22a5 100644 --- a/include/modules/protocol/inspircd20.h +++ b/include/modules/protocol/inspircd20.h @@ -203,6 +203,14 @@ class SVSHoldDel : public messages::SVSHoldDel void Send(const Anope::string &) override; }; +class SVSJoin : public messages::SVSJoin +{ + public: + using messages::SVSJoin::SVSJoin; + + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &key) override; +}; + class SVSLogin : public messages::SVSLogin { public: @@ -211,6 +219,23 @@ class SVSLogin : public messages::SVSLogin void Send(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; }; + +class SVSNick : public messages::SVSNick +{ + public: + using messages::SVSNick::SVSNick; + + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; + +class SVSPart : public messages::SVSPart +{ + public: + using messages::SVSPart::SVSPart; + + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &reason) override; +}; + class SWhois : public messages::SWhois { public: diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index 011ecfd13..381596ee6 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -17,7 +17,7 @@ * along with this program; if not, see see <http://www.gnu.org/licenses/>. */ -/* Dependencies: anope_protocol.rfc1459,anope_protocol.ts6,anope_protocol.hybrid,anope_protocol.bahamut */ +/* Dependencies: anope_protocol.rfc1459,anope_protocol.ts6 */ #include "module.h" #include "modules/sasl.h" @@ -25,8 +25,6 @@ #include "modules/chanserv/set.h" #include "modules/protocol/rfc1459.h" #include "modules/protocol/inspircd20.h" -#include "modules/protocol/bahamut.h" -#include "modules/protocol/hybrid.h" struct SASLUser { @@ -270,6 +268,11 @@ void inspircd20::senders::SVSHoldDel::Send(const Anope::string& nick) Uplink::Send(Config->GetClient("NickServ"), "SVSHOLD", nick); } +void inspircd20::senders::SVSJoin::Send(const MessageSource& source, User* u, const Anope::string& chan, const Anope::string& key) +{ + Uplink::Send(source, "SVSJOIN", u->GetUID(), chan); +} + void inspircd20::senders::SVSLogin::Send(const Anope::string& uid, const Anope::string& acc, const Anope::string& vident, const Anope::string& vhost) { Uplink::Send(Me, "METADATA", uid, "accountname", acc); @@ -292,6 +295,19 @@ void inspircd20::senders::SVSLogin::Send(const Anope::string& uid, const Anope:: saslusers.push_back(su); } +void inspircd20::senders::SVSNick::Send(User* u, const Anope::string& newnick, time_t ts) +{ + Uplink::Send("SVSNICK", u->GetUID(), newnick, ts); +} + +void inspircd20::senders::SVSPart::Send(const MessageSource& source, User* u, const Anope::string& chan, const Anope::string& reason) +{ + if (!reason.empty()) + Uplink::Send(source, "SVSPART", u->GetUID(), chan, reason); + else + Uplink::Send(source, "SVSPART", u->GetUID(), chan); +} + void inspircd20::senders::SWhois::Send(const MessageSource&, User *user, const Anope::string& swhois) { Uplink::Send(Me, "METADATA", user->GetUID(), "swhois", swhois); @@ -1298,11 +1314,6 @@ class ProtoInspIRCd20 : public Module rfc1459::senders::Privmsg sender_privmsg; rfc1459::senders::Quit sender_quit; - hybrid::senders::SVSJoin sender_svsjoin; - hybrid::senders::SVSPart sender_svspart; - - bahamut::senders::SVSNick sender_svsnick; - inspircd20::senders::Akill sender_akill; inspircd20::senders::AkillDel sender_akill_del; inspircd20::senders::MessageChannel sender_channel; @@ -1319,7 +1330,10 @@ class ProtoInspIRCd20 : public Module inspircd20::senders::SZLineDel sender_szline_del; inspircd20::senders::SVSHold sender_svshold; inspircd20::senders::SVSHoldDel sender_svsholddel; + inspircd20::senders::SVSJoin sender_svsjoin; inspircd20::senders::SVSLogin sender_svslogin; + inspircd20::senders::SVSNick sender_svsnick; + inspircd20::senders::SVSPart sender_svspart; inspircd20::senders::SWhois sender_swhois; inspircd20::senders::Topic sender_topic; inspircd20::senders::VhostDel sender_vhost_del; @@ -1413,8 +1427,8 @@ class ProtoInspIRCd20 : public Module , sender_szline_del(this, &ircd_proto) , sender_svshold(this) , sender_svsholddel(this) - , sender_svslogin(this) , sender_svsjoin(this) + , sender_svslogin(this) , sender_svsnick(this) , sender_svspart(this) , sender_swhois(this) |