3
0
KCauldronX/patches/net/minecraftforge/common/ForgeHooks.java.patch
2015-03-22 20:38:04 +03:00

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));