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
2023-09-23 01:07:33 +02:00
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations toBukkitSlot(Lnet/minecraft/world/scores/DisplaySlot;)Lorg/bukkit/scoreboard/DisplaySlot;
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations fromBukkitSlot(Lorg/bukkit/scoreboard/DisplaySlot;)Lnet/minecraft/world/scores/DisplaySlot;
2021-10-04 11:31:26 +02:00
2024-04-24 17:27:28 +02:00
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
2024-06-13 16:45:27 +02:00
index 4ce818047911922857a5d5b377aa34ae0dfecba4..d0ca716aba5706afdd93900d62d95b7ab5073ca6 100644
2024-04-24 17:27:28 +02:00
--- a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
2024-06-13 16:45:27 +02:00
@@ -35,6 +35,7 @@ public class FieldRename {
2024-04-24 17:27:28 +02:00
}
return switch (owner) {
2024-04-27 04:33:30 +02:00
+ case "org/bukkit/scoreboard/DisplaySlot" -> FieldRename.convertDisplaySlot(from); // Paper - DisplaySlot
2024-04-24 17:27:28 +02:00
case "org/bukkit/block/banner/PatternType" -> FieldRename.convertPatternTypeName(apiVersion, from);
case "org/bukkit/enchantments/Enchantment" -> FieldRename.convertEnchantmentName(apiVersion, from);
case "org/bukkit/block/Biome" -> FieldRename.convertBiomeName(apiVersion, from);
2024-06-13 16:45:27 +02:00
@@ -65,6 +66,16 @@ public class FieldRename {
2024-05-11 23:48:37 +02:00
// }
// Paper end
2024-04-24 17:27:28 +02:00
+ // Paper start - DisplaySlot
+ @DoNotReroute
2024-04-27 04:33:30 +02:00
+ public static String convertDisplaySlot(final String from) {
+ if (from.startsWith("SIDEBAR_") && !from.startsWith("SIDEBAR_TEAM_")) {
+ return from.replace("SIDEBAR_", "SIDEBAR_TEAM_");
+ }
+ return from;
2024-04-24 17:27:28 +02:00
+ }
+ // Paper end - DisplaySlot
+
// PatternType
private static final FieldRenameData PATTERN_TYPE_DATA = FieldRenameData.Builder.newBuilder()
.forVersionsBefore(ApiVersion.FIELD_NAME_PARITY)
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-23 01:07:33 +02:00
index 73c5ffff70605b32188a9bb5fb6c0ee04cb66efe..711d227f5ee6d63356a94a0567968da48e9f284c 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-23 01:07:33 +02:00
@@ -7,35 +7,22 @@ import org.bukkit.scoreboard.RenderType;
2021-10-04 11:31:26 +02:00
public final class CraftScoreboardTranslations {
2023-09-23 01:07:33 +02:00
static final int MAX_DISPLAY_SLOT = 19;
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-23 01:07:33 +02:00
public static DisplaySlot toBukkitSlot(net.minecraft.world.scores.DisplaySlot minecraft) {
+ if (true) return DisplaySlot.NAMES.value(minecraft.getSerializedName()); // Paper
2023-09-22 14:33:54 +02:00
return CraftScoreboardTranslations.SLOTS.inverse().get(minecraft.getSerializedName());
2021-10-04 11:31:26 +02:00
}
2023-09-23 01:07:33 +02:00
public static net.minecraft.world.scores.DisplaySlot fromBukkitSlot(DisplaySlot slot) {
+ if (true) return net.minecraft.world.scores.DisplaySlot.CODEC.byName(slot.getId()); // Paper
return net.minecraft.world.scores.DisplaySlot.CODEC.byName(CraftScoreboardTranslations.SLOTS.get(slot));
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
2023-09-24 09:16:58 +02:00
index 0000000000000000000000000000000000000000..69c9678f8218c240be1044eeabe1c6bef7747b1e
2021-10-04 11:31:26 +02:00
--- /dev/null
+++ b/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java
2023-09-23 01:07:33 +02:00
@@ -0,0 +1,24 @@
2021-10-04 11:31:26 +02:00
+package io.papermc.paper.scoreboard;
+
+import org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations;
+import org.bukkit.scoreboard.DisplaySlot;
2023-09-24 09:16:58 +02:00
+import org.junit.jupiter.api.Test;
2021-10-04 11:31:26 +02:00
+
2023-09-24 09:16:58 +02:00
+import static org.junit.jupiter.api.Assertions.assertNotNull;
2021-10-04 11:31:26 +02:00
+
+public class DisplaySlotTest {
+
+ @Test
+ public void testBukkitToMinecraftDisplaySlots() {
2023-09-23 01:07:33 +02:00
+ for (DisplaySlot bukkitSlot : DisplaySlot.values()) {
+ assertNotNull(CraftScoreboardTranslations.fromBukkitSlot(bukkitSlot));
2021-10-04 11:31:26 +02:00
+ }
+ }
+
+ @Test
+ public void testMinecraftToBukkitDisplaySlots() {
2023-09-23 01:07:33 +02:00
+ for (net.minecraft.world.scores.DisplaySlot nmsSlot : net.minecraft.world.scores.DisplaySlot.values()) {
+ assertNotNull(CraftScoreboardTranslations.toBukkitSlot(nmsSlot));
+ }
2021-10-04 11:31:26 +02:00
+ }
+}