46 lines
2.1 KiB
Diff
46 lines
2.1 KiB
Diff
--- ../src-base/minecraft/net/minecraftforge/common/ForgeHooks.java
|
|
+++ ../src-work/minecraft/net/minecraftforge/common/ForgeHooks.java
|
|
@@ -63,6 +63,7 @@
|
|
import net.minecraftforge.event.world.BlockEvent;
|
|
import net.minecraftforge.event.world.NoteBlockEvent;
|
|
import static net.minecraft.init.Blocks.*;
|
|
+import net.minecraftforge.common.util.FakePlayer; // Cauldron
|
|
|
|
public class ForgeHooks
|
|
{
|
|
@@ -439,6 +440,8 @@
|
|
|
|
public static BlockEvent.BreakEvent onBlockBreakEvent(World world, GameType gameType, EntityPlayerMP entityPlayer, int x, int y, int z)
|
|
{
|
|
+ // Cauldron - pre-cancel handled in BreakEvent
|
|
+ /*
|
|
// Logic from tryHarvestBlock for pre-canceling the event
|
|
boolean preCancelEvent = false;
|
|
if (gameType.isAdventure() && !entityPlayer.isCurrentToolAdventureModeExempt(x, y, z))
|
|
@@ -449,9 +452,9 @@
|
|
{
|
|
preCancelEvent = true;
|
|
}
|
|
-
|
|
+ */
|
|
// Tell client the block is gone immediately then process events
|
|
- if (world.getTileEntity(x, y, z) == null)
|
|
+ if (world.getTileEntity(x, y, z) == null && !(entityPlayer instanceof FakePlayer)) // Cauldron - don't send packets to fakeplayers
|
|
{
|
|
S23PacketBlockChange packet = new S23PacketBlockChange(x, y, z, world);
|
|
packet.field_148883_d = Blocks.air;
|
|
@@ -463,11 +466,11 @@
|
|
Block block = world.getBlock(x, y, z);
|
|
int blockMetadata = world.getBlockMetadata(x, y, z);
|
|
BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(x, y, z, world, block, blockMetadata, entityPlayer);
|
|
- event.setCanceled(preCancelEvent);
|
|
+ // event.setCanceled(preCancelEvent); // Cauldron
|
|
MinecraftForge.EVENT_BUS.post(event);
|
|
|
|
// Handle if the event is canceled
|
|
- if (event.isCanceled())
|
|
+ if (event.isCanceled() && !(entityPlayer instanceof FakePlayer)) // Cauldron - don't send packets to fakeplayers
|
|
{
|
|
// Let the client know the block still exists
|
|
entityPlayer.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world));
|