package com.nisovin.magicspells.materials; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.FallingBlock; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; public class MagicUnknownMaterial extends MagicMaterial { int type; short data; public MagicUnknownMaterial(int type, short data) { this.type = type; this.data = data; } @Override public Material getMaterial() { return Material.getMaterial(type); } @Override public MaterialData getMaterialData() { if (data == (byte)data) { return new MaterialData(type, (byte)data); } else { return new MaterialData(type); } } @Override public void setBlock(Block block, boolean applyPhysics) { if (data < 16) { block.setTypeIdAndData(type, (byte)data, applyPhysics); } } @Override public FallingBlock spawnFallingBlock(Location location) { return location.getWorld().spawnFallingBlock(location, getMaterial(), getMaterialData().getData()); } @Override public ItemStack toItemStack(int quantity) { return new ItemStack(type, quantity, data); } @Override public boolean equals(MaterialData matData) { return matData.getItemTypeId() == type && matData.getData() == data; } @Override public boolean equals(ItemStack itemStack) { return itemStack.getTypeId() == type && itemStack.getDurability() == data; } @Override public int hashCode() { return (type + ":" + data).hashCode(); } }