From f180d86de3bc62afa612be92c7a53e1dd9090343 Mon Sep 17 00:00:00 2001 From: T14D3 <73843330+T14D3@users.noreply.github.com> Date: Thu, 2 Jan 2025 20:28:34 +0100 Subject: [PATCH] Fix MOVING_PISTON material crashing the plugin on load --- src/main/java/de/t14d3/zones/utils/Types.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/t14d3/zones/utils/Types.java b/src/main/java/de/t14d3/zones/utils/Types.java index 23449a4..9693073 100644 --- a/src/main/java/de/t14d3/zones/utils/Types.java +++ b/src/main/java/de/t14d3/zones/utils/Types.java @@ -1,6 +1,7 @@ package de.t14d3.zones.utils; import org.bukkit.Material; +import org.bukkit.block.BlockState; import org.bukkit.block.Container; import org.bukkit.block.data.Powerable; import org.bukkit.entity.EntityType; @@ -57,9 +58,17 @@ public void populateTypes() { // Populate containerTypes for (Material material : Material.values()) { - if (material.isBlock() && material.createBlockData().createBlockState() instanceof Container) { - containerTypes.add(material.name()); - containerTypes.add("!" + material.name()); + if (material.isBlock()) { + BlockState state; + try { + state = material.createBlockData().createBlockState(); + } catch (Exception ignored) { + continue; + } + if (state instanceof Container) { + containerTypes.add(material.name()); + containerTypes.add("!" + material.name()); + } } } containerTypes.add("true"); @@ -67,9 +76,17 @@ public void populateTypes() { // Populate redstoneTypes for (Material material : Material.values()) { - if (material.isBlock() && material.createBlockData().createBlockState() instanceof Powerable) { - redstoneTypes.add(material.name()); - redstoneTypes.add("!" + material.name()); + if (material.isBlock()) { + BlockState state; + try { + state = material.createBlockData().createBlockState(); + } catch (Exception ignored) { + continue; + } + if (state instanceof Powerable) { + redstoneTypes.add(material.name()); + redstoneTypes.add("!" + material.name()); + } } } redstoneTypes.add("true");