From 5e325b27590920f1abcb0a6fbe8d037e1131b9df Mon Sep 17 00:00:00 2001 From: olim Date: Thu, 15 Feb 2024 21:04:47 +0000 Subject: add test for isMach create test for most parts of the isMatch check --- .../skyblocker/skyblock/chat/ChatRuleTest.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java (limited to 'src/test/java/de/hysky') diff --git a/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java new file mode 100644 index 00000000..0c98debe --- /dev/null +++ b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java @@ -0,0 +1,37 @@ +package de.hysky.skyblocker.skyblock.chat; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ChatRuleTest { + + @Test + void isMatch() { + ChatRule testRule = new ChatRule(); + //test enabled check + testRule.setFilter("test"); + testRule.setEnabled(false); + Assertions.assertEquals(testRule.isMatch("test"),false); + //test simple filter works + testRule.setEnabled(true); + Assertions.assertEquals(testRule.isMatch("test"),true); + //test partial match works + Assertions.assertEquals(testRule.isMatch("test extra"),false); + testRule.setPartialMatch(true); + Assertions.assertEquals(testRule.isMatch("test extra"),true); + //test ignore case works + Assertions.assertEquals(testRule.isMatch("TEST"),true); + testRule.setIgnoreCase(false); + Assertions.assertEquals(testRule.isMatch("TEST"),false); + + //test regex + testRule = new ChatRule(); + testRule.setRegex(true); + testRule.setFilter("[0-9]+"); + Assertions.assertEquals(testRule.isMatch("1234567"),true); + Assertions.assertEquals(testRule.isMatch("1234567 test"),false); + + } +} \ No newline at end of file -- cgit From 1aa1a1328f91f6cab39a958396a7eb854ad2ca13 Mon Sep 17 00:00:00 2001 From: olim Date: Sun, 18 Feb 2024 11:48:58 +0000 Subject: add text style to the replacement text make it so styles can be added to the replacement text --- .../skyblock/chat/ChatRuleAnnouncementScreen.java | 8 ++--- .../skyblock/chat/ChatRuleConfigScreen.java | 6 +++- .../skyblock/chat/ChatRulesConfigListWidget.java | 1 - .../skyblock/chat/ChatRulesConfigScreen.java | 6 ++-- .../skyblocker/skyblock/chat/ChatRulesHandler.java | 36 ++++++++++++++++++---- .../skyblock/chat/ChatRulesHandlerTest.java | 35 +++++++++++++++++++++ 6 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java (limited to 'src/test/java/de/hysky') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java index e6300808..0ee3c2c5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java @@ -1,16 +1,13 @@ package de.hysky.skyblocker.skyblock.chat; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.dwarven.CrystalsHudConfigScreen; -import de.hysky.skyblocker.utils.scheduler.Scheduler; -import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; -import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; + public class ChatRuleAnnouncementScreen { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); @@ -25,8 +22,11 @@ public class ChatRuleAnnouncementScreen { } render(context, tickDelta); }); + } + + /** * renders {@link ChatRuleAnnouncementScreen#text} to the middle of the top of the screen. * @param context render context diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java index f46af79b..7d2280f0 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java @@ -190,7 +190,11 @@ public class ChatRuleConfigScreen extends Screen { } MutableText newText = getSoundName(); soundsToggle.setMessage(newText); - chatRule.setCustomSound(soundsLookup.get(newText)); + SoundEvent sound = soundsLookup.get(newText); + chatRule.setCustomSound(sound); + if (client.player != null && sound != null) { + client.player.playSound(sound, 100f, 0.1f); + } }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) .size(100,20) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java index 4e8038d6..84e9082d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java @@ -11,7 +11,6 @@ import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ElementListWidget; import net.minecraft.screen.ScreenTexts; import net.minecraft.text.Text; -import org.jetbrains.annotations.Nullable; import java.awt.*; import java.util.List; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigScreen.java index 2cbb735b..11ea5a7a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigScreen.java @@ -1,10 +1,8 @@ package de.hysky.skyblocker.skyblock.chat; -import de.hysky.skyblocker.skyblock.shortcut.Shortcuts; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ConfirmScreen; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.GridWidget; import net.minecraft.client.gui.widget.SimplePositioningWidget; @@ -53,7 +51,11 @@ public class ChatRulesConfigScreen extends Screen { close(); } }).build(); + adder.add(buttonDone); + gridWidget.refreshPositions(); + SimplePositioningWidget.setPos(gridWidget, 0, this.height - 64, this.width, 64); gridWidget.forEachChild(this::addDrawableChild); + } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java index 29ee1386..4afedc52 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java @@ -6,8 +6,10 @@ import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.utils.Utils; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; import net.minecraft.client.MinecraftClient; -import net.minecraft.sound.SoundEvents; +import net.minecraft.text.MutableText; +import net.minecraft.text.Style; import net.minecraft.text.Text; +import net.minecraft.util.Formatting; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,13 +71,13 @@ public class ChatRulesHandler { private static boolean checkMessage(Text message, Boolean overlay) { if (!Utils.isOnSkyblock()) return true; //do not work not on skyblock if (overlay) return true; //ignore messages in overlay - String plain = trimItemColor(message.getString()); + String plain = Formatting.strip(message.getString()); for (ChatRule rule : chatRuleList) { if (rule.isMatch(plain)) { //get a replacement message Text newMessage; if (!rule.getReplaceMessage().isBlank()) { - newMessage = Text.of(rule.getReplaceMessage()); + newMessage = formatText(rule.getReplaceMessage()); } else { newMessage = message; @@ -106,9 +108,31 @@ public class ChatRulesHandler { } return true; } - private static String trimItemColor(String str) { - if (str.isBlank()) return str; - return str.replaceAll("ยง[0-9a-g]", ""); + + /** + * Converts a string with color codes into a formatted Text object + * @param codedString the string with color codes in + * @return formatted text + */ + + protected static MutableText formatText(String codedString) { + if (codedString.contains(String.valueOf(Formatting.FORMATTING_CODE_PREFIX)) || codedString.contains("&")){ + MutableText newText = Text.literal(""); + String[] parts = codedString.split("[" + Formatting.FORMATTING_CODE_PREFIX +"&]"); + Style style = Style.EMPTY; + for (String part : parts) { + if (part.isEmpty()) continue; + Formatting formatting = Formatting.byCode(part.charAt(0)); + if (formatting != null){ + style = style.withFormatting(formatting); + Text.literal(part.substring(1)).getWithStyle(style).forEach(newText::append); + } else { + newText.append(Text.of(part)); + } + } + return newText; + } + return Text.literal(codedString); } } diff --git a/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java new file mode 100644 index 00000000..2c1b7956 --- /dev/null +++ b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java @@ -0,0 +1,35 @@ +package de.hysky.skyblocker.skyblock.chat; + +import net.minecraft.text.MutableText; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.awt.*; + +import static org.junit.jupiter.api.Assertions.*; + +class ChatRulesHandlerTest { + + @Test + void formatText() { + //generate test text + MutableText testText = Text.empty(); + Style style = Style.EMPTY.withFormatting(Formatting.DARK_BLUE); + Text.of("test").getWithStyle(style).forEach(testText::append); + style = style.withFormatting(Formatting.UNDERLINE); + Text.of("line").getWithStyle(style).forEach(testText::append); + style = style.withFormatting(Formatting.DARK_GREEN); + Text.of("dark green").getWithStyle(style).forEach(testText::append); + style = style.withFormatting(Formatting.ITALIC); + Text.of("italic").getWithStyle(style).forEach(testText::append); + + //generated text + MutableText text = ChatRulesHandler.formatText("&1test&nline&2dark green&oitalic"); + + Assertions.assertEquals(text,testText); + + } +} \ No newline at end of file -- cgit From 980e91c202c7e015e959f30752b69d7818afd715 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Wed, 21 Feb 2024 00:00:31 -0500 Subject: Fix formatting The text rendering methods use AARRGGBB not RRGGBB so I fixed that too. --- .../hysky/skyblocker/skyblock/chat/ChatRule.java | 30 +++--- .../skyblock/chat/ChatRuleAnnouncementScreen.java | 3 +- .../skyblock/chat/ChatRuleConfigScreen.java | 109 +++++++++++---------- .../skyblock/chat/ChatRulesConfigListWidget.java | 62 ++++++------ .../skyblock/chat/ChatRulesConfigScreen.java | 2 +- .../skyblocker/skyblock/chat/ChatRulesHandler.java | 28 +++--- .../skyblocker/skyblock/chat/ChatRuleTest.java | 18 ++-- .../skyblock/chat/ChatRulesHandlerTest.java | 6 +- 8 files changed, 129 insertions(+), 129 deletions(-) (limited to 'src/test/java/de/hysky') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java index 93897988..7a8214cb 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java @@ -30,7 +30,7 @@ public class ChatRule { /** * Creates a chat rule with default options. */ - protected ChatRule(){ + protected ChatRule() { this.name = "New Rule"; this.enabled = true; @@ -163,43 +163,46 @@ public class ChatRule { * @param inputString the chat message to check if fits * @return if the inputs are all true and the outputs should be performed */ - protected Boolean isMatch(String inputString){ + protected Boolean isMatch(String inputString) { //enabled if (!enabled) return false; //ignore case String testString; String testFilter; - if (isIgnoreCase){ + + if (isIgnoreCase) { testString = inputString.toLowerCase(); testFilter = filter.toLowerCase(); - }else { + } else { testString = inputString; testFilter = filter; } //filter if (testFilter.isBlank()) return false; - if(isRegex) { + if (isRegex) { if (isPartialMatch) { - if (! Pattern.compile(testFilter).matcher(testString).find()) return false; - }else { + if (!Pattern.compile(testFilter).matcher(testString).find()) return false; + } else { if (!testString.matches(testFilter)) return false; } - } else{ + } else { if (isPartialMatch) { if (!testString.contains(testFilter)) return false; - }else { + } else { if (!testFilter.equals(testString)) return false; } } //location - if (validLocations.isBlank()){ //if no locations do not check + if (validLocations.isBlank()) { //if no locations do not check return true; } + String rawLocation = Utils.getLocationRaw(); Boolean isLocationValid = null; + for (String validLocation : validLocations.replace(" ", "").toLowerCase().split(",")) {//the locations are raw locations split by "," and start with ! if not locations String rawValidLocation = ChatRulesHandler.locations.get(validLocation.replace("!","")); if (rawValidLocation == null) continue; @@ -208,15 +211,16 @@ public class ChatRule { isLocationValid = false; break; } - } - else { + } else { if (Objects.equals(rawValidLocation, rawLocation.toLowerCase())) { //normal location isLocationValid = true; break; } } } - if (isLocationValid != null && isLocationValid){//if location is not in the list at all and is a not a "!" location or and is a normal location + + //if location is not in the list at all and is a not a "!" location or and is a normal location + if (isLocationValid != null && isLocationValid) { return true; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java index 2cb6ca5c..bafada27 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java @@ -7,7 +7,6 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; - public class ChatRuleAnnouncementScreen { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); private static float timer; @@ -37,7 +36,7 @@ public class ChatRuleAnnouncementScreen { matrices.translate(context.getScaledWindowWidth() / 2f, context.getScaledWindowHeight() * 0.3, 0f); matrices.scale(scale, scale, 0f); //render text - context.drawCenteredTextWithShadow(CLIENT.textRenderer,text,0, 0, 0xFFFFFF); + context.drawCenteredTextWithShadow(CLIENT.textRenderer, text, 0, 0, 0xFFFFFFFF); matrices.pop(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java index 92cd72d7..9b91d4a8 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java @@ -1,7 +1,6 @@ package de.hysky.skyblocker.skyblock.chat; import it.unimi.dsi.fastutil.ints.IntIntPair; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.tooltip.Tooltip; @@ -17,7 +16,6 @@ import net.minecraft.util.Identifier; import java.awt.*; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicInteger; import static java.util.Map.entry; @@ -55,7 +53,7 @@ public class ChatRuleConfigScreen extends Screen { private IntIntPair filterLabelTextPos; private IntIntPair partialMatchTextPos; private IntIntPair regexTextPos; - private IntIntPair ignoreCaseTextPos; + private IntIntPair ignoreCaseTextPos; private IntIntPair locationLabelTextPos; private IntIntPair outputsLabelTextPos; private IntIntPair hideMessageTextPos; @@ -78,8 +76,10 @@ public class ChatRuleConfigScreen extends Screen { private int getCurrentSoundIndex() { if (chatRule.getCustomSound() == null) return -1; //if no sound just return -1 + List soundOptions = soundsLookup.values().stream().toList(); Identifier ruleSoundId = chatRule.getCustomSound().getId(); + for (int i = 0; i < soundOptions.size(); i++) { if (soundOptions.get(i).getId().compareTo(ruleSoundId) == 0) { return i; @@ -94,74 +94,74 @@ public class ChatRuleConfigScreen extends Screen { super.init(); if (client == null) return; //start centered on the X and 1/3 down on the Y - IntIntPair currentPos = IntIntPair.of((this.width - getMaxUsedWidth()) / 2,(int)((this.height -getMaxUsedHeight()) * 0.33)); + IntIntPair currentPos = IntIntPair.of((this.width - getMaxUsedWidth()) / 2, (int)((this.height -getMaxUsedHeight()) * 0.33)); int lineXOffset; nameLabelTextPos = currentPos; lineXOffset = client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.name")) + SPACER_X; - nameInput = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 100, 20, Text.of("")); + nameInput = new TextFieldWidget(client.textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 100, 20, Text.of("")); nameInput.setText(chatRule.getName()); nameInput.setTooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.name.@Tooltip"))); - currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt(), currentPos.rightInt() + SPACER_Y); inputsLabelTextPos = currentPos; - currentPos = IntIntPair.of(currentPos.leftInt() + 10 ,currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt() + 10, currentPos.rightInt() + SPACER_Y); filterLabelTextPos = currentPos; lineXOffset = client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.filter")) + SPACER_X; - filterInput = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of("")); + filterInput = new TextFieldWidget(client.textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of("")); filterInput.setMaxLength(96); filterInput.setText(chatRule.getFilter()); filterInput.setTooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.filter.@Tooltip"))); currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); lineXOffset = 0; - partialMatchTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset,currentPos.rightInt()); + partialMatchTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset, currentPos.rightInt()); lineXOffset += client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.partialMatch")) + SPACER_X; partialMatchToggle = ButtonWidget.builder(enabledButtonText(chatRule.getPartialMatch()), a -> { chatRule.setPartialMatch(!chatRule.getPartialMatch()); partialMatchToggle.setMessage(enabledButtonText(chatRule.getPartialMatch())); }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(75,20) + .size(75, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.partialMatch.@Tooltip"))) .build(); lineXOffset += 75 + SPACER_X; - regexTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset,currentPos.rightInt()); + regexTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset, currentPos.rightInt()); lineXOffset += client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.regex")) + SPACER_X; regexToggle = ButtonWidget.builder(enabledButtonText(chatRule.getRegex()), a -> { chatRule.setRegex(!chatRule.getRegex()); regexToggle.setMessage(enabledButtonText(chatRule.getRegex())); }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(75,20) + .size(75, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.regex.@Tooltip"))) .build(); lineXOffset += 75 + SPACER_X; - ignoreCaseTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset,currentPos.rightInt()); + ignoreCaseTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset, currentPos.rightInt()); lineXOffset += client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.ignoreCase")) + SPACER_X; ignoreCaseToggle = ButtonWidget.builder(enabledButtonText(chatRule.getIgnoreCase()), a -> { chatRule.setIgnoreCase(!chatRule.getIgnoreCase()); ignoreCaseToggle.setMessage(enabledButtonText(chatRule.getIgnoreCase())); }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(75,20) + .size(75, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.ignoreCase.@Tooltip"))) .build(); - currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt(), currentPos.rightInt() + SPACER_Y); locationLabelTextPos = currentPos; lineXOffset = client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.locations")) + SPACER_X; - locationsInput = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of("")); + locationsInput = new TextFieldWidget(client.textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of("")); locationsInput.setText(chatRule.getValidLocations()); MutableText locationToolTip = Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.locations.@Tooltip"); locationToolTip.append("\n"); ChatRulesHandler.locationsList.forEach(location -> locationToolTip.append(" " + location + ",\n")); locationsInput.setTooltip(Tooltip.of(locationToolTip)); - currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt(), currentPos.rightInt() + SPACER_Y); outputsLabelTextPos = IntIntPair.of(currentPos.leftInt() - 10,currentPos.rightInt()); - currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt(), currentPos.rightInt() + SPACER_Y); hideMessageTextPos = currentPos; lineXOffset = client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.hideMessage")) + SPACER_X; @@ -170,35 +170,35 @@ public class ChatRuleConfigScreen extends Screen { hideMessageToggle.setMessage(enabledButtonText(chatRule.getHideMessage())); }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(75,20) + .size(75, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.hideMessage.@Tooltip"))) .build(); lineXOffset += 75 + SPACER_X; - actionBarTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset,currentPos.rightInt()); + actionBarTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset, currentPos.rightInt()); lineXOffset += client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.actionBar")) + SPACER_X; actionBarToggle = ButtonWidget.builder(enabledButtonText(chatRule.getShowActionBar()), a -> { chatRule.setShowActionBar(!chatRule.getShowActionBar()); actionBarToggle.setMessage(enabledButtonText(chatRule.getShowActionBar())); }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(75,20) + .size(75, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.actionBar.@Tooltip"))) .build(); lineXOffset = 0; - currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt(), currentPos.rightInt() + SPACER_Y); - announcementTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset,currentPos.rightInt()); + announcementTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset, currentPos.rightInt()); lineXOffset += client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.announcement")) + SPACER_X; announcementToggle = ButtonWidget.builder(enabledButtonText(chatRule.getShowAnnouncement()), a -> { chatRule.setShowAnnouncement(!chatRule.getShowAnnouncement()); announcementToggle.setMessage(enabledButtonText(chatRule.getShowAnnouncement())); }) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(75,20) + .size(75, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.announcement.@Tooltip"))) .build(); lineXOffset += 75 + SPACER_X; - customSoundLabelTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset,currentPos.rightInt()); + customSoundLabelTextPos = IntIntPair.of(currentPos.leftInt() + lineXOffset, currentPos.rightInt()); lineXOffset += client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.sounds")) + SPACER_X; soundsToggle = ButtonWidget.builder(getSoundName(), a -> { currentSoundIndex += 1; @@ -211,17 +211,16 @@ public class ChatRuleConfigScreen extends Screen { chatRule.setCustomSound(sound); if (client.player != null && sound != null) { client.player.playSound(sound, 100f, 0.1f); - } - }) + }}) .position(currentPos.leftInt() + lineXOffset, currentPos.rightInt()) - .size(100,20) + .size(100, 20) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.sounds.@Tooltip"))) .build(); - currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y); + currentPos = IntIntPair.of(currentPos.leftInt(), currentPos.rightInt() + SPACER_Y); replaceMessageLabelTextPos = currentPos; lineXOffset = client.textRenderer.getWidth(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.replace")) + SPACER_X; - replaceMessageInput = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of("")); + replaceMessageInput = new TextFieldWidget(client.textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of("")); replaceMessageInput.setMaxLength(96); replaceMessageInput.setTooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.replace.@Tooltip"))); replaceMessageInput.setText(chatRule.getReplaceMessage()); @@ -259,6 +258,7 @@ public class ChatRuleConfigScreen extends Screen { total += SPACER_X * 6; //button width total += 75 * 3; + return total; } @@ -272,33 +272,33 @@ public class ChatRuleConfigScreen extends Screen { } private Text enabledButtonText(boolean enabled) { - if (enabled){ - return Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.true").withColor(Color.green.getRGB()); - }else { - return Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.false").withColor(Color.red.getRGB()); + if (enabled) { + return Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.true").withColor(Color.GREEN.getRGB()); + } else { + return Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.false").withColor(Color.RED.getRGB()); } } @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { super.render(context, mouseX, mouseY, delta); - context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 0xFFFFFF); + context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 0xFFFFFFFF); //draw labels ands text int yOffset = (SPACER_Y - this.textRenderer.fontHeight) / 2; - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.inputs"), inputsLabelTextPos.leftInt(), inputsLabelTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.name"), nameLabelTextPos.leftInt(), nameLabelTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.filter"), filterLabelTextPos.leftInt(), filterLabelTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.partialMatch"), partialMatchTextPos.leftInt(), partialMatchTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.regex"), regexTextPos.leftInt(), regexTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.ignoreCase"), ignoreCaseTextPos.leftInt(), ignoreCaseTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.locations"), locationLabelTextPos.leftInt(), locationLabelTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.outputs"), outputsLabelTextPos.leftInt(), outputsLabelTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.hideMessage"), hideMessageTextPos.leftInt(), hideMessageTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.actionBar"), actionBarTextPos.leftInt(), actionBarTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.announcement"), announcementTextPos.leftInt(), announcementTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.sounds"), customSoundLabelTextPos.leftInt(), customSoundLabelTextPos.rightInt() + yOffset, 0xFFFFFF); - context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.replace"), replaceMessageLabelTextPos.leftInt(), replaceMessageLabelTextPos.rightInt() + yOffset, 0xFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.inputs"), inputsLabelTextPos.leftInt(), inputsLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.name"), nameLabelTextPos.leftInt(), nameLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.filter"), filterLabelTextPos.leftInt(), filterLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.partialMatch"), partialMatchTextPos.leftInt(), partialMatchTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.regex"), regexTextPos.leftInt(), regexTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.ignoreCase"), ignoreCaseTextPos.leftInt(), ignoreCaseTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.locations"), locationLabelTextPos.leftInt(), locationLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.outputs"), outputsLabelTextPos.leftInt(), outputsLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.hideMessage"), hideMessageTextPos.leftInt(), hideMessageTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.actionBar"), actionBarTextPos.leftInt(), actionBarTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.announcement"), announcementTextPos.leftInt(), announcementTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.sounds"), customSoundLabelTextPos.leftInt(), customSoundLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); + context.drawTextWithShadow(this.textRenderer, Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.replace"), replaceMessageLabelTextPos.leftInt(), replaceMessageLabelTextPos.rightInt() + yOffset, 0xFFFFFFFF); } /** @@ -306,25 +306,26 @@ public class ChatRuleConfigScreen extends Screen { */ @Override public void close() { - - if (client != null ) { + if (client != null) { save(); client.setScreen(parent); } } - private void save(){ + + private void save() { chatRule.setName(nameInput.getText()); chatRule.setFilter(filterInput.getText()); chatRule.setReplaceMessage(replaceMessageInput.getText()); chatRule.setValidLocations(locationsInput.getText()); - ChatRulesHandler.chatRuleList.set(chatRuleIndex,chatRule); + ChatRulesHandler.chatRuleList.set(chatRuleIndex, chatRule); } private MutableText getSoundName() { - if (currentSoundIndex == -1){ - return Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.sounds.none"); + if (currentSoundIndex == -1) { + return Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.sounds.none"); } + return soundsLookup.keySet().stream().toList().get(currentSoundIndex); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java index c5d7fcc8..aecfa88d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java @@ -18,18 +18,18 @@ import java.util.List; public class ChatRulesConfigListWidget extends ElementListWidget { private final ChatRulesConfigScreen screen; - private Boolean hasChanged; - public ChatRulesConfigListWidget(MinecraftClient minecraftClient, ChatRulesConfigScreen screen, int width, int height, int y, int itemHeight) { - super(minecraftClient, width, height, y, itemHeight); + public ChatRulesConfigListWidget(MinecraftClient client, ChatRulesConfigScreen screen, int width, int height, int y, int itemHeight) { + super(client, width, height, y, itemHeight); this.screen = screen; this.hasChanged = false; + //add labels - addEntry(new chatRuleLabelsEntry()); + addEntry(new ChatRuleLabelsEntry()); //add entry fall all existing rules - for (int i = 0; i < (long) ChatRulesHandler.chatRuleList.size(); i++){ - addEntry(new chatRuleConfigEntry(i)); + for (int i = 0; i < ChatRulesHandler.chatRuleList.size(); i++){ + addEntry(new ChatRuleConfigEntry(i)); } } @@ -46,8 +46,9 @@ public class ChatRulesConfigListWidget extends ElementListWidget { + protected static abstract class AbstractChatRuleEntry extends ElementListWidget.Entry { } - private class chatRuleLabelsEntry extends AbstractChatRuleEntry { + private class ChatRuleLabelsEntry extends AbstractChatRuleEntry { @Override public List selectableChildren() { @@ -81,13 +82,13 @@ public class ChatRulesConfigListWidget extends ElementListWidget toggleEnabled()) - .size(50,20) - .position(width / 2 - 25,5) + enabledButton = ButtonWidget.builder(enabledButtonText(), a -> toggleEnabled()) + .size(50, 20) + .position(width / 2 - 25, 5) .build(); openConfigButton = ButtonWidget.builder(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.editRule"), a -> { client.setScreen(new ChatRuleConfigScreen(screen, chatRuleIndex)); - }) - .size(50,20) - .position(width / 2 + 45,5) + }) + .size(50, 20) + .position(width / 2 + 45, 5) .tooltip(Tooltip.of(Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.editRule.@Tooltip"))) .build(); @@ -126,18 +127,18 @@ public class ChatRulesConfigListWidget extends ElementListWidget>>() { - }.getType(); + Type chatRulesType = new TypeToken>>() {}.getType(); Map> chatRules = SkyblockerMod.GSON.fromJson(reader,chatRulesType); chatRuleList.addAll(chatRules.get("rules")); @@ -74,7 +73,7 @@ public class ChatRulesHandler { } private static void loadLocations() { - try { + try { String response = Http.sendGetRequest("https://api.hypixel.net/v2/resources/games"); JsonObject locationsJson = JsonParser.parseString(response).getAsJsonObject().get("games").getAsJsonObject().get("SKYBLOCK").getAsJsonObject().get("modeNames").getAsJsonObject(); for (Map.Entry entry : locationsJson.entrySet()) { @@ -86,10 +85,9 @@ public class ChatRulesHandler { } locationsList.add(entry.getValue().getAsString()); //add to list in a simplified for so more lenient for user input - locations.put(entry.getValue().getAsString().replace(" ", "").toLowerCase(),entry.getKey()); + locations.put(entry.getValue().getAsString().replace(" ", "").toLowerCase(), entry.getKey()); } - } - catch (Exception e) { + } catch (Exception e) { LOGGER.error("[Skyblocker] Failed to load locations!", e); } } @@ -110,18 +108,18 @@ public class ChatRulesHandler { * @param message the chat message * @param overlay if its overlay */ - private static boolean checkMessage(Text message, Boolean overlay) { + private static boolean checkMessage(Text message, boolean overlay) { if (!Utils.isOnSkyblock()) return true; //do not work not on skyblock if (overlay) return true; //ignore messages in overlay String plain = Formatting.strip(message.getString()); + for (ChatRule rule : chatRuleList) { if (rule.isMatch(plain)) { //get a replacement message Text newMessage; if (!rule.getReplaceMessage().isBlank()) { newMessage = formatText(rule.getReplaceMessage()); - } - else { + } else { newMessage = message; } @@ -135,7 +133,7 @@ public class ChatRulesHandler { } //hide message - if (!rule.getHideMessage() && CLIENT.player != null) { + if (!rule.getHideMessage() && CLIENT.player != null) { CLIENT.player.sendMessage(newMessage, false); } @@ -157,22 +155,24 @@ public class ChatRulesHandler { * @return formatted text */ protected static MutableText formatText(String codedString) { - if (codedString.contains(String.valueOf(Formatting.FORMATTING_CODE_PREFIX)) || codedString.contains("&")){ + if (codedString.contains(String.valueOf(Formatting.FORMATTING_CODE_PREFIX)) || codedString.contains("&")) { MutableText newText = Text.literal(""); String[] parts = codedString.split("[" + Formatting.FORMATTING_CODE_PREFIX +"&]"); Style style = Style.EMPTY; + for (String part : parts) { if (part.isEmpty()) continue; Formatting formatting = Formatting.byCode(part.charAt(0)); - if (formatting != null){ + + if (formatting != null) { style = style.withFormatting(formatting); Text.literal(part.substring(1)).getWithStyle(style).forEach(newText::append); } else { newText.append(Text.of(part)); } } - return newText; + return newText; } - return Text.literal(codedString); + return Text.literal(codedString); } } diff --git a/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java index 0c98debe..81a44ff0 100644 --- a/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java +++ b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRuleTest.java @@ -3,8 +3,6 @@ package de.hysky.skyblocker.skyblock.chat; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - class ChatRuleTest { @Test @@ -13,25 +11,25 @@ class ChatRuleTest { //test enabled check testRule.setFilter("test"); testRule.setEnabled(false); - Assertions.assertEquals(testRule.isMatch("test"),false); + Assertions.assertEquals(testRule.isMatch("test"), false); //test simple filter works testRule.setEnabled(true); - Assertions.assertEquals(testRule.isMatch("test"),true); + Assertions.assertEquals(testRule.isMatch("test"), true); //test partial match works - Assertions.assertEquals(testRule.isMatch("test extra"),false); + Assertions.assertEquals(testRule.isMatch("test extra"), false); testRule.setPartialMatch(true); - Assertions.assertEquals(testRule.isMatch("test extra"),true); + Assertions.assertEquals(testRule.isMatch("test extra"), true); //test ignore case works - Assertions.assertEquals(testRule.isMatch("TEST"),true); + Assertions.assertEquals(testRule.isMatch("TEST"), true); testRule.setIgnoreCase(false); - Assertions.assertEquals(testRule.isMatch("TEST"),false); + Assertions.assertEquals(testRule.isMatch("TEST"), false); //test regex testRule = new ChatRule(); testRule.setRegex(true); testRule.setFilter("[0-9]+"); - Assertions.assertEquals(testRule.isMatch("1234567"),true); - Assertions.assertEquals(testRule.isMatch("1234567 test"),false); + Assertions.assertEquals(testRule.isMatch("1234567"), true); + Assertions.assertEquals(testRule.isMatch("1234567 test"), false); } } \ No newline at end of file diff --git a/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java index 2c1b7956..5f1bf9de 100644 --- a/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java +++ b/src/test/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandlerTest.java @@ -7,10 +7,6 @@ import net.minecraft.util.Formatting; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import java.awt.*; - -import static org.junit.jupiter.api.Assertions.*; - class ChatRulesHandlerTest { @Test @@ -29,7 +25,7 @@ class ChatRulesHandlerTest { //generated text MutableText text = ChatRulesHandler.formatText("&1test&nline&2dark green&oitalic"); - Assertions.assertEquals(text,testText); + Assertions.assertEquals(text, testText); } } \ No newline at end of file -- cgit