Add some missing special block handlings for 1.16

This commit is contained in:
Brokkonaut
2020-07-02 04:33:18 +02:00
parent 1ef7c78c0d
commit aba6e4d9c8
3 changed files with 71 additions and 37 deletions

View File

@ -1,5 +1,6 @@
package de.diddiz.LogBlock.blockstate;
import de.diddiz.util.BukkitUtils;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -12,7 +13,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
public class BlockStateCodecSign implements BlockStateCodec {
@Override
public Material[] getApplicableMaterials() {
return new Material[] { Material.ACACIA_SIGN, Material.ACACIA_WALL_SIGN, Material.BIRCH_SIGN, Material.BIRCH_WALL_SIGN, Material.DARK_OAK_SIGN, Material.DARK_OAK_WALL_SIGN, Material.JUNGLE_SIGN, Material.JUNGLE_WALL_SIGN, Material.OAK_SIGN, Material.OAK_WALL_SIGN, Material.SPRUCE_SIGN, Material.SPRUCE_WALL_SIGN };
return BukkitUtils.getAllSignsArray();
}
@Override

View File

@ -60,12 +60,16 @@ public class InteractLogging extends LoggingListener {
case JUNGLE_FENCE_GATE:
case ACACIA_FENCE_GATE:
case DARK_OAK_FENCE_GATE:
case WARPED_FENCE_GATE:
case CRIMSON_FENCE_GATE:
case OAK_TRAPDOOR:
case SPRUCE_TRAPDOOR:
case BIRCH_TRAPDOOR:
case JUNGLE_TRAPDOOR:
case ACACIA_TRAPDOOR:
case DARK_OAK_TRAPDOOR:
case WARPED_TRAPDOOR:
case CRIMSON_TRAPDOOR:
if (wcfg.isLogging(Logging.DOORINTERACT) && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Openable newBlockData = (Openable) blockData.clone();
newBlockData.setOpen(!newBlockData.isOpen());
@ -121,6 +125,8 @@ public class InteractLogging extends LoggingListener {
case JUNGLE_PRESSURE_PLATE:
case ACACIA_PRESSURE_PLATE:
case DARK_OAK_PRESSURE_PLATE:
case WARPED_PRESSURE_PLATE:
case CRIMSON_PRESSURE_PLATE:
case STONE_PRESSURE_PLATE:
case HEAVY_WEIGHTED_PRESSURE_PLATE:
case LIGHT_WEIGHTED_PRESSURE_PLATE:
@ -187,6 +193,8 @@ public class InteractLogging extends LoggingListener {
case JUNGLE_DOOR:
case ACACIA_DOOR:
case DARK_OAK_DOOR:
case WARPED_DOOR:
case CRIMSON_DOOR:
if (wcfg.isLogging(Logging.DOORINTERACT) && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Door newBlockData = (Door) blockData.clone();
newBlockData.setOpen(!newBlockData.isOpen());
@ -200,6 +208,8 @@ public class InteractLogging extends LoggingListener {
case JUNGLE_BUTTON:
case ACACIA_BUTTON:
case DARK_OAK_BUTTON:
case WARPED_BUTTON:
case CRIMSON_BUTTON:
case LEVER:
if (wcfg.isLogging(Logging.SWITCHINTERACT) && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Switch newBlockData = (Switch) blockData.clone();
@ -215,12 +225,16 @@ public class InteractLogging extends LoggingListener {
case JUNGLE_SIGN:
case ACACIA_SIGN:
case DARK_OAK_SIGN:
case WARPED_SIGN:
case CRIMSON_SIGN:
case OAK_WALL_SIGN:
case SPRUCE_WALL_SIGN:
case BIRCH_WALL_SIGN:
case JUNGLE_WALL_SIGN:
case ACACIA_WALL_SIGN:
case DARK_OAK_WALL_SIGN:
case WARPED_WALL_SIGN:
case CRIMSON_WALL_SIGN:
if (wcfg.isLogging(Logging.SIGNTEXT) && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
ItemStack stack = event.getItem();
if (stack != null && BukkitUtils.isDye(stack.getType())) {

View File

@ -65,6 +65,9 @@ public class BukkitUtils {
private static final Set<Material> bedBlocks;
private static final Map<EntityType, Material> projectileItems;
private static final EnumSet<Material> signs;
private static final EnumSet<Material> wallSigns;
private static final EnumSet<Material> allSigns;
private static final EnumSet<Material> buttons;
private static final EnumSet<Material> pressurePlates;
private static final EnumSet<Material> woodenDoors;
@ -80,6 +83,8 @@ public class BukkitUtils {
pressurePlates.add(Material.JUNGLE_PRESSURE_PLATE);
pressurePlates.add(Material.ACACIA_PRESSURE_PLATE);
pressurePlates.add(Material.DARK_OAK_PRESSURE_PLATE);
pressurePlates.add(Material.WARPED_PRESSURE_PLATE);
pressurePlates.add(Material.CRIMSON_PRESSURE_PLATE);
pressurePlates.add(Material.STONE_PRESSURE_PLATE);
pressurePlates.add(Material.LIGHT_WEIGHTED_PRESSURE_PLATE);
pressurePlates.add(Material.HEAVY_WEIGHTED_PRESSURE_PLATE);
@ -91,6 +96,8 @@ public class BukkitUtils {
woodenDoors.add(Material.JUNGLE_DOOR);
woodenDoors.add(Material.ACACIA_DOOR);
woodenDoors.add(Material.DARK_OAK_DOOR);
woodenDoors.add(Material.WARPED_DOOR);
woodenDoors.add(Material.CRIMSON_DOOR);
EnumSet<Material> saplings = EnumSet.noneOf(Material.class);
saplings.add(Material.OAK_SAPLING);
@ -99,6 +106,8 @@ public class BukkitUtils {
saplings.add(Material.JUNGLE_SAPLING);
saplings.add(Material.ACACIA_SAPLING);
saplings.add(Material.DARK_OAK_SAPLING);
saplings.add(Material.WARPED_FUNGUS);
saplings.add(Material.CRIMSON_FUNGUS);
EnumSet<Material> carpets = EnumSet.noneOf(Material.class);
carpets.add(Material.BLACK_CARPET);
@ -125,6 +134,8 @@ public class BukkitUtils {
slabs.add(Material.JUNGLE_SLAB);
slabs.add(Material.ACACIA_SLAB);
slabs.add(Material.DARK_OAK_SLAB);
slabs.add(Material.WARPED_SLAB);
slabs.add(Material.CRIMSON_SLAB);
slabs.add(Material.STONE_SLAB);
slabs.add(Material.STONE_BRICK_SLAB);
slabs.add(Material.COBBLESTONE_SLAB);
@ -138,6 +149,8 @@ public class BukkitUtils {
slabs.add(Material.PRISMARINE_SLAB);
slabs.add(Material.DARK_PRISMARINE_SLAB);
slabs.add(Material.PRISMARINE_BRICK_SLAB);
slabs.add(Material.BLACKSTONE_SLAB);
slabs.add(Material.POLISHED_BLACKSTONE_SLAB);
buttons = EnumSet.noneOf(Material.class);
buttons.add(Material.STONE_BUTTON);
@ -147,6 +160,32 @@ public class BukkitUtils {
buttons.add(Material.JUNGLE_BUTTON);
buttons.add(Material.ACACIA_BUTTON);
buttons.add(Material.DARK_OAK_BUTTON);
buttons.add(Material.WARPED_BUTTON);
buttons.add(Material.CRIMSON_BUTTON);
signs = EnumSet.noneOf(Material.class);
signs.add(Material.OAK_SIGN);
signs.add(Material.SPRUCE_SIGN);
signs.add(Material.BIRCH_SIGN);
signs.add(Material.JUNGLE_SIGN);
signs.add(Material.DARK_OAK_SIGN);
signs.add(Material.ACACIA_SIGN);
signs.add(Material.WARPED_SIGN);
signs.add(Material.CRIMSON_SIGN);
wallSigns = EnumSet.noneOf(Material.class);
wallSigns.add(Material.OAK_WALL_SIGN);
wallSigns.add(Material.SPRUCE_WALL_SIGN);
wallSigns.add(Material.BIRCH_WALL_SIGN);
wallSigns.add(Material.JUNGLE_WALL_SIGN);
wallSigns.add(Material.DARK_OAK_WALL_SIGN);
wallSigns.add(Material.ACACIA_WALL_SIGN);
wallSigns.add(Material.WARPED_WALL_SIGN);
wallSigns.add(Material.CRIMSON_WALL_SIGN);
allSigns = EnumSet.noneOf(Material.class);
allSigns.addAll(signs);
allSigns.addAll(wallSigns);
singleBlockPlants = EnumSet.noneOf(Material.class);
singleBlockPlants.add(Material.GRASS);
@ -194,12 +233,7 @@ public class BukkitUtils {
// Blocks that break when they are attached to a block
relativeBreakable = EnumSet.noneOf(Material.class);
relativeBreakable.add(Material.ACACIA_WALL_SIGN);
relativeBreakable.add(Material.BIRCH_WALL_SIGN);
relativeBreakable.add(Material.DARK_OAK_WALL_SIGN);
relativeBreakable.add(Material.JUNGLE_WALL_SIGN);
relativeBreakable.add(Material.OAK_WALL_SIGN);
relativeBreakable.add(Material.SPRUCE_WALL_SIGN);
relativeBreakable.addAll(wallSigns);
relativeBreakable.add(Material.LADDER);
relativeBreakable.addAll(buttons);
relativeBreakable.add(Material.REDSTONE_WALL_TORCH);
@ -225,17 +259,13 @@ public class BukkitUtils {
relativeTopBreakable.add(Material.ACTIVATOR_RAIL);
relativeTopBreakable.add(Material.RAIL);
relativeTopBreakable.add(Material.REDSTONE_WIRE);
relativeTopBreakable.add(Material.ACACIA_SIGN);
relativeTopBreakable.add(Material.BIRCH_SIGN);
relativeTopBreakable.add(Material.DARK_OAK_SIGN);
relativeTopBreakable.add(Material.JUNGLE_SIGN);
relativeTopBreakable.add(Material.OAK_SIGN);
relativeTopBreakable.add(Material.SPRUCE_SIGN);
relativeTopBreakable.addAll(signs);
relativeTopBreakable.addAll(pressurePlates);
relativeTopBreakable.add(Material.SNOW);
relativeTopBreakable.add(Material.REPEATER);
relativeTopBreakable.add(Material.COMPARATOR);
relativeTopBreakable.add(Material.TORCH);
relativeTopBreakable.add(Material.SOUL_TORCH);
relativeTopBreakable.add(Material.REDSTONE_TORCH);
relativeTopBreakable.addAll(woodenDoors);
relativeTopBreakable.add(Material.IRON_DOOR);
@ -253,32 +283,13 @@ public class BukkitUtils {
// Blocks that break falling entities
fallingEntityKillers = EnumSet.noneOf(Material.class);
fallingEntityKillers.add(Material.ACACIA_SIGN);
fallingEntityKillers.add(Material.ACACIA_WALL_SIGN);
fallingEntityKillers.add(Material.BIRCH_SIGN);
fallingEntityKillers.add(Material.BIRCH_WALL_SIGN);
fallingEntityKillers.add(Material.DARK_OAK_SIGN);
fallingEntityKillers.add(Material.DARK_OAK_WALL_SIGN);
fallingEntityKillers.add(Material.JUNGLE_SIGN);
fallingEntityKillers.add(Material.JUNGLE_WALL_SIGN);
fallingEntityKillers.add(Material.OAK_SIGN);
fallingEntityKillers.add(Material.OAK_WALL_SIGN);
fallingEntityKillers.add(Material.SPRUCE_SIGN);
fallingEntityKillers.add(Material.SPRUCE_WALL_SIGN);
fallingEntityKillers.addAll(signs);
fallingEntityKillers.addAll(wallSigns);
fallingEntityKillers.addAll(pressurePlates);
fallingEntityKillers.addAll(saplings);
fallingEntityKillers.add(Material.DANDELION);
fallingEntityKillers.add(Material.POPPY);
fallingEntityKillers.add(Material.BLUE_ORCHID);
fallingEntityKillers.add(Material.ALLIUM);
fallingEntityKillers.add(Material.AZURE_BLUET);
fallingEntityKillers.add(Material.ORANGE_TULIP);
fallingEntityKillers.add(Material.WHITE_TULIP);
fallingEntityKillers.add(Material.PINK_TULIP);
fallingEntityKillers.add(Material.RED_TULIP);
fallingEntityKillers.add(Material.OXEYE_DAISY);
fallingEntityKillers.add(Material.BROWN_MUSHROOM);
fallingEntityKillers.add(Material.RED_MUSHROOM);
fallingEntityKillers.addAll(singleBlockPlants);
fallingEntityKillers.remove(Material.GRASS);
fallingEntityKillers.remove(Material.NETHER_SPROUTS);
fallingEntityKillers.addAll(doublePlants);
fallingEntityKillers.add(Material.WHEAT);
fallingEntityKillers.add(Material.CARROT);
@ -289,6 +300,8 @@ public class BukkitUtils {
fallingEntityKillers.addAll(slabs);
fallingEntityKillers.add(Material.TORCH);
fallingEntityKillers.add(Material.WALL_TORCH);
fallingEntityKillers.add(Material.SOUL_TORCH);
fallingEntityKillers.add(Material.SOUL_WALL_TORCH);
fallingEntityKillers.add(Material.FLOWER_POT);
fallingEntityKillers.add(Material.POWERED_RAIL);
fallingEntityKillers.add(Material.DETECTOR_RAIL);
@ -380,6 +393,7 @@ public class BukkitUtils {
nonFluidProofBlocks.add(Material.REDSTONE_WALL_TORCH);
nonFluidProofBlocks.add(Material.LEVER);
nonFluidProofBlocks.add(Material.WALL_TORCH);
nonFluidProofBlocks.add(Material.SOUL_WALL_TORCH);
nonFluidProofBlocks.add(Material.TRIPWIRE_HOOK);
nonFluidProofBlocks.add(Material.COCOA);
nonFluidProofBlocks.addAll(pressurePlates);
@ -390,6 +404,7 @@ public class BukkitUtils {
nonFluidProofBlocks.add(Material.BEETROOT);
nonFluidProofBlocks.add(Material.NETHER_WART);
nonFluidProofBlocks.add(Material.TORCH);
nonFluidProofBlocks.add(Material.SOUL_TORCH);
nonFluidProofBlocks.add(Material.FLOWER_POT);
nonFluidProofBlocks.add(Material.POWERED_RAIL);
nonFluidProofBlocks.add(Material.DETECTOR_RAIL);
@ -1014,4 +1029,8 @@ public class BukkitUtils {
}
return false;
}
public static Material[] getAllSignsArray() {
return allSigns.toArray(new Material[allSigns.size()]);
}
}