X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_cap.cpp;h=2c2178a187bce3c15bdd6ecc6ac3762635de2203;hb=a71f34e4b17420cacc4a50c5af64fe15811a8148;hp=9e074b21947fc1d05a929933d5bc451a2f191df0;hpb=db0e78c5d2e0998591b274c027fef26e1ac6ce6a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_cap.cpp b/src/modules/m_cap.cpp index 9e074b219..2c2178a18 100644 --- a/src/modules/m_cap.cpp +++ b/src/modules/m_cap.cpp @@ -39,10 +39,13 @@ CAP END */ class CommandCAP : public Command { + Events::ModuleEventProvider capevprov; + public: LocalIntExt reghold; CommandCAP (Module* mod) : Command(mod, "CAP", 1), - reghold("CAP_REGHOLD", mod) + capevprov(mod, "event/cap"), + reghold("CAP_REGHOLD", ExtensionItem::EXT_USER, mod) { works_before_reg = true; } @@ -70,17 +73,17 @@ class CommandCAP : public Command } reghold.set(user, 1); - Data.Send(); + FOREACH_MOD_CUSTOM(capevprov, GenericCap, OnCapEvent, (Data)); if (Data.ack.size() > 0) { - std::string AckResult = irc::stringjoiner(Data.ack).GetJoined(); + std::string AckResult = irc::stringjoiner(Data.ack); user->WriteCommand("CAP", "ACK :" + AckResult); } if (Data.wanted.size() > 0) { - std::string NakResult = irc::stringjoiner(Data.wanted).GetJoined(); + std::string NakResult = irc::stringjoiner(Data.wanted); user->WriteCommand("CAP", "NAK :" + NakResult); } } @@ -93,9 +96,9 @@ class CommandCAP : public Command CapEvent Data(creator, user, subcommand == "LS" ? CapEvent::CAPEVENT_LS : CapEvent::CAPEVENT_LIST); reghold.set(user, 1); - Data.Send(); + FOREACH_MOD_CUSTOM(capevprov, GenericCap, OnCapEvent, (Data)); - std::string Result = irc::stringjoiner(Data.wanted).GetJoined(); + std::string Result = irc::stringjoiner(Data.wanted); user->WriteCommand("CAP", subcommand + " :" + Result); } else if (subcommand == "CLEAR") @@ -103,9 +106,9 @@ class CommandCAP : public Command CapEvent Data(creator, user, CapEvent::CAPEVENT_CLEAR); reghold.set(user, 1); - Data.Send(); + FOREACH_MOD_CUSTOM(capevprov, GenericCap, OnCapEvent, (Data)); - std::string Result = irc::stringjoiner(Data.ack).GetJoined(); + std::string Result = irc::stringjoiner(Data.ack); user->WriteCommand("CAP", "ACK :" + Result); } else