По нажатию на блок должен зачаровывать предмет на удачу 100, но он зачаровывает его 2 раза.
Подскажите где ошибка?
Подскажите где ошибка?
Код:
package randommagics.blocks;
import java.util.concurrent.TimeUnit;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import randommagics.CreativeTab;
import randommagics.Init;
import thaumcraft.common.tiles.TilePedestal;
import thaumcraft.common.config.ConfigBlocks;
public class BlockRitualStonePower extends Block{
public BlockRitualStonePower()
{
super(Material.rock);
this.setBlockName("ritualStonePower");
this.setCreativeTab(CreativeTab.TabRandomMagics);
this.setBlockTextureName("randommagics:RitualStonePower");
this.setHarvestLevel("pickaxe", 2);
this.setHardness(3.0F);
}
private boolean StructExists(World world, int x, int y, int z)
{
boolean ex = true;
for (int addx = -1; addx < 1; addx++)
{
for (int addz = -1; addz < 1; addz++)
{
if (world.getBlock(x+addx, y-1, z+addz) != Init.RitualStone)
ex = false;
}
}
TileEntity te = world.getTileEntity(x, y+1, z);
if (ex && te != null && (te instanceof TilePedestal))
{
ped = (TilePedestal)te;
if(ped.getStackInSlot(0) != null && ped.getStackInSlot(0).isItemEnchanted())
return true;
}
return false;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
ItemStack current_is = player.getCurrentEquippedItem();
if (current_is != null && current_is.getItem() == Init.RitualCatalyst && StructExists(world, x, y, z))
{
player.destroyCurrentEquippedItem();
ped.getStackInSlot(0).addEnchantment(Enchantment.fortune, 100);
}
return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ);
}
private TilePedestal ped;
}