From b21711bf9f5fcc5b28235a44d659e3ae4b5f6e7d Mon Sep 17 00:00:00 2001 From: Jakub Kolodziej Date: Mon, 19 Jun 2023 00:52:02 +0200 Subject: Possibly shorter solution + tests added --- .../skyblock/dungeon/AcceptRepartyTest.java | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java (limited to 'src/test/java/me') diff --git a/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java b/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java new file mode 100644 index 00000000..0fd0363b --- /dev/null +++ b/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java @@ -0,0 +1,35 @@ +package me.xmrvizzy.skyblocker.skyblock.dungeon; + +import me.xmrvizzy.skyblocker.chat.ChatPatternListenerTest; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.regex.Matcher; + +public class AcceptRepartyTest extends ChatPatternListenerTest { + + public AcceptRepartyTest() { super(new Reparty()); } + + protected void assertGroup(String message, String group, String expect) { + Matcher matcher = matcher(message); + assertTrue(matcher.matches()); + assertEquals(expect, matcher.group(group)); + } + + @Test + void testDisband() { + assertGroup("[VIP+] KoloiYolo has disbanded the party!", + /* group: */ "disband", + /* expect: */ "KoloiYolo"); + } + + @Test + void testInvite() { + assertGroup("-----------------------------------------------------" + + "\nStefan has invited you to join their party!" + + "\nYou have 60 seconds to accept. Click here to join!" + + "\n-----------------------------------------------------", + /* group: */ "invite", + /* expect: */ "Stefan"); + } +} \ No newline at end of file -- cgit From 9d71ef0f17197db692a45be9be3866d4573c9621 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sun, 25 Jun 2023 05:36:58 -0400 Subject: Fix chat ad filter (#188) --- .../xmrvizzy/skyblocker/chat/filters/AdFilter.java | 46 +++++++++++----------- .../skyblocker/chat/filters/AdFilterTest.java | 18 ++++----- 2 files changed, 32 insertions(+), 32 deletions(-) (limited to 'src/test/java/me') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java index 5f9f463d..67734438 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java @@ -9,30 +9,30 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class AdFilter extends ChatPatternListener { - private static final Pattern[] AD_FILTERS = new Pattern[]{ - Pattern.compile("^(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?(?:\\W|$)", Pattern.CASE_INSENSITIVE), - Pattern.compile("(.)\\1{7,}"), - Pattern.compile("\\W(?:on|in|check|at) my (?:ah|bin)(?:\\W|$)", Pattern.CASE_INSENSITIVE), - }; + private static final Pattern[] AD_FILTERS = new Pattern[] { + Pattern.compile("^(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?(?:\\W|$)", Pattern.CASE_INSENSITIVE), + Pattern.compile("(.)\\1{7,}"), + Pattern.compile("\\W(?:on|in|check|at) my (?:ah|bin)(?:\\W|$)", Pattern.CASE_INSENSITIVE), }; - public AdFilter() { - // Groups: - // 1. Player name - // 2. Message - super("^§[67ab](?:\\[(?:MVP|VIP)(?:§[0-9a-f]\\+{1,2}§[6ab])?] )?([a-zA-Z0-9_]{2,16})§[7f]: (.*)$"); - } + public AdFilter() { + // Groups: + // 1. Player name + // 2. Message + // (?:§8\[[§fadbc0-9]+§8\] )?§[67abc](?:\[[§A-Za-z0-9+]+\] )?([A-Za-z0-9_]+)§[f7]: (.+) + super("(?:§8\\[[§fadbc0-9]+§8\\] )?§[67abc](?:\\[[§A-Za-z0-9+]+\\] )?([A-Za-z0-9_]+)§[f7]: (.+)"); + } - @Override - public boolean onMatch(Text _message, Matcher matcher) { - String message = matcher.group(2); - for (Pattern adFilter : AD_FILTERS) - if (adFilter.matcher(message).find()) - return true; - return false; - } + @Override + public boolean onMatch(Text _message, Matcher matcher) { + String message = matcher.group(2); + for (Pattern adFilter : AD_FILTERS) + if (adFilter.matcher(message).find()) + return true; + return false; + } - @Override - protected ChatFilterResult state() { - return SkyblockerConfig.get().messages.hideAds; - } + @Override + protected ChatFilterResult state() { + return SkyblockerConfig.get().messages.hideAds; + } } \ No newline at end of file diff --git a/src/test/java/me/xmrvizzy/skyblocker/chat/filters/AdFilterTest.java b/src/test/java/me/xmrvizzy/skyblocker/chat/filters/AdFilterTest.java index 73fb5dbd..a769dca2 100644 --- a/src/test/java/me/xmrvizzy/skyblocker/chat/filters/AdFilterTest.java +++ b/src/test/java/me/xmrvizzy/skyblocker/chat/filters/AdFilterTest.java @@ -14,47 +14,47 @@ class AdFilterTest extends ChatPatternListenerTest { @Test void noRank() { - assertMatches("§7Advertiser§7: advertisement"); + assertMatches("§8[§a86§8] §7Advertiser§7: advertisement"); } @Test void vip() { - assertMatches("§a[VIP] Advertiser§f: advertisement"); + assertMatches("§8[§b280§8] §a[VIP] Advertiser§f: advertisement"); } @Test void mvp() { - assertMatches("§b[MVP§c+§b] Advertiser§f: advertisement"); + assertMatches("§8[§d256§8] §b[MVP§c+§b] Advertiser§f: advertisement"); } @Test void plusPlus() { - assertMatches("§6[MVP§c++§6] Advertiser§f: advertisement"); + assertMatches("§8[§6222§8] §6[MVP§c++§6] Advertiser§f: advertisement"); } @Test void capturesMessage() { - assertGroup("§b[MVP§c+§b] b2dderr§f: buying prismapump", 2, "buying prismapump"); + assertGroup("§8[§c325§8] §b[MVP§c+§b] b2dderr§f: buying prismapump", 2, "buying prismapump"); } @Test void simpleAd() { - assertFilters("§b[MVP§c+§b] b2dderr§f: buying prismapump"); + assertFilters("§8[§c320§8] §b[MVP§c+§b] b2dderr§f: buying prismapump"); } @Test void uppercaseAd() { - assertFilters("§a[VIP] Tecnoisnoob§f: SELLING REJUVENATE 5 Book on ah!"); + assertFilters("§8[§f70§8] §a[VIP] Tecnoisnoob§f: SELLING REJUVENATE 5 Book on ah!"); } @Test void characterSpam() { - assertFilters("§a[VIP] Benyyy_§f: Hey, Visit my Island, i spent lots of time to build it! I also made donate room! <<<<<<<<<<<<<<<<<<<"); + assertFilters("§8[§9144§8] §a[VIP] Benyyy_§f: Hey, Visit my Island, i spent lots of time to build it! I also made donate room! <<<<<<<<<<<<<<<<<<<"); } @Test void notAd() { - Matcher matcher = listener.pattern.matcher("§a[VIP] NotMatching§f: This message shouldn't match!"); + Matcher matcher = listener.pattern.matcher("§8[§6200§8] §a[VIP] NotMatching§f: This message shouldn't match!"); assertTrue(matcher.matches()); assertFalse(listener.onMatch(null, matcher)); } -- cgit From 8f3bc2b02dc66dfa337f77fa0109cac1bdc8816c Mon Sep 17 00:00:00 2001 From: Jakub Kolodziej Date: Thu, 29 Jun 2023 19:56:24 +0200 Subject: changed "[A-z0-9_]" in regex to "." --- .../me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/test/java/me') diff --git a/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java b/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java index 0fd0363b..2465f7a2 100644 --- a/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java +++ b/src/test/java/me/xmrvizzy/skyblocker/skyblock/dungeon/AcceptRepartyTest.java @@ -26,10 +26,10 @@ public class AcceptRepartyTest extends ChatPatternListenerTest { @Test void testInvite() { assertGroup("-----------------------------------------------------" + - "\nStefan has invited you to join their party!" + + "\n[MVP+] 1wolvesgaming has invited you to join their party!" + "\nYou have 60 seconds to accept. Click here to join!" + "\n-----------------------------------------------------", /* group: */ "invite", - /* expect: */ "Stefan"); + /* expect: */ "1wolvesgaming"); } } \ No newline at end of file -- cgit