mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-01 20:52:12 -07:00
Upstream update
This commit is contained in:
@@ -39,7 +39,7 @@ index 6021a3401f..536fd37254 100644
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
index d6e4adf147..8cb08c5584 100644
|
index c48b394d52..7ccfa93b94 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
@@ -0,0 +0,0 @@ public class CraftBlock implements Block {
|
@@ -0,0 +0,0 @@ public class CraftBlock implements Block {
|
||||||
|
@@ -186,7 +186,7 @@ index 4a128f707b..b870964674 100644
|
|||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
||||||
index f455317eb6..55e45f84ca 100644
|
index 54ee305eba..6e524353b5 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
||||||
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
|
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
|
||||||
|
@@ -13,61 +13,18 @@ Update adjacent blocks of doors, double plants, pistons and beds
|
|||||||
when cancelling interaction.
|
when cancelling interaction.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
||||||
index 55e45f84ca..e83b4fb4b0 100644
|
index 6e524353b5..4a439ef4ca 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
|
||||||
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
|
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
// Let the client know the block still exists
|
// Let the client know the block still exists
|
||||||
((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
|
((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
|
||||||
+ cancelBreakBlock(blockposition, this.world.getType(blockposition)); // Paper - Avoid visual issues on the client
|
+ // Paper start - brute force neighbor blocks for any attached blocks
|
||||||
// Update any tile entity data for this block
|
+ for (EnumDirection dir : EnumDirection.values()) {
|
||||||
TileEntity tileentity = this.world.getTileEntity(blockposition);
|
+ ((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition.shift(dir)));
|
||||||
if (tileentity != null) {
|
|
||||||
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
|
|
||||||
return flag;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Paper start - Extra method to avoid visual issues on the client when cancelling block breaks
|
|
||||||
+ private void cancelBreakBlock(BlockPosition position, IBlockData data) {
|
|
||||||
+ Block block = data.getBlock();
|
|
||||||
+ // Send other half of the door
|
|
||||||
+ if (block instanceof BlockDoor) {
|
|
||||||
+ boolean bottom = data.get(BlockDoor.HALF) == BlockPropertyDoubleBlockHalf.LOWER;
|
|
||||||
+ this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? position.up() : position.down()));
|
|
||||||
+ } else if (block instanceof BlockTallPlant) {
|
|
||||||
+ boolean bottom = data.get(BlockTallPlant.HALF) == BlockPropertyDoubleBlockHalf.LOWER;
|
|
||||||
+ this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? position.up() : position.down()));
|
|
||||||
+ } else if (block instanceof BlockPistonExtension) {
|
|
||||||
+ BlockPosition piston = position.shift(data.get(BlockPistonExtension.FACING).opposite());
|
|
||||||
+ this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, piston));
|
|
||||||
+ } else if (block instanceof BlockBed) {
|
|
||||||
+ // Restore other half of bed
|
|
||||||
+ boolean foot = data.get(BlockBed.PART) == BlockPropertyBedPart.FOOT;
|
|
||||||
+ BlockPosition otherBlock = position.shift(foot ? data.get(BlockBed.FACING) : data.get(BlockBed.FACING).opposite());
|
|
||||||
+ this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, otherBlock));
|
|
||||||
+
|
|
||||||
+ TileEntity tileentity = this.world.getTileEntity(otherBlock);
|
|
||||||
+ if (tileentity != null) {
|
|
||||||
+ this.player.playerConnection.sendPacket(tileentity.getUpdatePacket());
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+
|
|
||||||
public boolean breakBlock(BlockPosition blockposition) {
|
|
||||||
IBlockData iblockdata = this.world.getType(blockposition);
|
|
||||||
// CraftBukkit start - fire BlockBreakEvent
|
|
||||||
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
|
|
||||||
}
|
|
||||||
// Let the client know the block still exists
|
|
||||||
((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
|
|
||||||
- // Send other half of the door
|
|
||||||
- if (nmsBlock instanceof BlockDoor) {
|
|
||||||
- boolean bottom = nmsData.get(BlockDoor.HALF) == BlockPropertyDoubleBlockHalf.LOWER;
|
|
||||||
- ((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? blockposition.up() : blockposition.down()));
|
|
||||||
- }
|
|
||||||
+ cancelBreakBlock(blockposition, nmsData); // Paper - Move cancellation code to extra "cancelBreakBlock" method
|
|
||||||
// Update any tile entity data for this block
|
// Update any tile entity data for this block
|
||||||
TileEntity tileentity = this.world.getTileEntity(blockposition);
|
TileEntity tileentity = this.world.getTileEntity(blockposition);
|
||||||
if (tileentity != null) {
|
if (tileentity != null) {
|
||||||
|
@@ -18,7 +18,7 @@ For consistency, the old API methods now forward to use the
|
|||||||
ItemMeta API equivalents, and should deprecate the old API's.
|
ItemMeta API equivalents, and should deprecate the old API's.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
index e7b5daf28e..6e7b2e721d 100644
|
index 0c54eaa529..c7ef9c6890 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
@@ -0,0 +0,0 @@ import com.mojang.brigadier.StringReader;
|
@@ -0,0 +0,0 @@ import com.mojang.brigadier.StringReader;
|
||||||
@@ -204,7 +204,7 @@ index f4672b9a48..e2699564af 100644
|
|||||||
|
|
||||||
static Map<Enchantment, Integer> getEnchantments(net.minecraft.server.ItemStack item) {
|
static Map<Enchantment, Integer> getEnchantments(net.minecraft.server.ItemStack item) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
index f10de8550c..f21c1e846d 100644
|
index 5464923759..94b19d1095 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
@@ -0,0 +0,0 @@ import java.lang.reflect.Constructor;
|
@@ -0,0 +0,0 @@ import java.lang.reflect.Constructor;
|
||||||
|
@@ -6,7 +6,7 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration
|
|||||||
Allows you to determine how long it takes to use a usable/consumable item
|
Allows you to determine how long it takes to use a usable/consumable item
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
index 33e82f5377..0952bf0b82 100644
|
index 4f230975aa..e52014fd8f 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
@@ -0,0 +0,0 @@ public final class ItemStack {
|
@@ -0,0 +0,0 @@ public final class ItemStack {
|
||||||
|
@@ -54,7 +54,7 @@ index 9f3aa24590..7dbea90902 100644
|
|||||||
return this.c(MathHelper.floor(d0), MathHelper.floor(d1), MathHelper.floor(d2));
|
return this.c(MathHelper.floor(d0), MathHelper.floor(d1), MathHelper.floor(d2));
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
index 411ab6061b..cd4fbee0ca 100644
|
index 03c96de98b..2d06202da7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
@@ -0,0 +0,0 @@ import com.google.common.collect.Lists; // CraftBukkit
|
@@ -0,0 +0,0 @@ import com.google.common.collect.Lists; // CraftBukkit
|
||||||
@@ -131,7 +131,7 @@ index ca2a14d7ac..9a513b4e3a 100644
|
|||||||
private boolean c = true;
|
private boolean c = true;
|
||||||
private boolean d = true;
|
private boolean d = true;
|
||||||
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
index 0d26fc56dd..e7b5daf28e 100644
|
index 359979cc1c..0c54eaa529 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
@@ -0,0 +0,0 @@ import org.bukkit.TreeType;
|
@@ -0,0 +0,0 @@ import org.bukkit.TreeType;
|
||||||
|
Submodule work/Bukkit updated: 4e075fb1f1...14527e6623
Submodule work/CraftBukkit updated: 2f17f677aa...69970127c1
Reference in New Issue
Block a user