mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-27 06:20:29 +08:00
SPIGOT-1568: Fix jukeboxes
This commit is contained in:
parent
69e196f796
commit
5122dcd61e
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,11 +101,128 @@
|
@@ -84,11 +101,129 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnumInteractionResult placeItem(EntityHuman entityhuman, World world, BlockPosition blockposition, EnumHand enumhand, EnumDirection enumdirection, float f, float f1, float f2) {
|
public EnumInteractionResult placeItem(EntityHuman entityhuman, World world, BlockPosition blockposition, EnumHand enumhand, EnumDirection enumdirection, float f, float f1, float f2) {
|
||||||
@ -136,11 +136,12 @@
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ // Special case juke boxes as they update their tile entity. Copied from ItemRecord.
|
+ // Special case juke boxes as they update their tile entity. Copied from ItemRecord.
|
||||||
|
+ // PAIL: checkme on updates.
|
||||||
+ if (this.getItem() instanceof ItemRecord) {
|
+ if (this.getItem() instanceof ItemRecord) {
|
||||||
+ ((BlockJukeBox) Blocks.JUKEBOX).a(world, blockposition, world.getType(blockposition), this);
|
+ ((BlockJukeBox) Blocks.JUKEBOX).a(world, blockposition, world.getType(blockposition), this);
|
||||||
+ world.a((EntityHuman) null, 1005, blockposition, Item.getId(this.getItem()));
|
+ world.a((EntityHuman) null, 1010, blockposition, Item.getId(this.item));
|
||||||
+ --this.count;
|
+ --this.count;
|
||||||
+ entityhuman.b(StatisticList.X);
|
+ entityhuman.b(StatisticList.Z);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (this.getItem() == Items.SKULL) { // Special case skulls to allow wither spawns to be cancelled
|
+ if (this.getItem() == Items.SKULL) { // Special case skulls to allow wither spawns to be cancelled
|
||||||
@ -169,7 +170,7 @@
|
|||||||
|
|
||||||
return enuminteractionresult;
|
return enuminteractionresult;
|
||||||
}
|
}
|
||||||
@@ -112,7 +246,7 @@
|
@@ -112,7 +247,7 @@
|
||||||
nbttagcompound.setByte("Count", (byte) this.count);
|
nbttagcompound.setByte("Count", (byte) this.count);
|
||||||
nbttagcompound.setShort("Damage", (short) this.damage);
|
nbttagcompound.setShort("Damage", (short) this.damage);
|
||||||
if (this.tag != null) {
|
if (this.tag != null) {
|
||||||
@ -178,7 +179,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
return nbttagcompound;
|
return nbttagcompound;
|
||||||
@@ -121,13 +255,18 @@
|
@@ -121,13 +256,18 @@
|
||||||
public void c(NBTTagCompound nbttagcompound) {
|
public void c(NBTTagCompound nbttagcompound) {
|
||||||
this.item = Item.d(nbttagcompound.getString("id"));
|
this.item = Item.d(nbttagcompound.getString("id"));
|
||||||
this.count = nbttagcompound.getByte("Count");
|
this.count = nbttagcompound.getByte("Count");
|
||||||
@ -198,7 +199,7 @@
|
|||||||
if (this.item != null) {
|
if (this.item != null) {
|
||||||
this.item.a(this.tag);
|
this.item.a(this.tag);
|
||||||
}
|
}
|
||||||
@@ -164,6 +303,26 @@
|
@@ -164,6 +304,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setData(int i) {
|
public void setData(int i) {
|
||||||
@ -225,7 +226,7 @@
|
|||||||
this.damage = i;
|
this.damage = i;
|
||||||
if (this.damage < 0) {
|
if (this.damage < 0) {
|
||||||
this.damage = 0;
|
this.damage = 0;
|
||||||
@@ -216,6 +375,12 @@
|
@@ -216,6 +376,12 @@
|
||||||
this.count = 0;
|
this.count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,7 +239,7 @@
|
|||||||
this.damage = 0;
|
this.damage = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,6 +678,7 @@
|
@@ -513,6 +679,7 @@
|
||||||
|
|
||||||
public void setItem(Item item) {
|
public void setItem(Item item) {
|
||||||
this.item = item;
|
this.item = item;
|
||||||
|
Loading…
Reference in New Issue
Block a user