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.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import javax.annotation.Nonnull;
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( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final Block id = w.getBlock( x, y, z );
if( id != null )
{
@ -284,6 +287,8 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature,
if( is.getItem() instanceof IMemoryCard && !( this instanceof BlockCableBus ) )
{
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard memoryCard = (IMemoryCard) is.getItem();
if( player.isSneaking() )
{

View File

@ -36,6 +36,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTUtil;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet;
import java.util.List;
@ -57,7 +58,7 @@ public class ToolBiometricCard extends AEBaseItem implements IBiometricCard
@Override
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 );
p.swingItem();

View File

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

View File

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

View File

@ -27,8 +27,10 @@ import appeng.server.ServerHelper;
import appeng.util.Platform;
import com.google.common.base.Optional;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet;
@ -45,6 +47,9 @@ public class ToolChargedStaff extends AEBasePoweredItem
@Override
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 )
{
this.extractAEPower( item, 300 );

View File

@ -41,6 +41,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet;
import java.util.List;
@ -58,7 +59,8 @@ public class ToolWirelessTerminal extends AEBasePoweredItem implements IWireless
@Override
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;
}

View File

@ -33,6 +33,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.EnumSet;
@ -53,6 +54,9 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolWren
@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 )
{
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final Block b = world.getBlock( x, y, z );
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.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import java.util.ArrayList;
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 );
if( is != null && is.getItem() instanceof IMemoryCard )
{
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard mc = (IMemoryCard) is.getItem();
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();
if( is != null && is.getItem() instanceof IMemoryCard )
{
if( ForgeEventFactory.onItemUseStart( player, is, 1 ) <= 0 )
return false;
final IMemoryCard mc = (IMemoryCard) is.getItem();
final NBTTagCompound data = new NBTTagCompound();