Refactory filter method naming

This commit is contained in:
Aust1n46 2024-05-18 05:37:10 -05:00
parent d36fca277d
commit 62d8c28c5b
11 changed files with 112 additions and 45 deletions

View File

@ -32,7 +32,7 @@ public class Me extends UniversalCommand {
if (args[x].length() > 0) if (args[x].length() > 0)
msg += " " + args[x]; msg += " " + args[x];
if (sender instanceof Player && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) { if (sender instanceof Player && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.filterChat(msg);
} }
if (sender.hasPermission("venturechat.color.legacy")) { if (sender.hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);

View File

@ -83,7 +83,7 @@ public class Message extends PlayerCommand {
msg += " " + args[r]; msg += " " + args[r];
} }
if (mcp.isFilter()) { if (mcp.isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.filterChat(msg);
} }
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);
@ -182,7 +182,7 @@ public class Message extends PlayerCommand {
} }
String msg = msgBuilder.toString(); String msg = msgBuilder.toString();
if (mcp.isFilter()) { if (mcp.isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.filterChat(msg);
} }
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);

View File

@ -249,7 +249,7 @@ public class Party extends PlayerCommand {
msg += " " + args[x]; msg += " " + args[x];
} }
if (mcp.isFilter()) { if (mcp.isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.filterChat(msg);
} }
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);

View File

@ -71,7 +71,7 @@ public class Reply extends PlayerCommand {
for (int r = 0; r < args.length; r++) for (int r = 0; r < args.length; r++)
msg += " " + args[r]; msg += " " + args[r];
if (mcp.isFilter()) { if (mcp.isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.filterChat(msg);
} }
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);
@ -128,7 +128,7 @@ public class Reply extends PlayerCommand {
} }
String msg = msgBuilder.toString(); String msg = msgBuilder.toString();
if (mcp.isFilter()) { if (mcp.isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.filterChat(msg);
} }
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);

View File

