diff --git a/pom.xml b/pom.xml
index 471fba0..a402c55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,7 +44,7 @@
org.spigotmc
spigot-api
- 1.20-R0.1-SNAPSHOT
+ 1.20.1-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/de/diddiz/LogBlock/blockstate/BlockStateCodecSign.java b/src/main/java/de/diddiz/LogBlock/blockstate/BlockStateCodecSign.java
index 64c2570..8196baa 100644
--- a/src/main/java/de/diddiz/LogBlock/blockstate/BlockStateCodecSign.java
+++ b/src/main/java/de/diddiz/LogBlock/blockstate/BlockStateCodecSign.java
@@ -1,7 +1,6 @@
package de.diddiz.LogBlock.blockstate;
import de.diddiz.LogBlock.util.BukkitUtils;
-import de.diddiz.LogBlock.util.Reflections;
import java.awt.Color;
import java.util.Arrays;
import java.util.Collections;
@@ -28,7 +27,7 @@ public class BlockStateCodecSign implements BlockStateCodec {
public YamlConfiguration serialize(BlockState state) {
YamlConfiguration conf = null;
if (state instanceof Sign sign) {
- boolean waxed = Reflections.isSignWaxed(sign);
+ boolean waxed = sign.isWaxed();
if (waxed) {
conf = new YamlConfiguration();
conf.set("waxed", waxed);
@@ -92,7 +91,7 @@ public class BlockStateCodecSign implements BlockStateCodec {
if (state instanceof Sign) {
Sign sign = (Sign) state;
if (conf != null) {
- sign.setEditable(!conf.getBoolean("waxed"));
+ sign.setWaxed(conf.getBoolean("waxed"));
for (Side side : Side.values()) {
ConfigurationSection sideSection = side == Side.FRONT ? conf : conf.getConfigurationSection(side.name().toLowerCase());
DyeColor signColor = DyeColor.BLACK;
@@ -120,7 +119,7 @@ public class BlockStateCodecSign implements BlockStateCodec {
signSide.setGlowingText(glowing);
}
} else {
- sign.setEditable(true);
+ sign.setWaxed(false);
for (Side side : Side.values()) {
SignSide signSide = sign.getSide(side);
for (int i = 0; i < 4; i++) {
diff --git a/src/main/java/de/diddiz/LogBlock/listeners/InteractLogging.java b/src/main/java/de/diddiz/LogBlock/listeners/InteractLogging.java
index 55dd713..13d1b98 100644
--- a/src/main/java/de/diddiz/LogBlock/listeners/InteractLogging.java
+++ b/src/main/java/de/diddiz/LogBlock/listeners/InteractLogging.java
@@ -5,7 +5,6 @@ import de.diddiz.LogBlock.LogBlock;
import de.diddiz.LogBlock.Logging;
import de.diddiz.LogBlock.config.WorldConfig;
import de.diddiz.LogBlock.util.BukkitUtils;
-import de.diddiz.LogBlock.util.Reflections;
import java.util.UUID;
import org.bukkit.DyeColor;
import org.bukkit.GameEvent;
@@ -99,8 +98,7 @@ public class InteractLogging extends LoggingListener {
if (BukkitUtils.isDye(itemType) || itemType == Material.GLOW_INK_SAC || itemType == Material.INK_SAC || itemType == Material.HONEYCOMB) {
final BlockState before = event.getClickedBlock().getState();
if (before instanceof Sign signBefore) {
- boolean waxed = Reflections.isSignWaxed(signBefore);
- if (!waxed) {
+ if (!signBefore.isWaxed()) {
final Sign signAfter = (Sign) event.getClickedBlock().getState();
Side side = BukkitUtils.getFacingSignSide(player, clicked);
SignSide signSideBefore = signBefore.getSide(side);
@@ -116,7 +114,7 @@ public class InteractLogging extends LoggingListener {
consumer.queueBlockReplace(Actor.actorFromEntity(player), signBefore, signAfter);
}
} else if (itemType == Material.HONEYCOMB) {
- signAfter.setEditable(false);
+ signAfter.setWaxed(true);
consumer.queueBlockReplace(Actor.actorFromEntity(player), signBefore, signAfter);
} else if (BukkitUtils.isDye(itemType) && hasText(signSideBefore)) {
DyeColor newColor = BukkitUtils.dyeToDyeColor(itemType);
diff --git a/src/main/java/de/diddiz/LogBlock/util/Reflections.java b/src/main/java/de/diddiz/LogBlock/util/Reflections.java
deleted file mode 100644
index 83f820d..0000000
--- a/src/main/java/de/diddiz/LogBlock/util/Reflections.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package de.diddiz.LogBlock.util;
-
-import de.diddiz.LogBlock.LogBlock;
-import java.lang.reflect.Field;
-import java.util.logging.Level;
-import org.bukkit.block.Sign;
-
-public class Reflections {
- private static Field FIELD_CraftBlockEntityState_snapshot;
- private static Field FIELD_SignBlockEntity_isWaxed;
-
- public static boolean isSignWaxed(Sign sign) {
- try {
- if (FIELD_CraftBlockEntityState_snapshot == null) {
- Class> superClass = sign.getClass().getSuperclass();
- while (superClass != null) {
- try {
- FIELD_CraftBlockEntityState_snapshot = superClass.getDeclaredField("snapshot");
- FIELD_CraftBlockEntityState_snapshot.setAccessible(true);
- break;
- } catch (NoSuchFieldException ignored) {
- }
- superClass = superClass.getSuperclass();
- }
- }
- if (FIELD_CraftBlockEntityState_snapshot == null) {
- LogBlock.getInstance().getLogger().log(Level.SEVERE, "Reflections: Sign field 'snapshot' not found");
- return false;
- }
- Object snapshot = FIELD_CraftBlockEntityState_snapshot.get(sign);
- if (snapshot == null) {
- LogBlock.getInstance().getLogger().log(Level.SEVERE, "Reflections: Sign snapshot is null?");
- return false;
- }
- if (FIELD_SignBlockEntity_isWaxed == null) {
- Class> snapshotClass = snapshot.getClass();
- while (snapshotClass != null) {
- for (Field f : snapshotClass.getDeclaredFields()) {
- if (f.getType() == boolean.class) {
- FIELD_SignBlockEntity_isWaxed = f;
- FIELD_SignBlockEntity_isWaxed.setAccessible(true);
- break;
- }
- }
- if (FIELD_SignBlockEntity_isWaxed != null) {
- break;
- }
- snapshotClass = snapshotClass.getSuperclass();
- }
- }
- if (FIELD_SignBlockEntity_isWaxed == null) {
- LogBlock.getInstance().getLogger().log(Level.SEVERE, "Reflections: Sign field 'isWaxed' not found");
- return false;
- }
- return FIELD_SignBlockEntity_isWaxed.getBoolean(snapshot);
- } catch (SecurityException | IllegalArgumentException | IllegalAccessException e) {
- LogBlock.getInstance().getLogger().log(Level.SEVERE, "Reflections: Sign.isWaxed reflection failed", e);
- }
- return false;
- }
-}