Skip to content

Commit 492bfb8

Browse files
committed
Feat: Block message patterns
1 parent 070f940 commit 492bfb8

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

abstraction/src/main/java/com/loohp/multichatdiscordsrvaddon/config/Config.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,8 @@ public record Settings(
400400
RendererSettings rendererSettings,
401401
FormattingTags formattingTags,
402402
UnknownItem unknownItem,
403-
@Comment("Toggle the update checker") boolean updater
403+
@Comment("Toggle the update checker") boolean updater,
404+
@Comment("Block specific messages (Regex) here.") List<String> blockedMessages
404405
) {}
405406

406407
public record DynmapHook(
@@ -735,7 +736,8 @@ public record Debug(
735736
"<grey>does not exist in this version of Minecraft."
736737
)
737738
),
738-
true
739+
true,
740+
List.of()
739741
);
740742

741743
@Comment("\nPlugin hook configs")

common/src/main/java/com/loohp/multichatdiscordsrvaddon/MultiChatDiscordSrvAddon.java

+2
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ public class MultiChatDiscordSrvAddon extends ExtendedJavaPlugin implements List
123123
public List<String> resourceOrder = new ArrayList<>();
124124
public ItemStack unknownReplaceItem;
125125
public List<Pattern> additionalRGBFormats;
126+
public List<Pattern> toBlockPatterns;
126127

127128
public final ReentrantLock resourceReloadLock = new ReentrantLock(true);
128129
public Metrics metrics;
@@ -349,6 +350,7 @@ public void processConfigs() {
349350
}
350351

351352
additionalRGBFormats = Config.i().getSettings().formattingTags().additionalRGBFormats().stream().map(Pattern::compile).collect(Collectors.toList());
353+
toBlockPatterns = Config.i().getSettings().blockedMessages().stream().map(Pattern::compile).collect(Collectors.toList());
352354

353355
try {
354356
ItemStack unknown = new ItemStack(Material.valueOf(Config.i().getSettings().unknownItem().replaceItem().toUpperCase()));

common/src/main/java/com/loohp/multichatdiscordsrvaddon/listeners/DiscordCommands.java

-3
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,8 @@
2222

2323
import com.cryptomorin.xseries.XMaterial;
2424
import com.github.retrooper.packetevents.event.PacketListener;
25-
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
2625
import com.github.retrooper.packetevents.event.PacketSendEvent;
2726
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
28-
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientChatMessage;
29-
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerChatMessage;
3027
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSystemChatMessage;
3128
import com.loohp.multichatdiscordsrvaddon.api.MultiChatDiscordSrvAddonAPI;
3229
import com.loohp.multichatdiscordsrvaddon.bungee.BungeeMessageSender;

common/src/main/java/com/loohp/multichatdiscordsrvaddon/listeners/OutboundToDiscordEvents.java

+7
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,13 @@ public Component processGameMessage(OfflinePlayer icSender, Component component,
294294

295295
String plain = MultiChatComponentSerializer.plainText().serialize(originalPlain);
296296

297+
for (Pattern pattern : MultiChatDiscordSrvAddon.plugin.toBlockPatterns) {
298+
Matcher matcher = pattern.matcher(plain);
299+
if (matcher.matches()) {
300+
return null;
301+
}
302+
}
303+
297304
Debug.debug("onGameToDiscord processing custom placeholders");
298305
for (ICPlaceholder placeholder : MultiChatDiscordSrvAddonAPI.getPlaceholderList()) {
299306
if (!placeholder.isBuildIn()) {

0 commit comments

Comments
 (0)