9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2026-01-04 15:31:43 +00:00

Backport more upstream fixes

This commit is contained in:
Samsuik
2024-08-25 01:24:40 +01:00
parent 939954b3fe
commit 471bc0e283
3 changed files with 103 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nassim Jahnke <nassim@njahnke.dev>
Date: Mon, 12 Aug 2024 18:42:08 +0200
Subject: [PATCH] PAPER Improve standard messenger logging
Backported https://github.com/PaperMC/Paper/commit/7c9240f4a63b13be1fdcedbfb0270f9b49b75518
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.

View File

@@ -0,0 +1,20 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nassim Jahnke <nassim@njahnke.dev>
Date: Mon, 12 Aug 2024 18:42:08 +0200
Subject: [PATCH] PAPER Improve standard messenger logging
Backported https://github.com/PaperMC/Paper/commit/7c9240f4a63b13be1fdcedbfb0270f9b49b75518
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3ddd3fee5d8e2208c6e0afbdf68ca7344772fd8b..ed26fe6653fc01a73d78332243207fcbad033860 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2579,7 +2579,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void addChannel(String 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));

View File

@@ -0,0 +1,26 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Sun, 18 Aug 2024 15:32:25 -0700
Subject: [PATCH] PAPER Use player file, not directory, when checking for
offline player data
When trying to fall back to offline player data in onlide mode,
we need to use the player file. This fixes a mistake during
update where 'file' was used, but the new code uses 'file1'
for the player file.
Backported https://github.com/PaperMC/Paper/commit/be1078f5f2e28c1a1de99e9c96e4003c3f96f6e8
diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
index 8ab7ca373a885fbe658013c9c6a2e38d32d77bb2..b148cf247acdd36f856d0495cde4cc5ad32b5a2f 100644
--- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
+++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
@@ -78,7 +78,7 @@ public class PlayerDataStorage {
File file1 = new File(file, s1 + s);
// Spigot Start
boolean usingWrongFile = false;
- if ( org.bukkit.Bukkit.getOnlineMode() && !file.exists() ) // Paper - Check online mode first
+ if ( org.bukkit.Bukkit.getOnlineMode() && !file1.exists() ) // Paper - Check online mode first
{
file1 = new File( file, java.util.UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + name ).getBytes( java.nio.charset.StandardCharsets.UTF_8 ) ).toString() + s );
if ( file1.exists() )