#include "inspircd.h"
-/* $ModDesc: Provides support for hiding channels with user mode +I */
-
/** Handles user mode +I
*/
class HideChans : public SimpleUserModeHandler
public:
ModuleHideChans() : hm(this)
{
- if (!ServerInstance->Modes->AddMode(&hm))
- throw ModuleException("Could not add new modes!");
- Implementation eventlist[] = { I_OnWhoisLine, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, 2);
- OnRehash(NULL);
}
- virtual ~ModuleHideChans()
- {
- }
-
- virtual Version GetVersion()
+ Version GetVersion() CXX11_OVERRIDE
{
return Version("Provides support for hiding channels with user mode +I", VF_VENDOR);
}
- virtual void OnRehash(User* user)
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
- ConfigReader conf;
- AffectsOpers = conf.ReadFlag("hidechans", "affectsopers", 0);
+ AffectsOpers = ServerInstance->Config->ConfValue("hidechans")->getBool("affectsopers");
}
- ModResult OnWhoisLine(User* user, User* dest, int &numeric, std::string &text)
+ ModResult OnWhoisLine(User* user, User* dest, int &numeric, std::string &text) CXX11_OVERRIDE
{
/* always show to self */
if (user == dest)
return MOD_RES_PASSTHRU;
/* don't touch if -I */
- if (!dest->IsModeSet('I'))
+ if (!dest->IsModeSet(hm))
return MOD_RES_PASSTHRU;
/* if it affects opers, we don't care if they are opered */
}
};
-
MODULE_INIT(ModuleHideChans)