Search in sources :

Example 96 with EntityPlayerMP

use of net.minecraft.entity.player.EntityPlayerMP in project Almura by AlmuraDev.

the class SlabItemImpl method placeBlockAt.

@Override
public boolean placeBlockAt(final ItemStack stack, final EntityPlayer player, final World world, final BlockPos pos, final EnumFacing side, final float hitX, final float hitY, final float hitZ, final IBlockState newState) {
    this.checkAndDelegate();
    if (!world.setBlockState(pos, newState, 11)) {
        return false;
    }
    IBlockState state = world.getBlockState(pos);
    if (state.getBlock() == this.getBlock()) {
        setTileEntityNBT(world, player, pos, stack);
        this.getBlock().onBlockPlacedBy(world, pos, state, player, stack);
        if (player instanceof EntityPlayerMP) {
            CriteriaTriggers.PLACED_BLOCK.trigger((EntityPlayerMP) player, pos, stack);
        }
    }
    return true;
}
Also used : IBlockState(net.minecraft.block.state.IBlockState) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP)

Example 97 with EntityPlayerMP

use of net.minecraft.entity.player.EntityPlayerMP in project Almura by AlmuraDev.

the class SlabItemImpl method tryPlaceSingle.

private EnumActionResult tryPlaceSingle(final World world, final EntityPlayer player, final EnumHand hand, final ItemStack itemStack, BlockPos pos, final EnumFacing facing, final float hitX, final float hitY, final float hitZ) {
    IBlockState previousState = world.getBlockState(pos);
    final Block previousBlock = previousState.getBlock();
    if (!previousBlock.isReplaceable(world, pos)) {
        pos = pos.offset(facing);
    }
    if (!itemStack.isEmpty() && player.canPlayerEdit(pos, facing, itemStack) && world.mayPlace(this.singleSlab, pos, false, facing, player)) {
        final IBlockState singleState = this.singleSlab.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, 0, player, hand);
        if (world.setBlockState(pos, singleState, 11)) {
            previousState = world.getBlockState(pos);
            if (singleState.equals(previousState)) {
                this.getBlock().onBlockPlacedBy(world, pos, singleState, player, itemStack);
                if (player instanceof EntityPlayerMP) {
                    CriteriaTriggers.PLACED_BLOCK.trigger((EntityPlayerMP) player, pos, itemStack);
                }
                final SoundType sounds = singleState.getBlock().getSoundType(singleState, world, pos, player);
                world.playSound(player, pos, sounds.getPlaceSound(), SoundCategory.BLOCKS, (sounds.getVolume() + 1.0F) / 2.0F, sounds.getPitch() * 0.8F);
                itemStack.shrink(1);
                return EnumActionResult.SUCCESS;
            }
        }
    }
    return EnumActionResult.FAIL;
}
Also used : SoundType(net.minecraft.block.SoundType) IBlockState(net.minecraft.block.state.IBlockState) Block(net.minecraft.block.Block) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP)

Example 98 with EntityPlayerMP

use of net.minecraft.entity.player.EntityPlayerMP in project VoodooCraft by Mod-DevCafeTeam.

the class HexSuffocate method activeUse.

@Override
public ItemStack activeUse(ItemStack stackIn, World world, EntityPlayer player, EnumHand hand, int strength, @Nullable EntityLivingBase target) {
    if (!world.isRemote) {
        RayTraceResult result = Minecraft.getMinecraft().objectMouseOver;
        Entity e = result.entityHit;
        if (e instanceof EntityPlayerMP) {
            EntityPlayerMP p = (EntityPlayerMP) e;
            if (!p.capabilities.isCreativeMode) {
                for (int i = 0; i < p.getMaxHealth(); i++) {
                    int dif = world.getDifficulty().getDifficultyId();
                    p.setHealth(p.getHealth() - dif);
                    p.performHurtAnimation();
                }
            }
        }
    }
    return super.activeUse(stackIn, world, player, hand, strength, target);
}
Also used : Entity(net.minecraft.entity.Entity) RayTraceResult(net.minecraft.util.math.RayTraceResult) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP)

Example 99 with EntityPlayerMP

use of net.minecraft.entity.player.EntityPlayerMP in project ArsMagica2 by Mithion.

the class Appropriation method applyEffectBlock.

