113 lines
4.5 KiB
Java
113 lines
4.5 KiB
Java
package tech.sbdevelopment.v10lift.managers;
|
|
|
|
import com.cryptomorin.xseries.XMaterial;
|
|
import org.bukkit.Material;
|
|
|
|
import java.util.HashSet;
|
|
|
|
/**
|
|
* This class contains a set with all the blocks who may not be copied
|
|
*/
|
|
public class AntiCopyBlockManager {
|
|
private static final HashSet<XMaterial> antiCopy = new HashSet<>();
|
|
|
|
static {
|
|
//TODO Add more anti copy materials
|
|
//TODO Add to config
|
|
antiCopy.add(XMaterial.REDSTONE_TORCH);
|
|
antiCopy.add(XMaterial.REDSTONE_WALL_TORCH);
|
|
antiCopy.add(XMaterial.REPEATER);
|
|
antiCopy.add(XMaterial.COMPARATOR);
|
|
antiCopy.add(XMaterial.REDSTONE_WIRE);
|
|
antiCopy.add(XMaterial.ACACIA_BUTTON);
|
|
antiCopy.add(XMaterial.BIRCH_BUTTON);
|
|
antiCopy.add(XMaterial.DARK_OAK_BUTTON);
|
|
antiCopy.add(XMaterial.JUNGLE_BUTTON);
|
|
antiCopy.add(XMaterial.OAK_BUTTON);
|
|
antiCopy.add(XMaterial.SPRUCE_BUTTON);
|
|
antiCopy.add(XMaterial.STONE_BUTTON);
|
|
antiCopy.add(XMaterial.TORCH);
|
|
antiCopy.add(XMaterial.ACACIA_TRAPDOOR);
|
|
antiCopy.add(XMaterial.BIRCH_TRAPDOOR);
|
|
antiCopy.add(XMaterial.DARK_OAK_TRAPDOOR);
|
|
antiCopy.add(XMaterial.JUNGLE_TRAPDOOR);
|
|
antiCopy.add(XMaterial.OAK_TRAPDOOR);
|
|
antiCopy.add(XMaterial.SPRUCE_TRAPDOOR);
|
|
antiCopy.add(XMaterial.IRON_TRAPDOOR);
|
|
antiCopy.add(XMaterial.ACACIA_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.BIRCH_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.DARK_OAK_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.JUNGLE_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.OAK_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.SPRUCE_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.STONE_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.HEAVY_WEIGHTED_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.LIGHT_WEIGHTED_PRESSURE_PLATE);
|
|
antiCopy.add(XMaterial.ACACIA_SIGN);
|
|
antiCopy.add(XMaterial.BIRCH_SIGN);
|
|
antiCopy.add(XMaterial.DARK_OAK_SIGN);
|
|
antiCopy.add(XMaterial.JUNGLE_SIGN);
|
|
antiCopy.add(XMaterial.OAK_SIGN);
|
|
antiCopy.add(XMaterial.SPRUCE_SIGN);
|
|
antiCopy.add(XMaterial.ACACIA_WALL_SIGN);
|
|
antiCopy.add(XMaterial.BIRCH_WALL_SIGN);
|
|
antiCopy.add(XMaterial.DARK_OAK_WALL_SIGN);
|
|
antiCopy.add(XMaterial.JUNGLE_WALL_SIGN);
|
|
antiCopy.add(XMaterial.OAK_WALL_SIGN);
|
|
antiCopy.add(XMaterial.SPRUCE_WALL_SIGN);
|
|
antiCopy.add(XMaterial.RAIL);
|
|
antiCopy.add(XMaterial.POWERED_RAIL);
|
|
antiCopy.add(XMaterial.DETECTOR_RAIL);
|
|
antiCopy.add(XMaterial.ACTIVATOR_RAIL);
|
|
antiCopy.add(XMaterial.LADDER);
|
|
|
|
/* Causes duping */
|
|
antiCopy.add(XMaterial.WHITE_CARPET);
|
|
antiCopy.add(XMaterial.ORANGE_CARPET);
|
|
antiCopy.add(XMaterial.MAGENTA_CARPET);
|
|
antiCopy.add(XMaterial.LIGHT_BLUE_CARPET);
|
|
antiCopy.add(XMaterial.YELLOW_CARPET);
|
|
antiCopy.add(XMaterial.LIME_CARPET);
|
|
antiCopy.add(XMaterial.PINK_CARPET);
|
|
antiCopy.add(XMaterial.GRAY_CARPET);
|
|
antiCopy.add(XMaterial.LIGHT_GRAY_CARPET);
|
|
antiCopy.add(XMaterial.CYAN_CARPET);
|
|
antiCopy.add(XMaterial.PURPLE_CARPET);
|
|
antiCopy.add(XMaterial.BLUE_CARPET);
|
|
antiCopy.add(XMaterial.BROWN_CARPET);
|
|
antiCopy.add(XMaterial.GREEN_CARPET);
|
|
antiCopy.add(XMaterial.RED_CARPET);
|
|
antiCopy.add(XMaterial.BLACK_CARPET);
|
|
|
|
/* Because of datatypes */
|
|
antiCopy.add(XMaterial.BEEHIVE);
|
|
antiCopy.add(XMaterial.BELL);
|
|
antiCopy.add(XMaterial.BREWING_STAND);
|
|
antiCopy.add(XMaterial.BUBBLE_COLUMN);
|
|
antiCopy.add(XMaterial.CAKE);
|
|
antiCopy.add(XMaterial.CAMPFIRE);
|
|
antiCopy.add(XMaterial.COCOA);
|
|
antiCopy.add(XMaterial.COMMAND_BLOCK);
|
|
antiCopy.add(XMaterial.CHAIN_COMMAND_BLOCK);
|
|
antiCopy.add(XMaterial.REPEATING_COMMAND_BLOCK);
|
|
antiCopy.add(XMaterial.DAYLIGHT_DETECTOR);
|
|
antiCopy.add(XMaterial.DISPENSER);
|
|
antiCopy.add(XMaterial.END_PORTAL_FRAME);
|
|
antiCopy.add(XMaterial.FARMLAND);
|
|
antiCopy.add(XMaterial.FIRE);
|
|
antiCopy.add(XMaterial.FURNACE);
|
|
antiCopy.add(XMaterial.HOPPER);
|
|
antiCopy.add(XMaterial.JUKEBOX);
|
|
}
|
|
|
|
/**
|
|
* Check if this block may not be copied
|
|
*
|
|
* @param mat The material to check for
|
|
* @return true = not copy this block
|
|
*/
|
|
public static boolean isAntiCopy(Material mat) {
|
|
XMaterial xmat = XMaterial.matchXMaterial(mat);
|
|
return antiCopy.contains(xmat);
|
|
}
|
|
}
|