From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 1 Oct 2021 08:04:39 -0700 Subject: [PATCH] Add missing team sidebar display slots == 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 diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java @@ -0,0 +0,0 @@ import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.RenderType; public final class CraftScoreboardTranslations { - static final int MAX_DISPLAY_SLOT = 19; + static final int MAX_DISPLAY_SLOT = Scoreboard.getDisplaySlotNames().length; // Paper + @Deprecated // Paper static final ImmutableBiMap SLOTS = ImmutableBiMap.builder() .put(DisplaySlot.BELOW_NAME, "belowName") .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(); private CraftScoreboardTranslations() {} public static DisplaySlot toBukkitSlot(int i) { + if (true) return org.bukkit.scoreboard.DisplaySlot.NAMES.value(Scoreboard.getDisplaySlotName(i)); // Paper return CraftScoreboardTranslations.SLOTS.inverse().get(Scoreboard.getDisplaySlotName(i)); } public static int fromBukkitSlot(DisplaySlot slot) { + if (true) return Scoreboard.getDisplaySlotByName(slot.getId()); // Paper return Scoreboard.getDisplaySlotByName(CraftScoreboardTranslations.SLOTS.get(slot)); } diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java @@ -0,0 +0,0 @@ public class Commodore 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" ) ) { 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..0000000000000000000000000000000000000000 --- /dev/null +++ b/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java @@ -0,0 +0,0 @@ +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))); + } + } +}