@Override
public boolean applyEffectBlock(ItemStack stack, World world, int blockx, int blocky, int blockz, int blockFace, double impactX, double impactY, double impactZ, EntityLivingBase caster) {
    if (!(caster instanceof EntityPlayer))
        return false;
    ItemStack originalSpellStack = getOriginalSpellStack((EntityPlayer) caster);
    if (originalSpellStack == null) {
        return false;
    }
    if (originalSpellStack.stackTagCompound == null) {
        return false;
    }
    Block block = world.getBlock(blockx, blocky, blockz);
    if (block == null) {
        return false;
    }
    for (String s : AMCore.config.getAppropriationBlockBlacklist()) {
        if (block.getUnlocalizedName() == s) {
            return false;
        }
    }
    if (!world.isRemote) {
        if (originalSpellStack.stackTagCompound.hasKey(storageKey)) {
            if (world.getBlock(blockx, blocky, blockz) == Blocks.air)
                blockFace = -1;
            if (blockFace != -1) {
                switch(blockFace) {
                    case 0:
                        blocky--;
                        break;
                    case 1:
                        blocky++;
                        break;
                    case 2:
                        blockz--;
                        break;
                    case 3:
                        blockz++;
                        break;
                    case 4:
                        blockx--;
                        break;
                    case 5:
                        blockx++;
                        break;
                }
            }
            if (world.isAirBlock(blockx, blocky, blockz) || !world.getBlock(blockx, blocky, blockz).getMaterial().isSolid()) {
                // save current spell
                NBTTagCompound nbt = null;
                if (stack.getTagCompound() != null) {
                    nbt = (NBTTagCompound) stack.getTagCompound().copy();
                }
                EntityPlayerMP casterPlayer = (EntityPlayerMP) DummyEntityPlayer.fromEntityLiving(caster);
                world.captureBlockSnapshots = true;
                restore((EntityPlayer) caster, world, originalSpellStack, blockx, blocky, blockz, impactX, impactY, impactZ);
                world.captureBlockSnapshots = false;
                // save new spell data
                NBTTagCompound newNBT = null;
                if (stack.getTagCompound() != null) {
                    newNBT = (NBTTagCompound) stack.getTagCompound().copy();
                }
                net.minecraftforge.event.world.BlockEvent.PlaceEvent placeEvent = null;
                List<net.minecraftforge.common.util.BlockSnapshot> blockSnapshots = (List<net.minecraftforge.common.util.BlockSnapshot>) world.capturedBlockSnapshots.clone();
                world.capturedBlockSnapshots.clear();
                // restore original item data for event
                if (nbt != null) {
                    stack.setTagCompound(nbt);
                }
                if (blockSnapshots.size() > 1) {
                    placeEvent = ForgeEventFactory.onPlayerMultiBlockPlace(casterPlayer, blockSnapshots, ForgeDirection.UNKNOWN);
                } else if (blockSnapshots.size() == 1) {
                    placeEvent = ForgeEventFactory.onPlayerBlockPlace(casterPlayer, blockSnapshots.get(0), ForgeDirection.UNKNOWN);
                }
                if (placeEvent != null && (placeEvent.isCanceled())) {
                    // revert back all captured blocks
                    for (net.minecraftforge.common.util.BlockSnapshot blocksnapshot : blockSnapshots) {
                        world.restoringBlockSnapshots = true;
                        blocksnapshot.restore(true, false);
                        world.restoringBlockSnapshots = false;
                    }
                    return false;
                } else {
                    // Change the stack to its new content
                    if (nbt != null) {
                        stack.setTagCompound(newNBT);
                    }
                    for (net.minecraftforge.common.util.BlockSnapshot blocksnapshot : blockSnapshots) {
                        int blockX = blocksnapshot.x;
                        int blockY = blocksnapshot.y;
                        int blockZ = blocksnapshot.z;
                        int metadata = world.getBlockMetadata(blockX, blockY, blockZ);
                        int updateFlag = blocksnapshot.flag;
                        Block oldBlock = blocksnapshot.replacedBlock;
                        Block newBlock = world.getBlock(blockX, blockY, blockZ);
                        if (newBlock != null && !(newBlock.hasTileEntity(metadata))) {
                            // Containers get placed automatically
                            newBlock.onBlockAdded(world, blockX, blockY, blockZ);
                        }
                        world.markAndNotifyBlock(blockX, blockY, blockZ, null, oldBlock, newBlock, updateFlag);
                    }
                }
                world.capturedBlockSnapshots.clear();
            // restore((EntityPlayer)caster, world, originalSpellStack, blockx, blocky, blockz, impactX, impactY, impactZ);
            }
        } else {
            if (block == null || block.getBlockHardness(world, blockx, blocky, blockz) == -1.0f) {
                return false;
            }
            NBTTagCompound data = new NBTTagCompound();
            data.setString(storageType, "block");
            //data.setString("blockName", block.getUnlocalizedName().replace("tile.", ""));
            data.setInteger("blockID", Block.getIdFromBlock(block));
            int meta = world.getBlockMetadata(blockx, blocky, blockz);
            data.setInteger("meta", meta);
            EntityPlayerMP casterPlayer = (EntityPlayerMP) DummyEntityPlayer.fromEntityLiving(caster);
            if (!ForgeEventFactory.doPlayerHarvestCheck(casterPlayer, block, true)) {
                return false;
            }
            BreakEvent event = ForgeHooks.onBlockBreakEvent(world, casterPlayer.theItemInWorldManager.getGameType(), casterPlayer, blockx, blocky, blockz);
            if (event.isCanceled()) {
                return false;
            }
            TileEntity te = world.getTileEntity(blockx, blocky, blockz);
            if (te != null) {
                NBTTagCompound teData = new NBTTagCompound();
                te.writeToNBT(teData);
                data.setTag("tileEntity", teData);
                // remove tile entity first to prevent content dropping which is already saved in the NBT
                try {
                    world.removeTileEntity(blockx, blocky, blockz);
                } catch (Throwable exception) {
                    exception.printStackTrace();
                }
            }
            originalSpellStack.stackTagCompound.setTag(storageKey, data);
            setOriginalSpellStackData((EntityPlayer) caster, originalSpellStack);
            world.setBlockToAir(blockx, blocky, blockz);
        }
    }
    return true;
}
Also used : NBTTagCompound(net.minecraft.nbt.NBTTagCompound) ParticleOrbitPoint(am2.particles.ParticleOrbitPoint) BreakEvent(net.minecraftforge.event.world.BlockEvent.BreakEvent) TileEntity(net.minecraft.tileentity.TileEntity) DummyEntityPlayer(am2.utility.DummyEntityPlayer) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Block(net.minecraft.block.Block) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) StatList(net.minecraft.stats.StatList) List(java.util.List) ItemStack(net.minecraft.item.ItemStack)

