repeatprot.md 2.0 KB

[UNC] repeatprot

Sometimes there are faggots who spam the shit out of you, either through NOTICE, PRIVMSG, CTCP and/or INVITE commands. This module will GZ-Line/kill/block their ass if they do. Other than specifying the triggers and exceptions, you can tweak the action a lil' bit (more on that bel0w ;]).

The module will keep track of people's last and first to last messages, so it catches people who alternate their spam too (or bots). =] Also, channels are excluded as they probably have something better in place (like +C to disable CTCP in general, or +f for more fine-grained flood control). Colours and markup are also stripped prior to running the checks.

Any oper with the SNO_EYES snomask set (/umode +s +e) will get notices from the module. These include trigger type, nick, body and action.

There's also one built-in exception, namely sending to U-Lines. First of all they should have their own anti-abuse systems in place. Secondly, sometimes people forget which exact password they used so they have to try multiple times.

Config block:

repeatprot {
    triggers {
        notice;
        //privmsg;
        //ctcp;
        //invite;
    };
    exceptions {
        nick!user@host;
        *!gottem@*;
        ayy!*@*;
    };

    timespan 2m; // Only keep track of commands sent over this period of time, accepts formats like 50, 1h5m, etc (0 for always, which is also the default)
    action block; // Default = gzline
    //action kill;
    //action gzline;
    //action gline;
    banmsg "Nice spam m8"; // This is also the default message
    showblocked 1; // Display the banmsg above to the spammer when action is block
    //tkltime 60; // How long to G(Z)-Line for, accepts formats like 50, 1h5m, etc (default = 60 seconds)
    threshold 3; // After how many attempts the action kicks in (default = 3)
};

You need at least one trigger obviously. The exception masks must match *!*@*, so should be a full nick!ident@host mask m9. The hostname used should match the real host (or IP) and not a cloaked one.