2021-10-04 11:31:26 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
Date: Fri, 1 Oct 2021 08:04:39 -0700
|
|
|
|
Subject: [PATCH] Add missing team sidebar display slots
|
|
|
|
|
2022-11-20 00:53:20 +01:00
|
|
|
== AT ==
|
|
|
|
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations
|
|
|
|
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations toBukkitSlot(I)Lorg/bukkit/scoreboard/DisplaySlot;
|
|
|
|
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations fromBukkitSlot(Lorg/bukkit/scoreboard/DisplaySlot;)I
|
2021-10-04 11:31:26 +02:00
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
2023-09-22 14:33:54 +02:00
|
|
|
index 808118a033ace90246318dcf6a3110cab353d09c..fb492372f9656d5ac8e3d07c0ba2efc0d192db9b 100644
|
2021-10-04 11:31:26 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
2023-09-22 14:33:54 +02:00
|
|
|
@@ -6,37 +6,23 @@ import org.bukkit.scoreboard.DisplaySlot;
|
2021-10-04 11:31:26 +02:00
|
|
|
import org.bukkit.scoreboard.RenderType;
|
|
|
|
|
|
|
|
public final class CraftScoreboardTranslations {
|
2022-08-09 09:18:08 +02:00
|
|
|
- static final int MAX_DISPLAY_SLOT = 19;
|
2023-09-22 14:33:54 +02:00
|
|
|
+ static final int MAX_DISPLAY_SLOT = net.minecraft.world.scores.DisplaySlot.values().length; // Paper // TODO - revisit this.
|
2021-10-04 11:31:26 +02:00
|
|
|
+ @Deprecated // Paper
|
2022-08-09 09:18:08 +02:00
|
|
|
static final ImmutableBiMap<DisplaySlot, String> SLOTS = ImmutableBiMap.<DisplaySlot, String>builder()
|
2023-09-22 14:33:54 +02:00
|
|
|
.put(DisplaySlot.BELOW_NAME, "below_name")
|
2022-08-09 09:18:08 +02:00
|
|
|
.put(DisplaySlot.PLAYER_LIST, "list")
|
|
|
|
.put(DisplaySlot.SIDEBAR, "sidebar")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_BLACK, "sidebar.team.black")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_DARK_BLUE, "sidebar.team.dark_blue")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_DARK_GREEN, "sidebar.team.dark_green")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_DARK_AQUA, "sidebar.team.dark_aqua")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_DARK_RED, "sidebar.team.dark_red")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_DARK_PURPLE, "sidebar.team.dark_purple")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_GOLD, "sidebar.team.gold")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_GRAY, "sidebar.team.gray")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_DARK_GRAY, "sidebar.team.dark_gray")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_BLUE, "sidebar.team.blue")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_GREEN, "sidebar.team.green")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_AQUA, "sidebar.team.aqua")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_RED, "sidebar.team.red")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_LIGHT_PURPLE, "sidebar.team.light_purple")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_YELLOW, "sidebar.team.yellow")
|
|
|
|
- .put(DisplaySlot.SIDEBAR_WHITE, "sidebar.team.white")
|
|
|
|
.buildOrThrow();
|
|
|
|
|
2021-10-04 11:31:26 +02:00
|
|
|
private CraftScoreboardTranslations() {}
|
|
|
|
|
2023-09-22 14:33:54 +02:00
|
|
|
static DisplaySlot toBukkitSlot(net.minecraft.world.scores.DisplaySlot minecraft) {
|
|
|
|
+ if (true) return org.bukkit.scoreboard.DisplaySlot.NAMES.value(minecraft.getSerializedName()); // Paper
|
|
|
|
return CraftScoreboardTranslations.SLOTS.inverse().get(minecraft.getSerializedName());
|
2021-10-04 11:31:26 +02:00
|
|
|
}
|
|
|
|
|
2023-09-22 14:33:54 +02:00
|
|
|
static net.minecraft.world.scores.DisplaySlot fromBukkitSlot(DisplaySlot slot) {
|
|
|
|
- return net.minecraft.world.scores.DisplaySlot.CODEC.byName(CraftScoreboardTranslations.SLOTS.get(slot));
|
|
|
|
+ return net.minecraft.world.scores.DisplaySlot.CODEC.byName(slot.getId()); // Paper
|
2021-10-04 11:31:26 +02:00
|
|
|
}
|
|
|
|
|
2023-09-22 14:33:54 +02:00
|
|
|
static RenderType toBukkitRender(ObjectiveCriteria.RenderType display) {
|
2022-08-09 09:18:08 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
2023-06-08 04:04:01 +02:00
|
|
|
index fe5d3b60ad740b7f1cce040f9c8d96ac51245ef6..43ffc4180b1ef2d2000991ad58b0706141470d08 100644
|
2022-08-09 09:18:08 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
2022-11-05 06:16:57 +01:00
|
|
|
@@ -251,6 +251,14 @@ public class Commodore
|
2022-08-09 09:18:08 +02:00
|
|
|
desc = getOriginalOrRewrite( desc );
|
|
|
|
}
|
|
|
|
// Paper end
|
|
|
|
+ // Paper start - DisplaySlot
|
|
|
|
+ if (owner.equals("org/bukkit/scoreboard/DisplaySlot")) {
|
|
|
|
+ if (name.startsWith("SIDEBAR_") && !name.startsWith("SIDEBAR_TEAM_")) {
|
|
|
|
+ super.visitFieldInsn(opcode, owner, name.replace("SIDEBAR_", "SIDEBAR_TEAM_"), desc);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // Paper end - DisplaySlot
|
|
|
|
|
|
|
|
if ( owner.equals( "org/bukkit/block/Biome" ) )
|
|
|
|
{
|
2021-10-04 11:31:26 +02:00
|
|
|
diff --git a/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java b/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java
|
|
|
|
new file mode 100644
|
|
|
|
index 0000000000000000000000000000000000000000..bb41a2f2c0a5e3b4cb3fe1b584e0ceb7a7116afb
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java
|
|
|
|
@@ -0,0 +1,26 @@
|
|
|
|
+package io.papermc.paper.scoreboard;
|
|
|
|
+
|
|
|
|
+import net.minecraft.world.scores.Scoreboard;
|
|
|
|
+import org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations;
|
|
|
|
+import org.bukkit.scoreboard.DisplaySlot;
|
|
|
|
+import org.junit.Test;
|
|
|
|
+
|
|
|
|
+import static org.junit.Assert.assertNotEquals;
|
|
|
|
+import static org.junit.Assert.assertNotNull;
|
|
|
|
+
|
|
|
|
+public class DisplaySlotTest {
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void testBukkitToMinecraftDisplaySlots() {
|
|
|
|
+ for (DisplaySlot value : DisplaySlot.values()) {
|
|
|
|
+ assertNotEquals(-1, CraftScoreboardTranslations.fromBukkitSlot(value));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void testMinecraftToBukkitDisplaySlots() {
|
|
|
|
+ for (String name : Scoreboard.getDisplaySlotNames()) {
|
|
|
|
+ assertNotNull(CraftScoreboardTranslations.toBukkitSlot(Scoreboard.getDisplaySlotByName(name)));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|