mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-08-06 20:43:11 +00:00
Implement regex-based nickname blacklist
Adds `nick-blacklist` list to config which takes phrases or regexes. Users with essentials.nick.blacklist.bypass can bypass the blacklist.
This commit is contained in:
parent
2502f5e6f2
commit
93d36779f0
5 changed files with 40 additions and 0 deletions
|
@ -35,6 +35,7 @@ import java.util.Locale;
|
|||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Pattern;
|
||||
|
@ -555,6 +556,7 @@ public class Settings implements net.ess3.api.ISettings {
|
|||
isWaterSafe = _isWaterSafe();
|
||||
isSafeUsermap = _isSafeUsermap();
|
||||
logCommandBlockCommands = _logCommandBlockCommands();
|
||||
nickBlacklist = _getNickBlacklist();
|
||||
}
|
||||
|
||||
void _lateLoadItemSpawnBlacklist() {
|
||||
|
@ -1588,4 +1590,25 @@ public class Settings implements net.ess3.api.ISettings {
|
|||
public boolean logCommandBlockCommands() {
|
||||
return logCommandBlockCommands;
|
||||
}
|
||||
|
||||
private Set<Predicate<String>> nickBlacklist;
|
||||
|
||||
private Set<Predicate<String>> _getNickBlacklist() {
|
||||
Set<Predicate<String>> blacklist = new HashSet<>();
|
||||
|
||||
config.getStringList("nick-blacklist").forEach(entry -> {
|
||||
try {
|
||||
blacklist.add(Pattern.compile(entry).asPredicate());
|
||||
} catch (PatternSyntaxException e) {
|
||||
logger.warning("Invalid nickname blacklist regex: " + entry);
|
||||
}
|
||||
});
|
||||
|
||||
return blacklist;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Predicate<String>> getNickBlacklist() {
|
||||
return nickBlacklist;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue