Skip to content

Commit 7b9c30f

Browse files
committed
Fix scoreboard objective name length limit
1 parent a36d7f6 commit 7b9c30f

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

patches/api/0005-Adventure.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3977,7 +3977,7 @@ index ff3fcb2697eb00736238d0efdcaefe43043334d3..75acd6f8f3d774bb79e8e513125e801c
39773977

39783978
/**
39793979
diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
3980-
index 5c855dbd0da895392f7a6e92cdc90782baf614ad..f7754ab421c7b452a53c28d1e2fafdccfbba24bf 100644
3980+
index 5c855dbd0da895392f7a6e92cdc90782baf614ad..1ada91d790abedbc9b3aeb6e96467a0d78560f15 100644
39813981
--- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java
39823982
+++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
39833983
@@ -27,6 +27,48 @@ public interface Scoreboard {
@@ -3993,7 +3993,7 @@ index 5c855dbd0da895392f7a6e92cdc90782baf614ad..f7754ab421c7b452a53c28d1e2fafdcc
39933993
+ * @param displayName Name displayed to players for the Objective.
39943994
+ * @return The registered Objective
39953995
+ * @throws IllegalArgumentException if name is null
3996-
+ * @throws IllegalArgumentException if name is longer than 16
3996+
+ * @throws IllegalArgumentException if name is longer than 32767
39973997
+ * characters.
39983998
+ * @throws IllegalArgumentException if criteria is null
39993999
+ * @throws IllegalArgumentException if displayName is null
@@ -4013,7 +4013,7 @@ index 5c855dbd0da895392f7a6e92cdc90782baf614ad..f7754ab421c7b452a53c28d1e2fafdcc
40134013
+ * @param renderType Manner of rendering the Objective
40144014
+ * @return The registered Objective
40154015
+ * @throws IllegalArgumentException if name is null
4016-
+ * @throws IllegalArgumentException if name is longer than 16
4016+
+ * @throws IllegalArgumentException if name is longer than 32767
40174017
+ * characters.
40184018
+ * @throws IllegalArgumentException if criteria is null
40194019
+ * @throws IllegalArgumentException if displayName is null

patches/server/0008-Adventure.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3331,7 +3331,7 @@ index e9bb0728ae5c16aad4acc106d332db5095db4033..6752cd9b3bc246fc2a7764df0d2b40d3
33313331
public String getDisplayName() throws IllegalStateException {
33323332
CraftScoreboard scoreboard = this.checkState();
33333333
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
3334-
index afc059755ae3e7b1c0a4cf3c6b8f32ce13cc458d..59f60fcadd8767cf8698482547e8c771d970732a 100644
3334+
index afc059755ae3e7b1c0a4cf3c6b8f32ce13cc458d..5f2af880619e01a03e05258ae1f9fa58110f7f2a 100644
33353335
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
33363336
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
33373337
@@ -27,6 +27,27 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
@@ -3352,7 +3352,7 @@ index afc059755ae3e7b1c0a4cf3c6b8f32ce13cc458d..59f60fcadd8767cf8698482547e8c771
33523352
+ Validate.notNull(criteria, "Criteria cannot be null");
33533353
+ Validate.notNull(displayName, "Display name cannot be null");
33543354
+ Validate.notNull(renderType, "RenderType cannot be null");
3355-
+ Validate.isTrue(name.length() <= 16, "The name '" + name + "' is longer than the limit of 16 characters");
3355+
+ Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
33563356
+ Validate.isTrue(board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
33573357
+ CraftCriteria craftCriteria = CraftCriteria.getFromBukkit(criteria);
33583358
+ net.minecraft.world.scores.Objective objective = board.addObjective(name, craftCriteria.criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType));

patches/server/0510-Lazily-track-plugin-scoreboards-by-default.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ this breaks your workflow you can always force all scoreboards to be tracked wit
1414
settings.track-plugin-scoreboards in paper.yml.
1515

1616
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
17-
index b3f872e4920babfe521effb233b13f8e9c85bef1..7a99db37a91edd12ef4a5d8cad690f6e62d31ba0 100644
17+
index ba2d5e53f39234c8cd5927b6fc7aaf7049a0b4cb..b057fa550b287fe4dcd7c8c0be14dc9fde6eb92b 100644
1818
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
1919
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
2020
@@ -96,6 +96,11 @@ public class PaperConfig {
@@ -30,7 +30,7 @@ index b3f872e4920babfe521effb233b13f8e9c85bef1..7a99db37a91edd12ef4a5d8cad690f6e
3030
for (Map.Entry<String, Command> entry : commands.entrySet()) {
3131
MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Paper", entry.getValue());
3232
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
33-
index 59f60fcadd8767cf8698482547e8c771d970732a..7b61a2be2be0bdf06592b65be9acd4cbbae5bf7f 100644
33+
index 5f2af880619e01a03e05258ae1f9fa58110f7f2a..944080939ceaf2db8bcd7d3c01f4b97440e35cc1 100644
3434
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
3535
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
3636
@@ -18,6 +18,7 @@ import org.bukkit.scoreboard.Team;
@@ -42,7 +42,7 @@ index 59f60fcadd8767cf8698482547e8c771d970732a..7b61a2be2be0bdf06592b65be9acd4cb
4242
CraftScoreboard(Scoreboard board) {
4343
this.board = board;
4444
@@ -44,6 +45,12 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
45-
Validate.isTrue(name.length() <= 16, "The name '" + name + "' is longer than the limit of 16 characters");
45+
Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
4646
Validate.isTrue(board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
4747
CraftCriteria craftCriteria = CraftCriteria.getFromBukkit(criteria);
4848
+ // Paper start - the block comment from the old registerNewObjective didnt cause a conflict when rebasing, so this block wasn't added to the adventure registerNewObjective

0 commit comments

Comments
 (0)