107 lines
3.0 KiB
Java
107 lines
3.0 KiB
Java
package org.bukkit.craftbukkit.legacy;
|
|
|
|
import com.google.common.base.Preconditions;
|
|
import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap;
|
|
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.World;
|
|
import org.bukkit.block.Block;
|
|
import org.bukkit.block.BlockState;
|
|
import org.bukkit.craftbukkit.block.CraftBlock;
|
|
import org.bukkit.craftbukkit.block.CraftBlockState;
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
/**
|
|
* @deprecated do not use for any reason
|
|
*/
|
|
@Deprecated
|
|
public final class CraftEvil {
|
|
|
|
private static final Int2ObjectMap<Material> byId = new Int2ObjectLinkedOpenHashMap<>();
|
|
|
|
static {
|
|
for (Material material : Material.values()) {
|
|
if (!material.isLegacy()) {
|
|
continue;
|
|
}
|
|
|
|
Preconditions.checkState(!byId.containsKey(material.getId()), "Duplicate material ID for", material);
|
|
byId.put(material.getId(), material);
|
|
}
|
|
}
|
|
|
|
private CraftEvil() {
|
|
//
|
|
}
|
|
|
|
public static int getBlockTypeIdAt(World world, int x, int y, int z) {
|
|
return getId(world.getBlockAt(x, y, z).getType());
|
|
}
|
|
|
|
public static int getBlockTypeIdAt(World world, Location location) {
|
|
return getId(world.getBlockAt(location).getType());
|
|
}
|
|
|
|
public static Material getType(Block block) {
|
|
return CraftLegacy.toLegacyMaterial(((CraftBlock) block).getNMS());
|
|
}
|
|
|
|
public static Material getType(BlockState block) {
|
|
return CraftLegacy.toLegacyMaterial(((CraftBlockState) block).getHandle());
|
|
}
|
|
|
|
public static int getTypeId(Block block) {
|
|
return getId(block.getType());
|
|
}
|
|
|
|
public static boolean setTypeId(Block block, int type) {
|
|
block.setType(getMaterial(type));
|
|
return true;
|
|
}
|
|
|
|
public static boolean setTypeId(Block block, int type, boolean applyPhysics) {
|
|
block.setType(getMaterial(type), applyPhysics);
|
|
return true;
|
|
}
|
|
|
|
public static boolean setTypeIdAndData(Block block, int type, byte data, boolean applyPhysics) {
|
|
block.setType(getMaterial(type), applyPhysics);
|
|
setData(block, data);
|
|
return true;
|
|
}
|
|
|
|
public static void setData(Block block, byte data) {
|
|
((CraftBlock) block).setData(data);
|
|
}
|
|
|
|
public static void setData(Block block, byte data, boolean applyPhysics) {
|
|
((CraftBlock) block).setData(data, applyPhysics);
|
|
}
|
|
|
|
public static int getTypeId(BlockState state) {
|
|
return getId(state.getType());
|
|
}
|
|
|
|
public static boolean setTypeId(BlockState state, int type) {
|
|
state.setType(getMaterial(type));
|
|
return true;
|
|
}
|
|
|
|
public static int getTypeId(ItemStack stack) {
|
|
return getId(stack.getType());
|
|
}
|
|
|
|
public static void setTypeId(ItemStack stack, int type) {
|
|
stack.setType(getMaterial(type));
|
|
}
|
|
|
|
public static Material getMaterial(int id) {
|
|
return byId.get(id);
|
|
}
|
|
|
|
public static int getId(Material material) {
|
|
return CraftLegacy.toLegacy(material).getId();
|
|
}
|
|
}
|