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)
msg += " " + args[x];
if (sender instanceof Player && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) {
msg = formatService.FilterChat(msg);
msg = formatService.filterChat(msg);
}
if (sender.hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);

View File

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

View File

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

View File

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

View File

@ -100,7 +100,7 @@ public class ChatListener implements Listener {
String send = "";
String spy = "";
if (ventureChatPlayer.isFilter()) {
filtered = formatService.FilterChat(filtered);
filtered = formatService.filterChat(filtered);
}
if (ventureChatPlayer.getPlayer().hasPermission("venturechat.color.legacy")) {
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())) {
String filtered = chat;
if (ventureChatPlayer.isFilter()) {
filtered = formatService.FilterChat(filtered);
filtered = formatService.filterChat(filtered);
}
if (ventureChatPlayer.getPlayer().hasPermission("venturechat.color.legacy")) {
filtered = FormatUtils.FormatStringLegacyColor(filtered);
@ -332,7 +332,7 @@ public class ChatListener implements Listener {
format = FormatUtils.FormatStringAll(eventChannel.getFormat());
if (eventChannel.isFiltered() && mcp.isFilter()) {
chat = formatService.FilterChat(chat);
chat = formatService.filterChat(chat);
}
PluginManager pluginManager = plugin.getServer().getPluginManager();
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.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@ -27,6 +28,7 @@ import lombok.ToString;
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class VentureChatPlayer {
@Setter(value = AccessLevel.NONE)
private UUID uuid;

View File

@ -11,10 +11,12 @@ import org.bukkit.configuration.ConfigurationSection;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import lombok.Getter;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.model.Alias;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.ClickAction;
import venture.Aust1n46.chat.model.Filter;
import venture.Aust1n46.chat.model.GuiSlot;
import venture.Aust1n46.chat.model.JsonAttribute;
import venture.Aust1n46.chat.model.JsonFormat;
@ -33,6 +35,9 @@ public class ConfigService {
private boolean aliasesRegisteredAsCommands;
private ChatChannel defaultChatChannel;
private String defaultColor;
@Getter
private List<Filter> filters;
@Inject
public void postConstruct() {
@ -113,6 +118,12 @@ public class ConfigService {
int slot = cs.getInt(key + ".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() {

View File

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

View File

@ -1,80 +1,87 @@
package venture.Aust1n46.chat.xcut;
import com.comphenix.protocol.utility.MinecraftVersion;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@Singleton
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_1 = new MinecraftVersion(1, 19, 1);
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() {
return SERVER_VERSION.getMinor() == 7 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 7 && serverVersion.getMajor() == 1;
}
public boolean is1_8() {
return SERVER_VERSION.getMinor() == 8 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 8 && serverVersion.getMajor() == 1;
}
public boolean is1_9() {
return SERVER_VERSION.getMinor() == 9 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 9 && serverVersion.getMajor() == 1;
}
public boolean is1_10() {
return SERVER_VERSION.getMinor() == 10 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 10 && serverVersion.getMajor() == 1;
}
public boolean is1_11() {
return SERVER_VERSION.getMinor() == 11 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 11 && serverVersion.getMajor() == 1;
}
public boolean is1_12() {
return SERVER_VERSION.getMinor() == 12 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 12 && serverVersion.getMajor() == 1;
}
public boolean is1_13() {
return SERVER_VERSION.getMinor() == 13 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 13 && serverVersion.getMajor() == 1;
}
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() {
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() {
return SERVER_VERSION.getMinor() == 15 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 15 && serverVersion.getMajor() == 1;
}
public boolean is1_16() {
return SERVER_VERSION.getMinor() == 16 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 16 && serverVersion.getMajor() == 1;
}
public boolean is1_17() {
return SERVER_VERSION.getMinor() == 17 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 17 && serverVersion.getMajor() == 1;
}
public boolean is1_18() {
return SERVER_VERSION.getMinor() == 18 && SERVER_VERSION.getMajor() == 1;
return serverVersion.getMinor() == 18 && serverVersion.getMajor() == 1;
}
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() {
return !SERVER_VERSION.isAtLeast(MC1_19);
return !serverVersion.isAtLeast(MC1_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() {
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);
}
}