The expiration stuff is a lil' hacky because there's no "tick" in Unreal. So it only checks for expiration on the PRE*MSG hooks (pre user and channel messages) as well as on a module command (like one of the below examples). These expirations are propagated to other servers. Also, they store it in a ModData struct so it persists through a rehash without the need for a .db file. ;] 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 work pretty similar.
Example config block:
Code: Select all
operclass netadmin-textshun {
parent netadmin;
privileges {
textshun;
};
};
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 expiration
- /tline 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:Lines
- /ts help => Show built-in help
Get it here.