Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 12:30:06 +01:00
275173e538
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 Bukkit Changes: 0c5d8709 SPIGOT-7400: Downgrade maven-resolver due to issues resolving certain depends 255c4fdb SPIGOT-7380: Add PlayerInteractEvent#getClickedPosition and ChiseledBookshelf#getSlot CraftBukkit Changes: b6b514b7e SPIGOT-7400: Downgrade maven-resolver due to issues resolving certain depends fcff84de9 SPIGOT-7399: Revert null check in CraftMetaItem#safelyAdd 44a4b5649 SPIGOT-7380: Add PlayerInteractEvent#getClickedPosition and ChiseledBookshelf#getSlot 676969d01 SPIGOT-7389: Handle setting null items in ChiseledBookshelf Inventory
107 Zeilen
5.5 KiB
Diff
107 Zeilen
5.5 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(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 e2d3fe9af7d3bd82bee519b20e141cd58f68bbd6..944a4fee237730c0d89567aaa6ddf268467aa0e0 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java
|
|
@@ -7,36 +7,23 @@ 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<DisplaySlot, String> SLOTS = ImmutableBiMap.<DisplaySlot, String>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 fe5d3b60ad740b7f1cce040f9c8d96ac51245ef6..43ffc4180b1ef2d2000991ad58b0706141470d08 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
|
@@ -251,6 +251,14 @@ 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..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)));
|
|
+ }
|
|
+ }
|
|
+}
|