#include "inspircd.h"
-/* $ModDesc: Provides channel mode +L (limit redirection) and usermode +L (no forced redirection) */
-
/** Handle channel mode +L
*/
class Redirect : public ModeHandler
{
Redirect re;
AntiRedirect re_u;
+ ChanModeReference limitmode;
bool UseUsermode;
public:
ModuleRedirect()
: re(this)
, re_u(this)
+ , limitmode(this, "limit")
{
}
if (UseUsermode)
{
/* Log noting that this breaks compatability. */
- ServerInstance->Logs->Log("m_redirect", LOG_DEFAULT, "REDIRECT: Enabled usermode +L. This breaks linking with servers that do not have this enabled. This is disabled by default in the 2.0 branch but will be enabled in the next version.");
+ ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "REDIRECT: Enabled usermode +L. This breaks linking with servers that do not have this enabled. This is disabled by default in the 2.0 branch but will be enabled in the next version.");
/* Try to add the usermode */
ServerInstance->Modules->AddService(re_u);
}
-
- Implementation eventlist[] = { I_OnUserPreJoin };
- ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
ModResult OnUserPreJoin(LocalUser* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven) CXX11_OVERRIDE
{
if (chan)
{
- if (chan->IsModeSet(re) && chan->IsModeSet('l'))
+ if (chan->IsModeSet(re) && chan->IsModeSet(limitmode))
{
- if (chan->GetUserCounter() >= ConvToInt(chan->GetModeParameter('l')))
+ if (chan->GetUserCounter() >= ConvToInt(chan->GetModeParameter(limitmode)))
{
std::string channel = chan->GetModeParameter(&re);