Our server pr0vider carried out maintenance on 15 January 2020 but it corrupted some files in the process. If you notice anything out of the ordinary (partial files, pages not loading, that kind of shit) then let us know at:

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.