/* $ModDesc: Implements extban +b r: - realname (gecos) bans */
-class ModuleNickBan : public Module
+class ModuleGecosBan : public Module
{
private:
public:
- ModuleNickBan(InspIRCd* Me) : Module(Me)
+ ModuleGecosBan(InspIRCd* Me) : Module(Me)
{
Implementation eventlist[] = { I_OnUserPreJoin, I_On005Numeric };
ServerInstance->Modules->Attach(eventlist, this, 2);
}
- virtual ~ModuleNickBan()
+ virtual ~ModuleGecosBan()
{
}
if (c->IsExtBanned(user->fullname, 'r'))
{
- // XXX: send a numeric here
- user->WriteServ("NOTICE "+std::string(user->nick)+" :*** Cannot join " + c->name + ", as you match a ban");
+ user->WriteNumeric(ERR_BANNEDFROMCHAN, "%s %s :Cannot join channel (You're banned)", user->nick.c_str(), c->name.c_str());
return 1;
}
virtual void On005Numeric(std::string &output)
{
- if (output.find(" EXTBAN=:") == std::string::npos)
- output.append(" EXTBAN=:r");
- else
- output.insert(output.find(" EXTBAN=:") + 9, "r");
+ ServerInstance->AddExtBanChar('r');
}
};
-MODULE_INIT(ModuleNickBan)
+MODULE_INIT(ModuleGecosBan)