Browse Source

Bukkit Interact before Forge Interact (kinda buggy)

master
Robotia 9 years ago
parent
commit
9582467ea0
  1. 43
      patches/net/minecraftforge/event/ForgeEventFactory.java.patch

43
patches/net/minecraftforge/event/ForgeEventFactory.java.patch

@ -35,7 +35,7 @@
PlayerEvent.HarvestCheck event = new PlayerEvent.HarvestCheck(player, block, success); PlayerEvent.HarvestCheck event = new PlayerEvent.HarvestCheck(player, block, success);
MinecraftForge.EVENT_BUS.post(event); MinecraftForge.EVENT_BUS.post(event);
return event.success; return event.success;
@@ -80,25 +94,100 @@ @@ -80,25 +94,137 @@
@Deprecated // Location version below @Deprecated // Location version below
public static float getBreakSpeed(EntityPlayer player, Block block, int metadata, float original) 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); - return onPlayerInteract(player, action, x, y, z, face, null);
+ PlayerInteractEvent event = new PlayerInteractEvent(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)) + if (isSpawn(player) && nonVanilla(player))
+ { + {
+ event.setCanceled(true); + event.setCanceled(true);
@ -127,7 +146,25 @@
- PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face, world); - PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face, world);
- MinecraftForge.EVENT_BUS.post(event); - MinecraftForge.EVENT_BUS.post(event);
- return event; - return event;
+
+ PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face, world); + 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)) + if (isSpawn(player) && nonVanilla(player))
+ { + {
+ event.setCanceled(true); + event.setCanceled(true);
@ -140,7 +177,7 @@
} }
public static void onPlayerDestroyItem(EntityPlayer player, ItemStack stack) 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)); return MinecraftForge.EVENT_BUS.post(new EntityStruckByLightningEvent(entity, bolt));
} }
@ -225,7 +262,7 @@
public static void onStartEntityTracking(Entity entity, EntityPlayer player) public static void onStartEntityTracking(Entity entity, EntityPlayer player)
{ {
@@ -290,4 +413,4 @@ @@ -290,4 +450,4 @@
{ {
MinecraftForge.EVENT_BUS.post(new PotionBrewEvent.Post(brewingItemStacks)); MinecraftForge.EVENT_BUS.post(new PotionBrewEvent.Post(brewingItemStacks));
} }

Loading…
Cancel
Save