package net.glowstone.block.itemtype;
import net.glowstone.block.GlowBlock;
import net.glowstone.block.ItemTable;
import net.glowstone.block.blocktype.BlockType;
import net.glowstone.block.blocktype.IBlockGrowable;
import net.glowstone.entity.GlowPlayer;
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.Dye;
import org.bukkit.material.MaterialData;
import org.bukkit.util.Vector;
public class ItemDye extends ItemType {
@Override
public void rightClickBlock(GlowPlayer player, GlowBlock target, BlockFace face, ItemStack holding, Vector clickedLoc) {
MaterialData data = holding.getData();
if (data instanceof Dye) {
final Dye dye = (Dye) data;
if (dye.getColor() == DyeColor.WHITE && player.getGameMode() != GameMode.ADVENTURE) { // player interacts with bone meal in hand
BlockType blockType = ItemTable.instance().getBlock(target.getType());
if (blockType instanceof IBlockGrowable) {
IBlockGrowable growable = (IBlockGrowable) blockType;
if (growable.isFertilizable(target)) {
// spawn some green particles
target.getWorld().playEffect(target.getLocation(), Effect.BONEMEAL_USE, 0);
if (growable.canGrowWithChance(target)) {
growable.grow(player, target);
}
// deduct from stack if not in creative mode
if (player.getGameMode() != GameMode.CREATIVE) {
holding.setAmount(holding.getAmount() - 1);
}
}
}
} else if (dye.getColor() == DyeColor.BROWN && target.getType() == Material.LOG) {
ItemTable.instance().getBlock(Material.COCOA).rightClickBlock(player, target, face, holding, clickedLoc);
}
}
}
}