diff --git a/api/src/main/java/com/alttd/chat/objects/ModifiableString.java b/api/src/main/java/com/alttd/chat/objects/ModifiableString.java index 5f048a4..af0c506 100644 --- a/api/src/main/java/com/alttd/chat/objects/ModifiableString.java +++ b/api/src/main/java/com/alttd/chat/objects/ModifiableString.java @@ -61,4 +61,8 @@ public class ModifiableString { return list; })); } + + public void removeStringAtStart(String s) { + text = text.replaceText(TextReplacementConfig.builder().match("^" + s).replacement("").build()); + } } diff --git a/api/src/test/java/ReverseTest.java b/api/src/test/java/ReverseTest.java index 271b266..a7c0926 100644 --- a/api/src/test/java/ReverseTest.java +++ b/api/src/test/java/ReverseTest.java @@ -1,3 +1,4 @@ +import com.alttd.chat.config.Config; import com.alttd.chat.objects.ModifiableString; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; @@ -20,6 +21,31 @@ public class ReverseTest { assertEquals(expectedOutput, modifiableString.string()); } + @Test + public void testRemoveKeyword() { + String input = "Hello how are you doing today?"; + MiniMessage miniMessage = MiniMessage.miniMessage(); + + ModifiableString modifiableString = new ModifiableString(miniMessage.deserialize(Config.APRIL_FOOLS_RESET + " " + input)); + modifiableString.removeStringAtStart(Config.APRIL_FOOLS_RESET + " "); + + assertEquals(input, modifiableString.string()); + } + + @Test + public void testRemoveKeywordWithTags() { + MiniMessage miniMessage = MiniMessage.miniMessage(); + String input = "" + Config.APRIL_FOOLS_RESET + " Hello how are you doing today?"; + String expectedOutput = "Hello how are you doing today?"; + Component deserialize = miniMessage.deserialize(input); + + ModifiableString modifiableString = new ModifiableString(deserialize); + modifiableString.removeStringAtStart(Config.APRIL_FOOLS_RESET + " "); + + assertEquals(expectedOutput, modifiableString.string()); + } + + @Test public void testReverseStringWithTags() { String input = "Hello how are you doing today?"; diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java index 6b6aa58..bebfd04 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java @@ -110,8 +110,12 @@ public class ChatListener implements Listener { Set playersToPing = new HashSet<>(); pingPlayers(playersToPing, modifiableString, player); LocalDate now = LocalDate.now(); - if (now.getMonth().equals(Month.APRIL) && now.getDayOfMonth() == 1 && !modifiableString.string().startsWith(Config.APRIL_FOOLS_RESET)) { - modifiableString.reverse(); + if (now.getMonth().equals(Month.APRIL) && now.getDayOfMonth() == 1) { + if (modifiableString.string().startsWith(Config.APRIL_FOOLS_RESET + " ")) { + modifiableString.removeStringAtStart(Config.APRIL_FOOLS_RESET + " "); + } else { + modifiableString.reverse(); + } } input = render(player, modifiableString.component()); for (Player receiver : receivers) {