mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-08 08:02:13 -07:00
Update to Minecraft 1.13-pre7
This commit is contained in:
45
nms-patches/BlockSkullAbstract.patch
Normal file
45
nms-patches/BlockSkullAbstract.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
--- a/net/minecraft/server/BlockSkullAbstract.java
|
||||
+++ b/net/minecraft/server/BlockSkullAbstract.java
|
||||
@@ -17,7 +17,32 @@
|
||||
return new TileEntitySkull();
|
||||
}
|
||||
|
||||
- public void dropNaturally(IBlockData iblockdata, World world, BlockPosition blockposition, float f, int i) {}
|
||||
+ // CraftBukkit start - Special case dropping so we can get info from the tile entity
|
||||
+ @Override
|
||||
+ public void dropNaturally(IBlockData iblockdata, World world, BlockPosition blockposition, float f, int i) {
|
||||
+ if (world.random.nextFloat() < f) {
|
||||
+ TileEntity tileentity = world.getTileEntity(blockposition);
|
||||
+
|
||||
+ if (tileentity instanceof TileEntitySkull) {
|
||||
+ TileEntitySkull tileentityskull = (TileEntitySkull) tileentity;
|
||||
+
|
||||
+ if (tileentityskull.shouldDrop()) {
|
||||
+ ItemStack itemstack = this.a((IBlockAccess) world, blockposition, iblockdata);
|
||||
+ Block block = tileentityskull.getBlock().getBlock();
|
||||
+
|
||||
+ if ((block == Blocks.PLAYER_HEAD || block == Blocks.PLAYER_WALL_HEAD) && tileentityskull.getGameProfile() != null) {
|
||||
+ NBTTagCompound nbttagcompound = new NBTTagCompound();
|
||||
+
|
||||
+ GameProfileSerializer.serialize(nbttagcompound, tileentityskull.getGameProfile());
|
||||
+ itemstack.getOrCreateTag().set("SkullOwner", nbttagcompound);
|
||||
+ }
|
||||
+
|
||||
+ a(world, blockposition, itemstack);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
|
||||
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman) {
|
||||
if (!world.isClientSide && entityhuman.abilities.canInstantlyBuild) {
|
||||
@@ -35,7 +60,7 @@
|
||||
if (iblockdata.getBlock() != iblockdata1.getBlock() && !world.isClientSide) {
|
||||
TileEntity tileentity = world.getTileEntity(blockposition);
|
||||
|
||||
- if (tileentity instanceof TileEntitySkull) {
|
||||
+ if (false && tileentity instanceof TileEntitySkull) { // CraftBukkit - Drop item in code above, not here
|
||||
TileEntitySkull tileentityskull = (TileEntitySkull) tileentity;
|
||||
|
||||
if (tileentityskull.shouldDrop()) {
|
Reference in New Issue
Block a user