Example 100 with EntityPlayerMP

use of net.minecraft.entity.player.EntityPlayerMP in project NewHorizonsCoreMod by GTNewHorizons.

the class CustomFuelsCommand method canCommandSenderUseCommand.

@Override
public boolean canCommandSenderUseCommand(ICommandSender pCommandSender) {
    if (pCommandSender instanceof EntityPlayerMP) {
        EntityPlayerMP tEP = (EntityPlayerMP) pCommandSender;
        boolean tPlayerOpped = MinecraftServer.getServer().getConfigurationManager().func_152596_g(tEP.getGameProfile());
        // && tIncreative;
        return tPlayerOpped;
    } else if (pCommandSender instanceof MinecraftServer)
        return true;
    else
        return false;
}
Also used : EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) MinecraftServer(net.minecraft.server.MinecraftServer)

Aggregations

EntityPlayerMP (net.minecraft.entity.player.EntityPlayerMP)163 EntityPlayer (net.minecraft.entity.player.EntityPlayer)32 ItemStack (net.minecraft.item.ItemStack)23 TileEntity (net.minecraft.tileentity.TileEntity)18 Entity (net.minecraft.entity.Entity)17 EntityLivingBase (net.minecraft.entity.EntityLivingBase)15 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)15 ChatComponentTranslation (net.minecraft.util.ChatComponentTranslation)14 BlockPos (net.minecraft.util.math.BlockPos)14 Block (net.minecraft.block.Block)11 IBlockState (net.minecraft.block.state.IBlockState)8 AxisAlignedBB (net.minecraft.util.math.AxisAlignedBB)8 World (net.minecraft.world.World)8 WrongUsageException (net.minecraft.command.WrongUsageException)7 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)7 NetHandlerPlayServer (net.minecraft.network.NetHandlerPlayServer)7 SubscribeEvent (cpw.mods.fml.common.eventhandler.SubscribeEvent)6 TrainPacket (club.nsdn.nyasamarailway.network.TrainPacket)5 TileEntityReceiver (club.nsdn.nyasamatelecom.api.tileentity.TileEntityReceiver)5 GenericStructure (ivorius.reccomplex.world.gen.feature.structure.generic.GenericStructure)5