Primarily a chat filter, also censors content via API.
Copyright (c) 2023 monk
This command checks for
staff
priv and prevents staff ranked players from blocking and being blocked.
Stop incoming messages from a player, and outgoing messages from being seen by player. Also blocks private messages from blocked players. The block is enforced until the internally managed online players table purges the player who issued the block from the online players list, approx. 1 hour after they log out.
/block <player_name>
/unblock <player_name>
/unblock <>
(empty argument)
/unblock <*>
Disables a player from using public chat, does not mute private messaging. Applied to players by IP address, so any players currently online or alt accounts to join will be muted until the time expires. Can be used on offline players if they were online recently (approx 1 hour).
mute
priv)
/mute <playername> [<minutes>]
/unmute <playername>
blacklist
priv)/filter <blacklist>|<whitelist>|<delete>|<search> <string>
/filter whitelist word
/filter blacklist word
/filter delete word
/filter search word
/filter_save <whitelist>|<blacklist>
/filter_reload <mod_storage>|<file>
Overrides the default /msg
command to allow blocking private messages. Additionally, a "to: <player>
" message shows in the sender's chat when a private message is sent.
Player nametag in chat default format is: <PlayerName>
.
Supported tags from mods if available: Ranks, Factions, Exp.
The minetest.conf setting must be true, and pass required values.
filterplus_ranks
: {Rank}
requires a string and ColorStringfilterplus_factions
: [Faction]
requires a string and ColorString filterplus_exp
: (Exp)
requires integer or stringTag order is: {Rank}[Faction](Exp)<PlayerName> message
Not limited to chat messages. Strings from any mod can be checked against filter api:
filterplus_api.check_word(string)
This will return with the string, censored or not, with boolean:
return "This **** is censored", true
return "This word is not censored", false
UTF-16 or non-ASCII characters
Adding words by command containing UTF-8 characters are saved to mod_storage as UTF reference codes (\u00f). This will cause many false-positives. Workaround this by adding these words to the *list.lua files, then run
/filter_reload
Pattern matches from blacklist are ordered
Filter lists are sorted by numerical index, not alphabetically. This allows for word priority when list checking, for example, if
luck
andluk
are blacklisted, sayinglucky
will catch the former first.If
tex
is a blacklisted word, all instances containingtex
are filtered, such astext
,context
,contextual
, etc. This means blacklisting these branch words is redundant, root words should be sufficient.
Current Version 0.1.5