]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cap.cpp
Remove the -Dssize_t declaration now its typedeffed.
[user/henk/code/inspircd.git] / src / modules / m_cap.cpp
index 160c7a9c92105903a119f7f054be018cbdf088ad..3373f7c3f762ea0c3e63f66deaf60bec12fb6bee 100644 (file)
@@ -36,9 +36,10 @@ class CommandCAP : public Command
 {
  public:
        LocalIntExt reghold;
-       CommandCAP (InspIRCd* Instance, Module* mod) : Command(Instance, mod, "CAP", 0, 1, true),
+       CommandCAP (Module* mod) : Command(mod, "CAP", 1),
                reghold("CAP_REGHOLD", mod)
        {
+               works_before_reg = true;
        }
 
        CmdResult Handle (const std::vector<std::string> &parameters, User *user)
@@ -47,7 +48,7 @@ class CommandCAP : public Command
 
                if (subcommand == "REQ")
                {
-                       CapData Data;
+                       CapEvent Data(creator, "cap_req");
 
                        Data.type = subcommand;
                        Data.user = user;
@@ -67,8 +68,7 @@ class CommandCAP : public Command
                        }
 
                        reghold.set(user, 1);
-                       Event event((char*) &Data, this->creator, "cap_req");
-                       event.Send(this->ServerInstance);
+                       Data.Send();
 
                        if (Data.ack.size() > 0)
                        {
@@ -88,15 +88,14 @@ class CommandCAP : public Command
                }
                else if ((subcommand == "LS") || (subcommand == "LIST"))
                {
-                       CapData Data;
+                       CapEvent Data(creator, subcommand == "LS" ? "cap_ls" : "cap_list");
 
                        Data.type = subcommand;
                        Data.user = user;
                        Data.creator = this->creator;
 
                        reghold.set(user, 1);
-                       Event event((char*) &Data, this->creator, subcommand == "LS" ? "cap_ls" : "cap_list");
-                       event.Send(this->ServerInstance);
+                       Data.Send();
 
                        std::string Result;
                        if (Data.wanted.size() > 0)
@@ -108,15 +107,14 @@ class CommandCAP : public Command
                }
                else if (subcommand == "CLEAR")
                {
-                       CapData Data;
+                       CapEvent Data(creator, "cap_clear");
 
                        Data.type = subcommand;
                        Data.user = user;
                        Data.creator = this->creator;
 
                        reghold.set(user, 1);
-                       Event event((char*) &Data, this->creator, "cap_clear");
-                       event.Send(this->ServerInstance);
+                       Data.Send();
 
                        std::string Result = irc::stringjoiner(" ", Data.ack, 0, Data.ack.size() - 1).GetJoined();
                        user->WriteServ("CAP * ACK :%s", Result.c_str());
@@ -134,8 +132,8 @@ class ModuleCAP : public Module
 {
        CommandCAP cmd;
  public:
-       ModuleCAP(InspIRCd* Me)
-               : Module(Me), cmd(Me, this)
+       ModuleCAP()
+               : cmd(this)
        {
                ServerInstance->AddCommand(&cmd);
                Extensible::Register(&cmd.reghold);