From dbf2beb6fa6c298d65d4a70a0192878458e0fcdb Mon Sep 17 00:00:00 2001 From: MineMaarten Date: Thu, 18 Jan 2018 21:52:46 +0100 Subject: [PATCH] Moved firing the MinecartInteractEvent from individual subclasses up to EntityMinecart, which as a result automatically supports EntityMinecartMobSpawner and EntityMinecartTNT. (#4583) --- .../net/minecraft/entity/item/EntityMinecart.java.patch | 9 ++++++++- .../entity/item/EntityMinecartCommandBlock.java.patch | 2 +- .../entity/item/EntityMinecartContainer.java.patch | 2 +- .../minecraft/entity/item/EntityMinecartEmpty.java.patch | 2 +- .../entity/item/EntityMinecartFurnace.java.patch | 2 +- .../entity/item/EntityMinecartHopper.java.patch | 2 +- .../event/entity/minecart/MinecartInteractEvent.java | 7 ++----- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch index 4d087d78ec..834e56aff0 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch @@ -254,9 +254,16 @@ { p_70108_1_.field_70159_w *= 0.20000000298023224D; p_70108_1_.field_70179_y *= 0.20000000298023224D; -@@ -1015,6 +1047,230 @@ +@@ -1014,7 +1046,237 @@ + { this.func_184212_Q().func_187227_b(field_184270_f, Boolean.valueOf(p_94096_1_)); } ++ ++ @Override ++ public boolean func_184230_a(EntityPlayer player, net.minecraft.util.EnumHand hand) ++ { ++ return net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, player, hand)); ++ } + /* =================================== FORGE START ===========================================*/ + private BlockPos getCurrentRailPosition() diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch index 934ad146ae..e2ffb9ea5f 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch @@ -4,7 +4,7 @@ public boolean func_184230_a(EntityPlayer p_184230_1_, EnumHand p_184230_2_) { -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_))) return true; ++ if (super.func_184230_a(p_184230_1_, p_184230_2_)) return true; this.field_145824_a.func_175574_a(p_184230_1_); return false; } diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch index 2650118826..794653dad2 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch @@ -4,7 +4,7 @@ public boolean func_184230_a(EntityPlayer p_184230_1_, EnumHand p_184230_2_) { -+ if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_))) return true; ++ if (super.func_184230_a(p_184230_1_, p_184230_2_)) return true; if (!this.field_70170_p.field_72995_K) { p_184230_1_.func_71007_a(this); diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch index 642fb7aecd..c8e7a04639 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch @@ -4,7 +4,7 @@ public boolean func_184230_a(EntityPlayer p_184230_1_, EnumHand p_184230_2_) { -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_))) return true; ++ if (super.func_184230_a(p_184230_1_, p_184230_2_)) return true; + if (p_184230_1_.func_70093_af()) { diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch index 1b520ef993..59667b5618 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch @@ -4,7 +4,7 @@ { ItemStack itemstack = p_184230_1_.func_184586_b(p_184230_2_); -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_))) return true; ++ if (super.func_184230_a(p_184230_1_, p_184230_2_)) return true; + if (itemstack.func_77973_b() == Items.field_151044_h && this.field_94110_c + 3600 <= 32000) { diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch index 4ae1da7161..2d09f66485 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch @@ -4,7 +4,7 @@ public boolean func_184230_a(EntityPlayer p_184230_1_, EnumHand p_184230_2_) { -+ if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_))) return true; ++ if (super.func_184230_a(p_184230_1_, p_184230_2_)) return true; if (!this.field_70170_p.field_72995_K) { p_184230_1_.func_71007_a(this); diff --git a/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java b/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java index 70fc079a9b..ab19ea9194 100644 --- a/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java @@ -35,11 +35,8 @@ import javax.annotation.Nonnull; /** * MinecartInteractEvent is fired when a player interacts with a minecart.
* This event is fired whenever a player interacts with a minecart in - * {@link EntityMinecartContainer#processInitialInteract(EntityPlayer, EnumHand)}, - * {@link EntityMinecartEmpty#processInitialInteract(EntityPlayer, EnumHand)}, - * {@link EntityMinecartFurnace#processInitialInteract(EntityPlayer, EnumHand)}, - * {@link EntityMinecartHopper#processInitialInteract(EntityPlayer, EnumHand)}, - * etc.
+ * {@link EntityMinecart#processInitialInteract(EntityPlayer, EnumHand)}. + *
*
* {@link #player} contains the EntityPlayer that is involved with this minecart interaction.
*