Enables privileged 0pers to drop messages based on nick and body regexes (T-Lines
), similar to badwords and spamfilter but more specific. It only supports (PCRE) regexes because regular wildcards seem ineffective to me, fucken deal w/ it. ;] Also, you can't have spaces (due to how IRC works) so you'll have to use \s
and shit. Unreal creates a case-insensitive match so no worries there, it also tells you if you fucked up your regex (and what obv). Only opers with the new operpriv textshun
will be able to use it, although all others will get the notices since these T-Lines
are netwerk wide bruh. You'll also get a server notice for when a T-Line is matched. Servers, U-Lines and opers are exempt for obvious raisins.
Expiring shuns is done with an EVENT
thingy in Unreal, which is set to run every 10 seconds. This means if you set a shun for 5 seconds (why would you anyways?) it may not expire after eggzacktly 5 seconds. ;] When no expiration is specified the value in set::default-bantime
is used. Every server checks the expirations themselves. =] Also, they store it in a ModData
struct so it persists through a rehash without the need for a .db
fiel. ;] Furthermore, they sync their known T-Lines
upon server linkage. =]] Other lines such as G-Lines, Z-Lines are also stored in memory and get resynced during a link so these are pretty similar aye.
Config block:
operclass netadmin-textshun {
parent netadmin;
permissions {
textshun;
};
};
Syntax:
TEXTSHUN <ADD/DEL> <nickrgx> <bodyrgx> [expire] <reason>
Also supports the aliases TS
and TLINE
. =]
Examples:
TLINE add guest.+ h[o0]+m[o0]+ 0 nope
=> All...TEXTSHUN add guest.+ h[o0]+m[o0]+ nope
=> ...of...TS del guest.+ .+
=> ...these add/delete the same T-Line, with no expirationTLINE add guest.+ h[o0]+m[o0]+ 3600 ain't gonna happen
=> Add a T-Line that expires in an hour =]TLINE add guest.+ h[o0]+m[o0]+ 1h ain't gonna happen
=> Ditto ;];]TLINE
=> Show all T-LinesTS halp
=> Show built-in halpThe nick regex is matched against both nick!user@realhost
and nick!user@vhost
masks. The timestring shit like 1h
supports up to weeks (so you can't do 1y
).