From 6ab96bd1bd6a31601ef5989092645566b854fd96 Mon Sep 17 00:00:00 2001 From: allinkdev <44676012+allinkdev@users.noreply.github.com> Date: Fri, 25 Aug 2023 16:23:24 +0100 Subject: [PATCH] Properly cancel block explosions (#59) Fix chat sanitising --- .../java/dev/plex/listener/impl/TogglesListener.java | 12 +++++++++++- server/src/main/java/dev/plex/util/PlexUtils.java | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/dev/plex/listener/impl/TogglesListener.java b/server/src/main/java/dev/plex/listener/impl/TogglesListener.java index 7733778..4cd7565 100644 --- a/server/src/main/java/dev/plex/listener/impl/TogglesListener.java +++ b/server/src/main/java/dev/plex/listener/impl/TogglesListener.java @@ -2,6 +2,7 @@ package dev.plex.listener.impl; import dev.plex.listener.PlexListener; import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockRedstoneEvent; import org.bukkit.event.entity.EntityExplodeEvent; @@ -11,7 +12,7 @@ import org.bukkit.event.player.PlayerDropItemEvent; public class TogglesListener extends PlexListener { @EventHandler - public void onBlockExplode(ExplosionPrimeEvent event) + public void onExplosionPrime(ExplosionPrimeEvent event) { if (!plugin.toggles.getBoolean("explosions")) { @@ -20,6 +21,15 @@ public class TogglesListener extends PlexListener } } + @EventHandler + public void onBlockExplode(BlockExplodeEvent event) { + if (!plugin.toggles.getBoolean("explosions")) + { + event.getBlock().breakNaturally(); + event.setCancelled(true); + } + } + @EventHandler public void onEntityExplode(EntityExplodeEvent event) { diff --git a/server/src/main/java/dev/plex/util/PlexUtils.java b/server/src/main/java/dev/plex/util/PlexUtils.java index 68e2af8..5a6bdcf 100644 --- a/server/src/main/java/dev/plex/util/PlexUtils.java +++ b/server/src/main/java/dev/plex/util/PlexUtils.java @@ -281,6 +281,6 @@ public class PlexUtils implements PlexBase public static String cleanString(String input) { - return CharMatcher.ascii().retainFrom(input); + return CharMatcher.forPredicate(c -> Character.getDirectionality(c) != Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE || Character.getDirectionality(c) != Character.DIRECTIONALITY_RIGHT_TO_LEFT).retainFrom(input); } }