From 07ba6edb01e73cd180feaad96792f12ee6bd46ec Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Tue, 16 Dec 2025 16:35:35 +0800 Subject: [PATCH] Use message workaround to suppress DiscordSRV messages during share handling --- .../listeners/SilentGrantsListener.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/inventories/listeners/SilentGrantsListener.java b/src/main/java/org/mvplugins/multiverse/inventories/listeners/SilentGrantsListener.java index b45c1648..4fb98fca 100644 --- a/src/main/java/org/mvplugins/multiverse/inventories/listeners/SilentGrantsListener.java +++ b/src/main/java/org/mvplugins/multiverse/inventories/listeners/SilentGrantsListener.java @@ -60,7 +60,7 @@ void onPlayerAdvancementDone(PlayerAdvancementDoneEvent event) { if (playerShareHandlingState.isHandlingSharable(event.getPlayer(), Sharables.ADVANCEMENTS)) { Logging.finest("Suppressing advancement done message for player %s due to share handling.", event.getPlayer().getName()); - event.message(null); + event.message(net.kyori.adventure.text.Component.text("mvinv:suppressed")); } } @@ -75,9 +75,18 @@ void onPluginEnable(PluginEnableEvent event) { private class DiscordSrvHook { @Subscribe public void onAchievementMessage(AchievementMessagePreProcessEvent event) { - if (playerShareHandlingState.isHandlingSharable(event.getPlayer(), Sharables.ADVANCEMENTS)) { - Logging.finest("Suppressing DiscordSRV advancement grant message for player %s due to share handling.", - event.getPlayer().getName()); + if (!(event.getTriggeringBukkitEvent() instanceof PlayerAdvancementDoneEvent advancementEvent)) { + return; + } + if (!hasPlayerAdvancementDoneMessageMethod) { + // paper does not have the method to suppress notifications + return; + } + if (net.kyori.adventure.text.Component.EQUALS.test( + advancementEvent.message(), + net.kyori.adventure.text.Component.text("mvinv:suppressed"))) { + Logging.finest("Suppressing DiscordSRV advancement message for player %s due to share handling.", + advancementEvent.getPlayer().getName()); event.setCancelled(true); } }