aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-08-12 18:42:08 +0200
committerNassim Jahnke <[email protected]>2024-08-12 18:42:08 +0200
commit7c9240f4a63b13be1fdcedbfb0270f9b49b75518 (patch)
tree232a5554d2440a10a72ff0ad1e3d545260b83c77
parent1798e949e5727f376ccaee51873f21dcdedc9a5f (diff)
downloadPaper-7c9240f4a63b13be1fdcedbfb0270f9b49b75518.tar.gz
Paper-7c9240f4a63b13be1fdcedbfb0270f9b49b75518.zip
Improve standard messenger logging
-rw-r--r--patches/api/0483-Improve-StandardMessenger-exception-messages.patch56
-rw-r--r--patches/server/0181-Flag-to-disable-the-channel-limit.patch4
2 files changed, 58 insertions, 2 deletions
diff --git a/patches/api/0483-Improve-StandardMessenger-exception-messages.patch b/patches/api/0483-Improve-StandardMessenger-exception-messages.patch
new file mode 100644
index 0000000000..db8286512a
--- /dev/null
+++ b/patches/api/0483-Improve-StandardMessenger-exception-messages.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nassim Jahnke <[email protected]>
+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 80ef8a2a342ff9dc16c98b5254cadd539f6ea0d9..ea73d9cd9d9d84731c083089d0b9913b4b1f92b6 100644
+--- a/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java
++++ b/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java
+@@ -9,7 +9,9 @@ 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 6fda7f3aa68e76af64362e9afed70fc6a5e92986..230ecf9f9752b0369da3ba7aa6ce68b34a0814c5 100644
+--- a/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java
++++ b/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java
+@@ -496,19 +496,26 @@ 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/0181-Flag-to-disable-the-channel-limit.patch b/patches/server/0181-Flag-to-disable-the-channel-limit.patch
index fa388c8eb7..0745b45aae 100644
--- a/patches/server/0181-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0181-Flag-to-disable-the-channel-limit.patch
@@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 19f644442eb7ae352d655d5e62f47f261b7b1b0a..db79201906e231b13c6f237193c3e8597bce9106 100644
+index 422c25577a0d95b31b5528fad8fc9b3ae97fa7f0..4e5dba1da323f12d77a36635c9227b1239856254 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -209,6 +209,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -25,7 +25,7 @@ index 19f644442eb7ae352d655d5e62f47f261b7b1b0a..db79201906e231b13c6f237193c3e859
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));