public ItemStack onFocusRightClick(ItemStack itemstack, World world, EntityPlayer player, MovingObjectPosition mop) {
ItemWandCasting wand = (ItemWandCasting)itemstack.getItem();
player.swingItem();
if(!world.isRemote && mop != null && mop.typeOfHit == EnumMovingObjectType.TILE) {
String key = mop.blockX + ":" + mop.blockY + ":" + mop.blockZ + ":" + world.provider.dimensionId;
if(delay.containsKey(key) && ((Long)delay.get(key)).longValue() > System.currentTimeMillis()) {
return itemstack;
}
delay.put(key, Long.valueOf(System.currentTimeMillis() + 500L));
TileEntity tt = world.getBlockTileEntity(mop.blockX, mop.blockY, mop.blockZ);
if(tt == null && wand.consumeAllVis(itemstack, player, this.getVisCost(), true)) {
int tw2 = world.getBlockId(mop.blockX, mop.blockY, mop.blockZ);
int md = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
int ll = Block.blocksList[tw2].getLightValue(world, mop.blockX, mop.blockY, mop.blockZ);
world.setBlock(mop.blockX, mop.blockY, mop.blockZ, ConfigBlocks.blockWarded.blockID, md, 3);
TileEntity tile = world.getBlockTileEntity(mop.blockX, mop.blockY, mop.blockZ);
if(tile != null && tile instanceof TileWarded) {
TileWarded tw1 = (TileWarded)tile;
tw1.blockId = tw2;
tw1.blockMd = md;
tw1.light = ll;
tw1.owner = player.username;
world.markBlockForUpdate(mop.blockX, mop.blockY, mop.blockZ);
}
world.playSoundEffect((double)mop.blockX + 0.5D, (double)mop.blockY + 0.5D, (double)mop.blockZ + 0.5D, "thaumcraft:zap", 0.25F, 1.0F);
PacketHandler.sendBlockSparkleFXPacket(mop.blockX, mop.blockY, mop.blockZ, (byte)1, player);
} else if(tt != null && tt instanceof TileWarded) {
TileWarded tw = (TileWarded)tt;
if(tw.owner.equals(player.username)) {
world.setBlock(mop.blockX, mop.blockY, mop.blockZ, tw.blockId, tw.blockMd, 3);
world.markBlockForUpdate(mop.blockX, mop.blockY, mop.blockZ);
world.playSoundEffect((double)mop.blockX + 0.5D, (double)mop.blockY + 0.5D, (double)mop.blockZ + 0.5D, "thaumcraft:zap", 0.25F, 1.0F);
PacketHandler.sendBlockSparkleFXPacket(mop.blockX, mop.blockY, mop.blockZ, (byte)1, player);
}
}
}
return itemstack;
}