From f05a7d0a96c7b1f4f558f04f94c93e6358b4fcd0 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 12 Aug 2024 18:42:08 +0200 Subject: [PATCH] Improve standard messenger logging --- ...StandardMessenger-exception-messages.patch | 56 +++++++++++++++++++ .../Flag-to-disable-the-channel-limit.patch | 2 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 patches/api/Improve-StandardMessenger-exception-messages.patch diff --git a/patches/api/Improve-StandardMessenger-exception-messages.patch b/patches/api/Improve-StandardMessenger-exception-messages.patch new file mode 100644 index 0000000000..dc0eaa51b4 --- /dev/null +++ b/patches/api/Improve-StandardMessenger-exception-messages.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nassim Jahnke +Date: Mon, 12 Aug 2024 18:38:19 +0200 +Subject: [PATCH] Improve StandardMessenger exception messages + + +diff --git a/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java b/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java ++++ b/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java +@@ -0,0 +0,0 @@ public class ChannelNameTooLongException extends RuntimeException { + super("Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is " + Messenger.MAX_CHANNEL_SIZE + " chars."); + } + +- public ChannelNameTooLongException(String channel) { +- super("Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is " + Messenger.MAX_CHANNEL_SIZE + " chars (attempted " + channel.length() + " - '" + channel + "."); ++ // Paper start ++ public ChannelNameTooLongException(int length, String shortenedChannel) { ++ super("Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is " + Messenger.MAX_CHANNEL_SIZE + " chars (attempted " + length + " - '" + shortenedChannel + "."); ++ // Paper end + } + } +diff --git a/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java b/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java ++++ b/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java +@@ -0,0 +0,0 @@ public class StandardMessenger implements Messenger { + if (channel.equals("bungeecord:main")) { + return "BungeeCord"; + } ++ // Paper start - improve error message + if (channel.length() > Messenger.MAX_CHANNEL_SIZE) { +- throw new ChannelNameTooLongException(channel); ++ throw new ChannelNameTooLongException(channel.length(), shortened(channel)); + } + if (channel.indexOf(':') == -1) { +- throw new IllegalArgumentException("Channel must contain : separator (attempted to use " + channel + ")"); ++ throw new IllegalArgumentException("Channel must contain : separator (attempted to use " + shortened(channel) + ")"); + } + if (!channel.toLowerCase(Locale.ROOT).equals(channel)) { + // TODO: use NamespacedKey validation here +- throw new IllegalArgumentException("Channel must be entirely lowercase (attempted to use " + channel + ")"); ++ throw new IllegalArgumentException("Channel must be entirely lowercase (attempted to use " + shortened(channel) + ")"); + } + return channel; + } + ++ private static String shortened(String channel) { ++ channel = org.apache.commons.lang3.StringUtils.normalizeSpace(channel); ++ return channel.length() > 32 ? channel.substring(0, 32) + "..." : channel; ++ } ++ // Paper end - improve error message ++ + /** + * Validates the input of a Plugin Message, ensuring the arguments are all + * valid. diff --git a/patches/server/Flag-to-disable-the-channel-limit.patch b/patches/server/Flag-to-disable-the-channel-limit.patch index fa2f639edc..c67c7bd80e 100644 --- a/patches/server/Flag-to-disable-the-channel-limit.patch +++ b/patches/server/Flag-to-disable-the-channel-limit.patch @@ -25,7 +25,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public void addChannel(String channel) { - Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel); -+ Preconditions.checkState(DISABLE_CHANNEL_LIMIT || this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel); // Paper - flag to disable channel limit ++ Preconditions.checkState(DISABLE_CHANNEL_LIMIT || this.channels.size() < 128, "Cannot register channel. Too many channels registered!"); // Paper - flag to disable channel limit channel = StandardMessenger.validateAndCorrectChannel(channel); if (this.channels.add(channel)) { this.server.getPluginManager().callEvent(new PlayerRegisterChannelEvent(this, channel));