Skip to content

Commit 5f0ac82

Browse files
committed
Added bypass-usernames to CapsFilter
1 parent 11c12a2 commit 5f0ac82

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/main/java/net/voxelarc/allaychat/filter/CapsFilter.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ public class CapsFilter implements ChatFilter {
1414

1515
private int maxCaps = 3;
1616
private boolean enabled = true;
17+
private boolean bypassUsernames = false;
1718

1819
private Component blockedMessage;
1920

2021
@Override
2122
public void onEnable() {
2223
enabled = plugin.getFilterConfig().getBoolean("caps.enabled", true);
24+
bypassUsernames = plugin.getFilterConfig().getBoolean("caps.bypass-usernames", false);
2325
maxCaps = plugin.getFilterConfig().getInt("caps.max-caps", 3);
2426
blockedMessage = ChatUtils.format(plugin.getFilterConfig().getString("caps.message"));
2527
}
@@ -29,6 +31,22 @@ public boolean checkMessage(Player player, String message) {
2931
if (!enabled) return false;
3032
if (player.hasPermission("allaychat.bypass.caps")) return false;
3133

34+
if (bypassUsernames) {
35+
String[] split = message.split(" ");
36+
int totalPlayerNameCaps = 0;
37+
for (String msg : split) {
38+
if (plugin.getPlayerManager().getAllPlayers().stream().noneMatch(msg::equals)) continue;
39+
totalPlayerNameCaps += capsCount(msg);
40+
}
41+
42+
if (capsCount(message) - totalPlayerNameCaps >= maxCaps) {
43+
ChatUtils.sendMessage(player, blockedMessage);
44+
return true;
45+
}
46+
47+
return false;
48+
}
49+
3250
if (capsCount(message) >= maxCaps) {
3351
ChatUtils.sendMessage(player, blockedMessage);
3452
return true;

src/main/resources/filter.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ caps:
3232
enabled: false
3333
max-caps: 5 # the maximum number of caps in a message
3434
message: "<prefix> <red>You are using too much caps."
35+
bypass-usernames: false # should we allow caps if it's in a player's name
3536

3637
regex:
3738
enabled: true

0 commit comments

Comments
 (0)