/* $ModDesc: Provides support for ircu style usermode +d (deaf to channel messages and channel notices) */
/* $ModDesc: Provides support for ircu style usermode +d (deaf to channel messages and channel notices) */
@@ -31,6+31,7 @@ class User_d : public ModeHandler
{
if (!dest->IsModeSet('d'))
{
{
if (!dest->IsModeSet('d'))
{
+ dest->WriteServ("NOTICE %s :*** You have enabled usermode +d, deaf mode. This mode means you WILL NOT receive any messages from any channels you are in. If you did NOT mean to do this, use /mode %s -d.", dest->nick, dest->nick);
dest->SetMode('d',true);
return MODEACTION_ALLOW;
}
dest->SetMode('d',true);
return MODEACTION_ALLOW;
}
@@ -52,10+53,11 @@ class ModuleDeaf : public Module
User_d* m1;
public:
ModuleDeaf(InspIRCd* Me)
User_d* m1;
public:
ModuleDeaf(InspIRCd* Me)
- : Module::Module(Me)
+ : Module(Me)
{
m1 = new User_d(ServerInstance);
{
m1 = new User_d(ServerInstance);
- ServerInstance->AddMode(m1, 'd');
+ if (!ServerInstance->AddMode(m1, 'd'))
+ throw ModuleException("Could not add new modes!");
}
void Implements(char* List)
}
void Implements(char* List)
@@ -94,11+96,11 @@ class ModuleDeaf : public Module
for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
{
for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
{
- if (IS_LOCAL(i->second))
+ if (IS_LOCAL(i->first))
{
{
- if (i->second->IsModeSet('d'))
+ if (i->first->IsModeSet('d'))
{
{
- exempt_list[i->second] = i->second;
+ exempt_list[i->first] = i->first->nick;
}
}
}
}
}
}
@@ -106,7+108,7 @@ class ModuleDeaf : public Module