/* $ModDesc: Provides channel mode +j (join flood protection) */
-class joinfloodsettings
+class joinfloodsettings : public classbase
{
public:
ModeAction OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string ¶meter, bool adding)
{
+ joinfloodsettings* dummy;
+
if (adding)
{
char ndata[MAXBUF];
}
else
{
- if (!channel->GetExt("joinflood"))
+ if (!channel->GetExt("joinflood", dummy))
{
parameter = ConvToStr(njoins) + ":" +ConvToStr(nsecs);
joinfloodsettings *f = new joinfloodsettings(nsecs,njoins);
- channel->Extend("joinflood",(char*)f);
+ channel->Extend("joinflood", f);
channel->SetMode('j', true);
channel->SetModeParam('j', parameter.c_str(), true);
return MODEACTION_ALLOW;
}
else
{
- if (channel->GetExt("joinflood"))
+ if (channel->GetExt("joinflood", dummy))
{
- joinfloodsettings *f = (joinfloodsettings*)channel->GetExt("joinflood");
+ joinfloodsettings *f;
+ channel->GetExt("joinflood", f);
DELETE(f);
channel->Shrink("joinflood");
channel->SetMode('j', false);
{
if (chan)
{
- joinfloodsettings *f = (joinfloodsettings*)chan->GetExt("joinflood");
- if (f)
+ joinfloodsettings *f;
+ if (chan->GetExt("joinflood", f))
{
if (f->islocked())
{
virtual void OnUserJoin(userrec* user, chanrec* channel)
{
- joinfloodsettings *f = (joinfloodsettings*)channel->GetExt("joinflood");
- if (f)
+ joinfloodsettings *f;
+ if (channel->GetExt("joinflood",f))
{
f->addjoin();
if (f->shouldlock())
void OnChannelDelete(chanrec* chan)
{
- if (chan->GetExt("joinflood"))
+ joinfloodsettings *f;
+ if (chan->GetExt("joinflood",f))
{
- joinfloodsettings *f = (joinfloodsettings*)chan->GetExt("joinflood");
DELETE(f);
chan->Shrink("joinflood");
}