mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-04 16:34:44 +01:00
6e71f41536
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 65247583f SPIGOT-7857: Improve ItemMeta block data deserialization 05d80500d SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta cebb58e9a SPIGOT-7804: Fix written book serialization efcdd5d38 SPIGOT-7794: Cancelling InventoryItemMoveEvent destroys items b568ba572 SPIGOT-7789: Fix NPE in CraftMetaFirework applyToItem f057cf449 Remove outdated build delay Spigot Changes: f6a48054 SPIGOT-7835: Fix issue with custom hopper settings bb63b137 Rebuild patches e1142b4d Rebuild patches
113 lines
5.8 KiB
Diff
113 lines
5.8 KiB
Diff
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
|
|
|
|
== AT ==
|
|
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations
|
|
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;
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
|
|
index 4ce818047911922857a5d5b377aa34ae0dfecba4..d0ca716aba5706afdd93900d62d95b7ab5073ca6 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
|
|
@@ -35,6 +35,7 @@ public class FieldRename {
|
|
}
|
|
|
|
return switch (owner) {
|
|
+ case "org/bukkit/scoreboard/DisplaySlot" -> FieldRename.convertDisplaySlot(from); // Paper - DisplaySlot
|
|
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);
|
|
@@ -65,6 +66,16 @@ public class FieldRename {
|
|
// }
|
|
// Paper end
|
|
|
|
+ // Paper start - DisplaySlot
|
|
+ @DoNotReroute
|
|
+ public static String convertDisplaySlot(final String from) {
|
|
+ if (from.startsWith("SIDEBAR_") && !from.startsWith("SIDEBAR_TEAM_")) {
|
|
+ return from.replace("SIDEBAR_", "SIDEBAR_TEAM_");
|
|
+ }
|
|
+ return from;
|
|
+ }
|
|
+ // Paper end - DisplaySlot
|
|
+
|
|
// PatternType
|
|
private static final FieldRenameData PATTERN_TYPE_DATA = FieldRenameData.Builder.newBuilder()
|
|
.forVersionsBefore(ApiVersion.FIELD_NAME_PARITY)
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
|
index 73c5ffff70605b32188a9bb5fb6c0ee04cb66efe..711d227f5ee6d63356a94a0567968da48e9f284c 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
|
@@ -7,35 +7,22 @@ import org.bukkit.scoreboard.RenderType;
|
|
|
|
public final class CraftScoreboardTranslations {
|
|
static final int MAX_DISPLAY_SLOT = 19;
|
|
+ @Deprecated // Paper
|
|
static final ImmutableBiMap<DisplaySlot, String> SLOTS = ImmutableBiMap.<DisplaySlot, String>builder()
|
|
.put(DisplaySlot.BELOW_NAME, "below_name")
|
|
.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(net.minecraft.world.scores.DisplaySlot minecraft) {
|
|
+ if (true) return DisplaySlot.NAMES.value(minecraft.getSerializedName()); // Paper
|
|
return CraftScoreboardTranslations.SLOTS.inverse().get(minecraft.getSerializedName());
|
|
}
|
|
|
|
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));
|
|
}
|
|
|
|
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..69c9678f8218c240be1044eeabe1c6bef7747b1e
|
|
--- /dev/null
|
|
+++ b/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java
|
|
@@ -0,0 +1,24 @@
|
|
+package io.papermc.paper.scoreboard;
|
|
+
|
|
+import org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations;
|
|
+import org.bukkit.scoreboard.DisplaySlot;
|
|
+import org.junit.jupiter.api.Test;
|
|
+
|
|
+import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
+
|
|
+public class DisplaySlotTest {
|
|
+
|
|
+ @Test
|
|
+ public void testBukkitToMinecraftDisplaySlots() {
|
|
+ for (DisplaySlot bukkitSlot : DisplaySlot.values()) {
|
|
+ assertNotNull(CraftScoreboardTranslations.fromBukkitSlot(bukkitSlot));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Test
|
|
+ public void testMinecraftToBukkitDisplaySlots() {
|
|
+ for (net.minecraft.world.scores.DisplaySlot nmsSlot : net.minecraft.world.scores.DisplaySlot.values()) {
|
|
+ assertNotNull(CraftScoreboardTranslations.toBukkitSlot(nmsSlot));
|
|
+ }
|
|
+ }
|
|
+}
|