diff --git a/patches/net/minecraftforge/event/ForgeEventFactory.java.patch b/patches/net/minecraftforge/event/ForgeEventFactory.java.patch index a5294a9..98566f4 100644 --- a/patches/net/minecraftforge/event/ForgeEventFactory.java.patch +++ b/patches/net/minecraftforge/event/ForgeEventFactory.java.patch @@ -35,7 +35,7 @@ PlayerEvent.HarvestCheck event = new PlayerEvent.HarvestCheck(player, block, success); MinecraftForge.EVENT_BUS.post(event); return event.success; -@@ -80,25 +94,100 @@ +@@ -80,25 +94,137 @@ @Deprecated // Location version below public static float getBreakSpeed(EntityPlayer player, Block block, int metadata, float original) { @@ -112,6 +112,25 @@ { - return onPlayerInteract(player, action, x, y, z, face, null); + PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face, null); ++ org.bukkit.event.block.Action aktor = null; ++ switch (action) ++ { ++ case RIGHT_CLICK_AIR: ++ aktor = org.bukkit.event.block.Action.RIGHT_CLICK_AIR; ++ break; ++ case RIGHT_CLICK_BLOCK: ++ aktor = org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK; ++ break; ++ case LEFT_CLICK_BLOCK: ++ aktor = org.bukkit.event.block.Action.LEFT_CLICK_BLOCK; ++ default: ++ aktor = org.bukkit.event.block.Action.LEFT_CLICK_AIR; ++ break; ++ } ++ org.bukkit.event.player.PlayerInteractEvent eve = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(player, aktor, x, y, z, face, player.getHeldItem()); ++ if(eve.isCancelled()) { event.setCanceled(true); return event; } ++// callPlayerInteractEvent(net.minecraft.entity.player.EntityPlayer who, Action action, int clickedX, int clickedY, int clickedZ, int clickedFace, net.minecraft.item.ItemStack itemstack) { ++ + if (isSpawn(player) && nonVanilla(player)) + { + event.setCanceled(true); @@ -127,7 +146,25 @@ - PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face, world); - MinecraftForge.EVENT_BUS.post(event); - return event; ++ + PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face, world); ++ org.bukkit.event.block.Action aktor = null; ++ switch (action) ++ { ++ case RIGHT_CLICK_AIR: ++ aktor = org.bukkit.event.block.Action.RIGHT_CLICK_AIR; ++ break; ++ case RIGHT_CLICK_BLOCK: ++ aktor = org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK; ++ break; ++ case LEFT_CLICK_BLOCK: ++ aktor = org.bukkit.event.block.Action.LEFT_CLICK_BLOCK; ++ default: ++ aktor = org.bukkit.event.block.Action.LEFT_CLICK_AIR; ++ break; ++ } ++ org.bukkit.event.player.PlayerInteractEvent eve = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(player, aktor, x, y, z, face, player.getHeldItem()); ++ if(eve.isCancelled()) { event.setCanceled(true); return event; } + if (isSpawn(player) && nonVanilla(player)) + { + event.setCanceled(true); @@ -140,7 +177,7 @@ } public static void onPlayerDestroyItem(EntityPlayer player, ItemStack stack) -@@ -182,29 +271,63 @@ +@@ -182,29 +308,63 @@ return MinecraftForge.EVENT_BUS.post(new EntityStruckByLightningEvent(entity, bolt)); } @@ -225,7 +262,7 @@ public static void onStartEntityTracking(Entity entity, EntityPlayer player) { -@@ -290,4 +413,4 @@ +@@ -290,4 +450,4 @@ { MinecraftForge.EVENT_BUS.post(new PotionBrewEvent.Post(brewingItemStacks)); }