@ -100,7 +100,7 @@ public class ChatListener implements Listener {
String send = ""; String send = "";
String spy = ""; String spy = "";
if (ventureChatPlayer.isFilter()) { if (ventureChatPlayer.isFilter()) {
filtered = formatService.FilterChat(filtered); filtered = formatService.filterChat(filtered);
} }
if (ventureChatPlayer.getPlayer().hasPermission("venturechat.color.legacy")) { if (ventureChatPlayer.getPlayer().hasPermission("venturechat.color.legacy")) {
filtered = FormatUtils.FormatStringLegacyColor(filtered); filtered = FormatUtils.FormatStringLegacyColor(filtered);
@ -155,7 +155,7 @@ public class ChatListener implements Listener {
if ((p.hasParty() && p.getParty().toString().equals(ventureChatPlayer.getParty().toString()) || p.isSpy())) { if ((p.hasParty() && p.getParty().toString().equals(ventureChatPlayer.getParty().toString()) || p.isSpy())) {
String filtered = chat; String filtered = chat;
if (ventureChatPlayer.isFilter()) { if (ventureChatPlayer.isFilter()) {
filtered = formatService.FilterChat(filtered); filtered = formatService.filterChat(filtered);
} }
if (ventureChatPlayer.getPlayer().hasPermission("venturechat.color.legacy")) { if (ventureChatPlayer.getPlayer().hasPermission("venturechat.color.legacy")) {
filtered = FormatUtils.FormatStringLegacyColor(filtered); filtered = FormatUtils.FormatStringLegacyColor(filtered);
@ -332,7 +332,7 @@ public class ChatListener implements Listener {
format = FormatUtils.FormatStringAll(eventChannel.getFormat()); format = FormatUtils.FormatStringAll(eventChannel.getFormat());
if (eventChannel.isFiltered() && mcp.isFilter()) { if (eventChannel.isFiltered() && mcp.isFilter()) {
chat = formatService.FilterChat(chat); chat = formatService.filterChat(chat);
} }
PluginManager pluginManager = plugin.getServer().getPluginManager(); PluginManager pluginManager = plugin.getServer().getPluginManager();
Set<Player> recipients = event.getRecipients(); Set<Player> recipients = event.getRecipients();

View File

@ -0,0 +1,17 @@
package venture.Aust1n46.chat.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Filter {
private String matcher;
private String replacer;
}

View File

@ -12,6 +12,7 @@ import org.bukkit.entity.Player;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
@ -27,6 +28,7 @@ import lombok.ToString;
@ToString @ToString
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Builder
public class VentureChatPlayer { public class VentureChatPlayer {
@Setter(value = AccessLevel.NONE) @Setter(value = AccessLevel.NONE)
private UUID uuid; private UUID uuid;

View File

@ -11,10 +11,12 @@ import org.bukkit.configuration.ConfigurationSection;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import lombok.Getter;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.model.Alias; import venture.Aust1n46.chat.model.Alias;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.ClickAction; import venture.Aust1n46.chat.model.ClickAction;
import venture.Aust1n46.chat.model.Filter;
import venture.Aust1n46.chat.model.GuiSlot; import venture.Aust1n46.chat.model.GuiSlot;
import venture.Aust1n46.chat.model.JsonAttribute; import venture.Aust1n46.chat.model.JsonAttribute;
import venture.Aust1n46.chat.model.JsonFormat; import venture.Aust1n46.chat.model.JsonFormat;
@ -34,6 +36,9 @@ public class ConfigService {
private ChatChannel defaultChatChannel; private ChatChannel defaultChatChannel;
private String defaultColor; private String defaultColor;
@Getter
private List<Filter> filters;
@Inject @Inject
public void postConstruct() { public void postConstruct() {
aliasesRegisteredAsCommands = true; aliasesRegisteredAsCommands = true;
@ -113,6 +118,12 @@ public class ConfigService {
int slot = cs.getInt(key + ".slot"); int slot = cs.getInt(key + ".slot");
guiSlots.add(new GuiSlot(name, icon, durability, text, permission, command, slot)); guiSlots.add(new GuiSlot(name, icon, durability, text, permission, command, slot));
} }
filters = plugin.getConfig().getStringList("filters")
.stream()
.map(x -> x.split(","))
.map(x -> new Filter(x[0], x[1]))
.toList();
} }
public boolean areAliasesRegisteredAsCommands() { public boolean areAliasesRegisteredAsCommands() {

View File

@ -9,7 +9,6 @@ import static venture.Aust1n46.chat.utilities.FormatUtils.HEX_COLOR_CODE_PREFIX;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -30,6 +29,7 @@ import com.google.inject.Singleton;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.model.ClickAction; import venture.Aust1n46.chat.model.ClickAction;
import venture.Aust1n46.chat.model.Filter;
import venture.Aust1n46.chat.model.JsonAttribute; import venture.Aust1n46.chat.model.JsonAttribute;
import venture.Aust1n46.chat.model.JsonFormat; import venture.Aust1n46.chat.model.JsonFormat;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
@ -631,24 +631,13 @@ public class FormatService {
} }
} }
public String FilterChat(String msg) { public String filterChat(final String message) {
int t = 0; String filteredMessage = message;
List<String> filters = plugin.getConfig().getStringList("filters"); final List<Filter> filters = configService.getFilters();
for (String s : filters) { for (final Filter filter : filters) {
t = 0; filteredMessage = filteredMessage.replaceAll("(?i)" + filter.getMatcher(), filter.getReplacer()); // (?i) = case insensitive
String[] pparse = new String[2];
pparse[0] = " ";
pparse[1] = " ";
StringTokenizer st = new StringTokenizer(s, ",");
while (st.hasMoreTokens()) {
if (t < 2) {
pparse[t++] = st.nextToken();
} }
} return filteredMessage;
// (?i) = case insensitive
msg = msg.replaceAll("(?i)" + pparse[0], pparse[1]);
}
return msg;
} }
public String underlineURLs() { public String underlineURLs() {

View File

@ -1,80 +1,87 @@
package venture.Aust1n46.chat.xcut; package venture.Aust1n46.chat.xcut;
import com.comphenix.protocol.utility.MinecraftVersion; import com.comphenix.protocol.utility.MinecraftVersion;
import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
@Singleton @Singleton
public class VersionService { public class VersionService {
public static final MinecraftVersion SERVER_VERSION = MinecraftVersion.getCurrentVersion();
private static final MinecraftVersion MC1_19 = new MinecraftVersion(1, 19, 0); private static final MinecraftVersion MC1_19 = new MinecraftVersion(1, 19, 0);
private static final MinecraftVersion MC1_19_1 = new MinecraftVersion(1, 19, 1); private static final MinecraftVersion MC1_19_1 = new MinecraftVersion(1, 19, 1);
private static final MinecraftVersion MC1_20_4 = new MinecraftVersion(1, 20, 4); private static final MinecraftVersion MC1_20_4 = new MinecraftVersion(1, 20, 4);
private MinecraftVersion serverVersion;
@Inject
public void postConstruct() {
serverVersion = MinecraftVersion.getCurrentVersion();
}
public boolean is1_7() { public boolean is1_7() {
return SERVER_VERSION.getMinor() == 7 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 7 && serverVersion.getMajor() == 1;
} }
public boolean is1_8() { public boolean is1_8() {
return SERVER_VERSION.getMinor() == 8 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 8 && serverVersion.getMajor() == 1;
} }
public boolean is1_9() { public boolean is1_9() {
return SERVER_VERSION.getMinor() == 9 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 9 && serverVersion.getMajor() == 1;
} }
public boolean is1_10() { public boolean is1_10() {
return SERVER_VERSION.getMinor() == 10 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 10 && serverVersion.getMajor() == 1;
} }
public boolean is1_11() { public boolean is1_11() {
return SERVER_VERSION.getMinor() == 11 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 11 && serverVersion.getMajor() == 1;
} }
public boolean is1_12() { public boolean is1_12() {
return SERVER_VERSION.getMinor() == 12 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 12 && serverVersion.getMajor() == 1;
} }
public boolean is1_13() { public boolean is1_13() {
return SERVER_VERSION.getMinor() == 13 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 13 && serverVersion.getMajor() == 1;
} }
public boolean is1_14() { public boolean is1_14() {
return SERVER_VERSION.getBuild() != 4 && SERVER_VERSION.getMinor() == 14 && SERVER_VERSION.getMajor() == 1; return serverVersion.getBuild() != 4 && serverVersion.getMinor() == 14 && serverVersion.getMajor() == 1;
} }
public boolean is1_14_4() { public boolean is1_14_4() {
return SERVER_VERSION.getBuild() == 4 && SERVER_VERSION.getMinor() == 14 && SERVER_VERSION.getMajor() == 1; return serverVersion.getBuild() == 4 && serverVersion.getMinor() == 14 && serverVersion.getMajor() == 1;
} }
public boolean is1_15() { public boolean is1_15() {
return SERVER_VERSION.getMinor() == 15 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 15 && serverVersion.getMajor() == 1;
} }
public boolean is1_16() { public boolean is1_16() {
return SERVER_VERSION.getMinor() == 16 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 16 && serverVersion.getMajor() == 1;
} }
public boolean is1_17() { public boolean is1_17() {
return SERVER_VERSION.getMinor() == 17 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 17 && serverVersion.getMajor() == 1;
} }
public boolean is1_18() { public boolean is1_18() {
return SERVER_VERSION.getMinor() == 18 && SERVER_VERSION.getMajor() == 1; return serverVersion.getMinor() == 18 && serverVersion.getMajor() == 1;
} }
public boolean is1_19() { public boolean is1_19() {
return SERVER_VERSION.getBuild() == 0 && SERVER_VERSION.getMinor() == 19 && SERVER_VERSION.getMajor() == 1; return serverVersion.getBuild() == 0 && serverVersion.getMinor() == 19 && serverVersion.getMajor() == 1;
} }
public boolean isUnder_1_19() { public boolean isUnder_1_19() {
return !SERVER_VERSION.isAtLeast(MC1_19); return !serverVersion.isAtLeast(MC1_19);
} }
public boolean isAbove_1_19() { public boolean isAbove_1_19() {
return SERVER_VERSION.isAtLeast(MC1_19_1); return serverVersion.isAtLeast(MC1_19_1);
} }
public boolean isAtLeast_1_20_4() { public boolean isAtLeast_1_20_4() {
return SERVER_VERSION.isAtLeast(MC1_20_4); return serverVersion.isAtLeast(MC1_20_4);
} }
} }

View File

@ -0,0 +1,41 @@
package venture.Aust1n46.chat.service;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.model.Filter;
import venture.Aust1n46.chat.xcut.VersionService;
@ExtendWith(MockitoExtension.class)
public class FormatServiceTest {
@Mock
private VentureChat plugin;
@Mock
private PlayerApiService playerApiService;
@Mock
private ConfigService configService;
@Mock
private VersionService versionService;
@InjectMocks
private FormatService formatService;
private static final List<Filter> FILTERS = List.of(new Filter("(b[i1]a?tch(es)?)", "puppy"));
@Test
public void testFilter() {
when(configService.getFilters()).thenReturn(FILTERS);
final String input = "You are a bitch!";
final String expected = "You are a puppy!";
final String actual = formatService.filterChat(input);
assertEquals(expected, actual);
}
}