geforkt von Mirrors/Paper
Fix jukeboxes
Dieser Commit ist enthalten in:
Ursprung
286598313a
Commit
69de1e5d07
58
patches/api/Fix-Jukeboxes.patch
Normale Datei
58
patches/api/Fix-Jukeboxes.patch
Normale Datei
@ -0,0 +1,58 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
Date: Tue, 14 Mar 2023 18:55:47 -0700
|
||||||
|
Subject: [PATCH] Fix Jukeboxes
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/block/Jukebox.java b/src/main/java/org/bukkit/block/Jukebox.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/block/Jukebox.java
|
||||||
|
+++ b/src/main/java/org/bukkit/block/Jukebox.java
|
||||||
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
||||||
|
/**
|
||||||
|
* Represents a captured state of a jukebox.
|
||||||
|
*/
|
||||||
|
-public interface Jukebox extends TileState {
|
||||||
|
+public interface Jukebox extends TileState, org.bukkit.inventory.BlockInventoryHolder { // Paper
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the record inserted into the jukebox.
|
||||||
|
@@ -0,0 +0,0 @@ public interface Jukebox extends TileState {
|
||||||
|
* @throws IllegalStateException if this block state is not placed
|
||||||
|
*/
|
||||||
|
public boolean eject();
|
||||||
|
+ // Paper start
|
||||||
|
+ /**
|
||||||
|
+ * @return inventory
|
||||||
|
+ * @see Container#getInventory()
|
||||||
|
+ */
|
||||||
|
+ @NotNull
|
||||||
|
+ @Override
|
||||||
|
+ org.bukkit.inventory.Inventory getInventory();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * @return snapshot inventory
|
||||||
|
+ * @see Container#getSnapshotInventory()
|
||||||
|
+ */
|
||||||
|
+ @NotNull
|
||||||
|
+ org.bukkit.inventory.Inventory getSnapshotInventory();
|
||||||
|
+ // Paper end
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||||
|
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||||
|
@@ -0,0 +0,0 @@ public enum InventoryType {
|
||||||
|
*/
|
||||||
|
@Deprecated @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20
|
||||||
|
SMITHING_NEW(4, "Upgrade Gear"),
|
||||||
|
+ // Paper start
|
||||||
|
+ /**
|
||||||
|
+ * Pseudo jukebox inventory
|
||||||
|
+ */
|
||||||
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
||||||
|
+ JUKEBOX(1, "Jukebox");
|
||||||
|
+ // Paper end
|
||||||
|
;
|
||||||
|
|
||||||
|
private final int size;
|
96
patches/server/Fix-Jukeboxes.patch
Normale Datei
96
patches/server/Fix-Jukeboxes.patch
Normale Datei
@ -0,0 +1,96 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
Date: Tue, 14 Mar 2023 18:55:56 -0700
|
||||||
|
Subject: [PATCH] Fix Jukeboxes
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
|
||||||
|
@@ -0,0 +0,0 @@ public class JukeboxBlockEntity extends BlockEntity implements Clearable, Contai
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxStackSize() {
|
||||||
|
- return 1;
|
||||||
|
+ return this.maxStack; // Paper
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -0,0 +0,0 @@ public class JukeboxBlockEntity extends BlockEntity implements Clearable, Contai
|
||||||
|
this.level.updateNeighborsAt(this.getBlockPos(), this.getBlockState().getBlock());
|
||||||
|
this.setChanged();
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // Paper start
|
||||||
|
+ public java.util.List<org.bukkit.entity.HumanEntity> transaction = new java.util.ArrayList<>();
|
||||||
|
+ private int maxStack = 1;
|
||||||
|
+ @Override
|
||||||
|
+ public java.util.List<net.minecraft.world.item.ItemStack> getContents() {
|
||||||
|
+ return this.items;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void onOpen(org.bukkit.craftbukkit.entity.CraftHumanEntity who) {
|
||||||
|
+ this.transaction.add(who);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void onClose(org.bukkit.craftbukkit.entity.CraftHumanEntity who) {
|
||||||
|
+ this.transaction.remove(who);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public java.util.List<org.bukkit.entity.HumanEntity> getViewers() {
|
||||||
|
+ return this.transaction;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setMaxStackSize(int size) {
|
||||||
|
+ this.maxStack = size;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public org.bukkit.Location getLocation() {
|
||||||
|
+ return new org.bukkit.Location(this.level.getWorld(), this.worldPosition.getX(), this.worldPosition.getY(), this.worldPosition.getZ());
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftJukebox.java b/src/main/java/org/bukkit/craftbukkit/block/CraftJukebox.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftJukebox.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftJukebox.java
|
||||||
|
@@ -0,0 +0,0 @@ public class CraftJukebox extends CraftBlockEntityState<JukeboxBlockEntity> impl
|
||||||
|
jukebox.popOutRecord();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
+ // Paper start
|
||||||
|
+ @Override
|
||||||
|
+ public org.bukkit.inventory.Inventory getInventory() {
|
||||||
|
+ if (!this.isPlaced()) {
|
||||||
|
+ return this.getSnapshotInventory();
|
||||||
|
+ }
|
||||||
|
+ return new org.bukkit.craftbukkit.inventory.CraftInventory(this.getTileEntity());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public org.bukkit.inventory.Inventory getSnapshotInventory() {
|
||||||
|
+ return new org.bukkit.craftbukkit.inventory.CraftInventory(this.getSnapshot());
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
||||||
|
@@ -0,0 +0,0 @@ public class CraftInventory implements Inventory {
|
||||||
|
return InventoryType.COMPOSTER;
|
||||||
|
} else if (this instanceof CraftInventorySmithingNew) {
|
||||||
|
return InventoryType.SMITHING_NEW;
|
||||||
|
+ // Paper start
|
||||||
|
+ } else if (this.inventory instanceof net.minecraft.world.level.block.entity.JukeboxBlockEntity) {
|
||||||
|
+ return InventoryType.JUKEBOX;
|
||||||
|
+ // Paper end
|
||||||
|
} else {
|
||||||
|
return InventoryType.CHEST;
|
||||||
|
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren