summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/modules/protocol/inspircd20.h25
-rw-r--r--modules/protocol/inspircd20.cpp32
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)