]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_loadmodule.cpp
Add OnUserPreQuit event to allow modules to change quit messages (#1629).
[user/henk/code/inspircd.git] / src / coremods / core_loadmodule.cpp
index 09c0441988d9c70ce859431770db3ba53bb5b499..faecab2135cbdef966154cef295bfdb6301cd1a7 100644 (file)
@@ -33,12 +33,12 @@ class CommandLoadmodule : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User *user);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /LOADMODULE
  */
-CmdResult CommandLoadmodule::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandLoadmodule::Handle(User* user, const Params& parameters)
 {
        if (ServerInstance->Modules->Load(parameters[0]))
        {
@@ -58,10 +58,13 @@ CmdResult CommandLoadmodule::Handle (const std::vector<std::string>& parameters,
 class CommandUnloadmodule : public Command
 {
  public:
+       bool allowcoreunload;
+
        /** Constructor for unloadmodule.
         */
        CommandUnloadmodule(Module* parent)
-               : Command(parent,"UNLOADMODULE", 1)
+               : Command(parent, "UNLOADMODULE", 1)
+               , allowcoreunload(false)
        {
                flags_needed = 'o';
                syntax = "<modulename>";
@@ -72,13 +75,12 @@ class CommandUnloadmodule : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
-CmdResult CommandUnloadmodule::Handle(const std::vector<std::string>& parameters, User* user)
+CmdResult CommandUnloadmodule::Handle(User* user, const Params& parameters)
 {
-       if (!ServerInstance->Config->ConfValue("security")->getBool("allowcoreunload") &&
-               InspIRCd::Match(parameters[0], "core_*.so", ascii_case_insensitive_map))
+       if (!allowcoreunload && InspIRCd::Match(parameters[0], "core_*.so", ascii_case_insensitive_map))
        {
                user->WriteNumeric(ERR_CANTUNLOADMODULE, parameters[0], "You cannot unload core commands!");
                return CMD_FAILURE;
@@ -116,10 +118,16 @@ class CoreModLoadModule : public Module
        {
        }
 
-       Version GetVersion()
+       Version GetVersion() CXX11_OVERRIDE
        {
                return Version("Provides the LOADMODULE and UNLOADMODULE commands", VF_VENDOR|VF_CORE);
        }
+
+       void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
+       {
+               ConfigTag* tag = ServerInstance->Config->ConfValue("security");
+               cmdunloadmod.allowcoreunload = tag->getBool("allowcoreunload");
+       }
 };
 
 MODULE_INIT(CoreModLoadModule)