From 5f4b9e502df757d34a5b362429bf150d6d2c693b Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Fri, 10 Nov 2017 10:47:12 +1100 Subject: [PATCH] Catch exceptions per plugin in PluginMessage handling By: md_5 --- .../org/bukkit/plugin/messaging/StandardMessenger.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/paper-api/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java b/paper-api/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java index 29bcb39c4..c7ecc9d94 100644 --- a/paper-api/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java +++ b/paper-api/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.logging.Level; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -421,7 +422,14 @@ public class StandardMessenger implements Messenger { Set registrations = getIncomingChannelRegistrations(channel); for (PluginMessageListenerRegistration registration : registrations) { - registration.getListener().onPluginMessageReceived(channel, source, message); + try { + registration.getListener().onPluginMessageReceived(channel, source, message); + } catch (Throwable t) { + registration.getPlugin().getLogger().log(Level.WARNING, + String.format("Plugin %s generated an exception whilst handling plugin message", + registration.getPlugin().getDescription().getFullName() + ), t); + } } }