fire events on some special AE items used, such as Wrench and MemoryCard. #6

This commit is contained in:
xsun 2017-04-13 19:57:22 +08:00
parent 439ae2e563
commit 87d82d6f2b
8 changed files with 33 additions and 2 deletions

View file

@ -50,6 +50,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -243,6 +244,8 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature,
{ {
if( Platform.isWrench( player, is, x, y, z ) && player.isSneaking() ) if( Platform.isWrench( player, is, x, y, z ) && player.isSneaking() )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final Block id = w.getBlock( x, y, z ); final Block id = w.getBlock( x, y, z );
if( id != null ) if( id != null )
{ {
@ -284,6 +287,8 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature,
if( is.getItem() instanceof IMemoryCard && !( this instanceof BlockCableBus ) ) if( is.getItem() instanceof IMemoryCard && !( this instanceof BlockCableBus ) )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard memoryCard = (IMemoryCard) is.getItem(); final IMemoryCard memoryCard = (IMemoryCard) is.getItem();
if( player.isSneaking() ) if( player.isSneaking() )
{ {

View file

@ -36,6 +36,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTUtil; import net.minecraft.nbt.NBTUtil;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
@ -57,7 +58,7 @@ public class ToolBiometricCard extends AEBaseItem implements IBiometricCard
@Override @Override
public ItemStack onItemRightClick( final ItemStack is, final World w, final EntityPlayer p ) public ItemStack onItemRightClick( final ItemStack is, final World w, final EntityPlayer p )
{ {
if( p.isSneaking() ) if( ForgeEventFactory.onItemUseStart( p, is, 1 ) > 0 && p.isSneaking() )
{ {
this.encode( is, p ); this.encode( is, p );
p.swingItem(); p.swingItem();

View file

@ -31,6 +31,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
@ -140,6 +141,8 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard
{ {
if( player.isSneaking() && !w.isRemote ) if( player.isSneaking() && !w.isRemote )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard mem = (IMemoryCard) is.getItem(); final IMemoryCard mem = (IMemoryCard) is.getItem();
mem.notifyUser( player, MemoryCardMessages.SETTINGS_CLEARED ); mem.notifyUser( player, MemoryCardMessages.SETTINGS_CLEARED );
is.setTagCompound( null ); is.setTagCompound( null );

View file

@ -48,6 +48,7 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet; import java.util.EnumSet;
@ -102,6 +103,9 @@ public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench,
@Override @Override
public boolean onItemUseFirst( final ItemStack is, final EntityPlayer player, final World world, final int x, final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ ) public boolean onItemUseFirst( final ItemStack is, final EntityPlayer player, final World world, final int x, final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final MovingObjectPosition mop = new MovingObjectPosition( x, y, z, side, Vec3.createVectorHelper( hitX, hitY, hitZ ) ); final MovingObjectPosition mop = new MovingObjectPosition( x, y, z, side, Vec3.createVectorHelper( hitX, hitY, hitZ ) );
final TileEntity te = world.getTileEntity( x, y, z ); final TileEntity te = world.getTileEntity( x, y, z );
if( te instanceof IPartHost ) if( te instanceof IPartHost )

View file

@ -27,8 +27,10 @@ import appeng.server.ServerHelper;
import appeng.util.Platform; import appeng.util.Platform;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet; import java.util.EnumSet;
@ -45,6 +47,9 @@ public class ToolChargedStaff extends AEBasePoweredItem
@Override @Override
public boolean hitEntity( final ItemStack item, final EntityLivingBase target, final EntityLivingBase hitter ) public boolean hitEntity( final ItemStack item, final EntityLivingBase target, final EntityLivingBase hitter )
{ {
if( hitter instanceof EntityPlayer && ForgeEventFactory.onItemUseStart( (EntityPlayer) hitter, item, 1 ) <= 0 )
return false;
if( this.getAECurrentPower( item ) > 300 ) if( this.getAECurrentPower( item ) > 300 )
{ {
this.extractAEPower( item, 300 ); this.extractAEPower( item, 300 );

View file

@ -41,6 +41,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
@ -58,7 +59,8 @@ public class ToolWirelessTerminal extends AEBasePoweredItem implements IWireless
@Override @Override
public ItemStack onItemRightClick( final ItemStack item, final World w, final EntityPlayer player ) public ItemStack onItemRightClick( final ItemStack item, final World w, final EntityPlayer player )
{ {
AEApi.instance().registries().wireless().openWirelessTerminalGui( item, w, player ); if( ForgeEventFactory.onItemUseStart( player, item, 1 ) > 0 )
AEApi.instance().registries().wireless().openWirelessTerminalGui( item, w, player );
return item; return item;
} }

View file

@ -33,6 +33,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet; import java.util.EnumSet;
@ -53,6 +54,9 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolWren
@Override @Override
public boolean onItemUseFirst( final ItemStack is, final EntityPlayer player, final World world, final int x, final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ ) public boolean onItemUseFirst( final ItemStack is, final EntityPlayer player, final World world, final int x, final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final Block b = world.getBlock( x, y, z ); final Block b = world.getBlock( x, y, z );
if( b != null && !player.isSneaking() && Platform.hasPermissions( new DimensionalCoord( world, x, y, z ), player ) ) if( b != null && !player.isSneaking() && Platform.hasPermissions( new DimensionalCoord( world, x, y, z ), player ) )
{ {

View file

@ -47,6 +47,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
@ -229,6 +230,9 @@ public abstract class PartP2PTunnel<T extends PartP2PTunnel> extends PartBasicSt
final TunnelType tt = AEApi.instance().registries().p2pTunnel().getTunnelTypeByItem( is ); final TunnelType tt = AEApi.instance().registries().p2pTunnel().getTunnelTypeByItem( is );
if( is != null && is.getItem() instanceof IMemoryCard ) if( is != null && is.getItem() instanceof IMemoryCard )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard mc = (IMemoryCard) is.getItem(); final IMemoryCard mc = (IMemoryCard) is.getItem();
final NBTTagCompound data = mc.getData( is ); final NBTTagCompound data = mc.getData( is );
@ -386,6 +390,9 @@ public abstract class PartP2PTunnel<T extends PartP2PTunnel> extends PartBasicSt
final ItemStack is = player.inventory.getCurrentItem(); final ItemStack is = player.inventory.getCurrentItem();
if( is != null && is.getItem() instanceof IMemoryCard ) if( is != null && is.getItem() instanceof IMemoryCard )
{ {
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard mc = (IMemoryCard) is.getItem(); final IMemoryCard mc = (IMemoryCard) is.getItem();
final NBTTagCompound data = new NBTTagCompound(); final NBTTagCompound data = new NBTTagCompound();