diff --git a/.gitignore b/.gitignore
index 2d5b113..57b91f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,7 +53,8 @@ nbproject
target
dependency-reduced-pom.xml
-test/
+src/test
+maven_output.txt
# Wrapper files
mvnw
diff --git a/pom.xml b/pom.xml
index 7d4a060..ceb556b 100755
--- a/pom.xml
+++ b/pom.xml
@@ -229,5 +229,17 @@
3.133.2
test
+
+ org.xerial
+ sqlite-jdbc
+ 3.45.1.0
+ test
+
+
+ org.slf4j
+ slf4j-simple
+ 2.0.12
+ test
+
\ No newline at end of file
diff --git a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java
index 2928bcc..6b178c0 100644
--- a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java
+++ b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java
@@ -31,7 +31,6 @@ import org.bukkit.potion.PotionType;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.utility.BlockUtils;
-import net.coreprotect.utility.Util;
public class BukkitAdapter implements BukkitInterface {
diff --git a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_17.java b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_17.java
index 6c07ed5..970f2a9 100644
--- a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_17.java
+++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_17.java
@@ -28,7 +28,7 @@ import net.coreprotect.model.BlockGroup;
import net.coreprotect.utility.ItemUtils;
import net.coreprotect.utility.MaterialUtils;
-public class Bukkit_v1_17 extends BukkitAdapter implements BukkitInterface {
+public class Bukkit_v1_17 extends BukkitAdapter {
public Bukkit_v1_17() {
BlockGroup.TRACK_ANY = new HashSet<>(Arrays.asList(Material.PISTON_HEAD, Material.LEVER, Material.BELL, Material.SMALL_AMETHYST_BUD, Material.MEDIUM_AMETHYST_BUD, Material.LARGE_AMETHYST_BUD, Material.AMETHYST_CLUSTER, Material.GLOW_LICHEN));
diff --git a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_18.java b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_18.java
index abeb37e..2238edf 100644
--- a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_18.java
+++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_18.java
@@ -3,7 +3,7 @@ package net.coreprotect.bukkit;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
-public class Bukkit_v1_18 extends Bukkit_v1_17 implements BukkitInterface {
+public class Bukkit_v1_18 extends Bukkit_v1_17 {
private Boolean hasAdjust = null;
diff --git a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_19.java b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_19.java
index 32a2108..5414f9f 100644
--- a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_19.java
+++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_19.java
@@ -13,7 +13,7 @@ import org.bukkit.entity.Tadpole;
import net.coreprotect.model.BlockGroup;
-public class Bukkit_v1_19 extends Bukkit_v1_18 implements BukkitInterface {
+public class Bukkit_v1_19 extends Bukkit_v1_18 {
public Bukkit_v1_19() {
BlockGroup.TRACK_TOP = new HashSet<>(Arrays.asList(Material.TORCH, Material.REDSTONE_TORCH, Material.BAMBOO, Material.BAMBOO_SAPLING, Material.CORNFLOWER, Material.LILY_OF_THE_VALLEY, Material.WITHER_ROSE, Material.SWEET_BERRY_BUSH, Material.SCAFFOLDING, Material.OAK_SAPLING, Material.SPRUCE_SAPLING, Material.BIRCH_SAPLING, Material.JUNGLE_SAPLING, Material.MANGROVE_PROPAGULE, Material.ACACIA_SAPLING, Material.DARK_OAK_SAPLING, Material.POWERED_RAIL, Material.DETECTOR_RAIL, Material.FERN, Material.DEAD_BUSH, Material.DANDELION, Material.POPPY, Material.BLUE_ORCHID, Material.ALLIUM, Material.AZURE_BLUET, Material.RED_TULIP, Material.ORANGE_TULIP, Material.WHITE_TULIP, Material.PINK_TULIP, Material.OXEYE_DAISY, Material.BROWN_MUSHROOM, Material.RED_MUSHROOM, Material.REDSTONE_WIRE, Material.WHEAT, Material.MANGROVE_SIGN, Material.ACACIA_SIGN, Material.BIRCH_SIGN, Material.DARK_OAK_SIGN, Material.JUNGLE_SIGN, Material.OAK_SIGN, Material.SPRUCE_SIGN, Material.WHITE_BANNER, Material.ORANGE_BANNER, Material.MAGENTA_BANNER, Material.LIGHT_BLUE_BANNER, Material.YELLOW_BANNER, Material.LIME_BANNER, Material.PINK_BANNER, Material.GRAY_BANNER, Material.LIGHT_GRAY_BANNER, Material.CYAN_BANNER, Material.PURPLE_BANNER, Material.BLUE_BANNER, Material.BROWN_BANNER, Material.GREEN_BANNER, Material.RED_BANNER, Material.BLACK_BANNER, Material.RAIL, Material.IRON_DOOR, Material.SNOW, Material.CACTUS, Material.SUGAR_CANE, Material.REPEATER, Material.PUMPKIN_STEM, Material.MELON_STEM, Material.CARROT, Material.POTATO, Material.COMPARATOR, Material.ACTIVATOR_RAIL, Material.SUNFLOWER, Material.LILAC, Material.TALL_GRASS, Material.LARGE_FERN, Material.ROSE_BUSH, Material.PEONY, Material.NETHER_WART, Material.CHORUS_PLANT, Material.CHORUS_FLOWER, Material.KELP, Material.SOUL_TORCH, Material.TWISTING_VINES, Material.CRIMSON_FUNGUS, Material.WARPED_FUNGUS, Material.CRIMSON_ROOTS, Material.WARPED_ROOTS, Material.NETHER_SPROUTS, Material.CRIMSON_SIGN, Material.WARPED_SIGN, Material.AZALEA, Material.FLOWERING_AZALEA, Material.SMALL_DRIPLEAF, Material.BIG_DRIPLEAF));
diff --git a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java
index 1684b28..12e4c28 100644
--- a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java
+++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java
@@ -21,7 +21,7 @@ import org.bukkit.potion.PotionType;
import net.coreprotect.model.BlockGroup;
-public class Bukkit_v1_20 extends Bukkit_v1_19 implements BukkitInterface {
+public class Bukkit_v1_20 extends Bukkit_v1_19 {
private Boolean hasClickedPosition = null;
private Boolean hasBasePotionType = null;
diff --git a/src/main/java/net/coreprotect/config/Config.java b/src/main/java/net/coreprotect/config/Config.java
index 1ab9fb2..c614a9a 100644
--- a/src/main/java/net/coreprotect/config/Config.java
+++ b/src/main/java/net/coreprotect/config/Config.java
@@ -12,7 +12,6 @@ import java.nio.file.Files;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.WeakHashMap;
import java.util.concurrent.CompletableFuture;
import org.bukkit.Bukkit;
diff --git a/src/main/java/net/coreprotect/database/ContainerRollback.java b/src/main/java/net/coreprotect/database/ContainerRollback.java
index c4b3342..5e841a1 100644
--- a/src/main/java/net/coreprotect/database/ContainerRollback.java
+++ b/src/main/java/net/coreprotect/database/ContainerRollback.java
@@ -30,7 +30,6 @@ import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.Chat;
import net.coreprotect.utility.ItemUtils;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
public class ContainerRollback extends Rollback {
diff --git a/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java b/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java
index c254743..dccecc7 100644
--- a/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java
@@ -16,7 +16,6 @@ import net.coreprotect.database.statement.BlockStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class BlockBreakLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java b/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java
index 937cb08..32487a7 100644
--- a/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java
@@ -16,9 +16,7 @@ import net.coreprotect.database.statement.BlockStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class BlockPlaceLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/ChatLogger.java b/src/main/java/net/coreprotect/database/logger/ChatLogger.java
index c06356b..b14e288 100644
--- a/src/main/java/net/coreprotect/database/logger/ChatLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/ChatLogger.java
@@ -7,7 +7,6 @@ import org.bukkit.Location;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.statement.ChatStatement;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class ChatLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/CommandLogger.java b/src/main/java/net/coreprotect/database/logger/CommandLogger.java
index e298a69..5647184 100644
--- a/src/main/java/net/coreprotect/database/logger/CommandLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/CommandLogger.java
@@ -12,7 +12,6 @@ import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.statement.CommandStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class CommandLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/ContainerBreakLogger.java b/src/main/java/net/coreprotect/database/logger/ContainerBreakLogger.java
index b4f7b2d..9f1e923 100644
--- a/src/main/java/net/coreprotect/database/logger/ContainerBreakLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/ContainerBreakLogger.java
@@ -9,7 +9,6 @@ import org.bukkit.inventory.ItemStack;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public class ContainerBreakLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/ContainerLogger.java b/src/main/java/net/coreprotect/database/logger/ContainerLogger.java
index f74cbd5..4c81be7 100644
--- a/src/main/java/net/coreprotect/database/logger/ContainerLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/ContainerLogger.java
@@ -24,7 +24,6 @@ import net.coreprotect.event.CoreProtectPreLogEvent;
import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.ItemUtils;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
import net.coreprotect.utility.serialize.ItemMetaHandler;
diff --git a/src/main/java/net/coreprotect/database/logger/EntityKillLogger.java b/src/main/java/net/coreprotect/database/logger/EntityKillLogger.java
index b95dc54..f8ddcdb 100644
--- a/src/main/java/net/coreprotect/database/logger/EntityKillLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/EntityKillLogger.java
@@ -16,7 +16,6 @@ import net.coreprotect.database.statement.BlockStatement;
import net.coreprotect.database.statement.EntityStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class EntityKillLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/ItemLogger.java b/src/main/java/net/coreprotect/database/logger/ItemLogger.java
index e68b2a5..c7c38e9 100644
--- a/src/main/java/net/coreprotect/database/logger/ItemLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/ItemLogger.java
@@ -19,7 +19,6 @@ import net.coreprotect.event.CoreProtectPreLogEvent;
import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.ItemUtils;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
import net.coreprotect.utility.serialize.ItemMetaHandler;
diff --git a/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java b/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java
index 5138c0c..3a5e502 100644
--- a/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java
@@ -13,9 +13,7 @@ import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.statement.BlockStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
-import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class PlayerInteractLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/PlayerKillLogger.java b/src/main/java/net/coreprotect/database/logger/PlayerKillLogger.java
index 755d61b..d476055 100644
--- a/src/main/java/net/coreprotect/database/logger/PlayerKillLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/PlayerKillLogger.java
@@ -12,7 +12,6 @@ import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.statement.BlockStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class PlayerKillLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/PlayerSessionLogger.java b/src/main/java/net/coreprotect/database/logger/PlayerSessionLogger.java
index 42105de..b10fd17 100644
--- a/src/main/java/net/coreprotect/database/logger/PlayerSessionLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/PlayerSessionLogger.java
@@ -7,7 +7,6 @@ import org.bukkit.Location;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.statement.SessionStatement;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class PlayerSessionLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/SignTextLogger.java b/src/main/java/net/coreprotect/database/logger/SignTextLogger.java
index 4bc8a08..1da6038 100644
--- a/src/main/java/net/coreprotect/database/logger/SignTextLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/SignTextLogger.java
@@ -12,7 +12,6 @@ import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.statement.SignStatement;
import net.coreprotect.database.statement.UserStatement;
import net.coreprotect.event.CoreProtectPreLogEvent;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class SignTextLogger {
diff --git a/src/main/java/net/coreprotect/database/logger/SkullBreakLogger.java b/src/main/java/net/coreprotect/database/logger/SkullBreakLogger.java
index fd3be61..0cfb319 100644
--- a/src/main/java/net/coreprotect/database/logger/SkullBreakLogger.java
+++ b/src/main/java/net/coreprotect/database/logger/SkullBreakLogger.java
@@ -12,7 +12,6 @@ import net.coreprotect.database.Database;
import net.coreprotect.database.statement.SkullStatement;
import net.coreprotect.paper.PaperAdapter;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
public class SkullBreakLogger {
diff --git a/src/main/java/net/coreprotect/database/lookup/ChestTransactionLookup.java b/src/main/java/net/coreprotect/database/lookup/ChestTransactionLookup.java
index 58e8f4f..f4dd1f2 100644
--- a/src/main/java/net/coreprotect/database/lookup/ChestTransactionLookup.java
+++ b/src/main/java/net/coreprotect/database/lookup/ChestTransactionLookup.java
@@ -20,7 +20,6 @@ import net.coreprotect.utility.Color;
import net.coreprotect.utility.ItemUtils;
import net.coreprotect.utility.MaterialUtils;
import net.coreprotect.utility.StringUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class ChestTransactionLookup {
diff --git a/src/main/java/net/coreprotect/database/lookup/InteractionLookup.java b/src/main/java/net/coreprotect/database/lookup/InteractionLookup.java
index 152a5cc..bd0d6aa 100644
--- a/src/main/java/net/coreprotect/database/lookup/InteractionLookup.java
+++ b/src/main/java/net/coreprotect/database/lookup/InteractionLookup.java
@@ -17,7 +17,6 @@ import net.coreprotect.utility.ChatUtils;
import net.coreprotect.utility.Color;
import net.coreprotect.utility.MaterialUtils;
import net.coreprotect.utility.StringUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class InteractionLookup {
diff --git a/src/main/java/net/coreprotect/database/lookup/SignMessageLookup.java b/src/main/java/net/coreprotect/database/lookup/SignMessageLookup.java
index 98873a6..fc3a36c 100644
--- a/src/main/java/net/coreprotect/database/lookup/SignMessageLookup.java
+++ b/src/main/java/net/coreprotect/database/lookup/SignMessageLookup.java
@@ -17,7 +17,6 @@ import net.coreprotect.language.Selector;
import net.coreprotect.listener.channel.PluginChannelListener;
import net.coreprotect.utility.ChatUtils;
import net.coreprotect.utility.Color;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class SignMessageLookup {
diff --git a/src/main/java/net/coreprotect/database/statement/BlockStatement.java b/src/main/java/net/coreprotect/database/statement/BlockStatement.java
index 9c1e820..f4413db 100644
--- a/src/main/java/net/coreprotect/database/statement/BlockStatement.java
+++ b/src/main/java/net/coreprotect/database/statement/BlockStatement.java
@@ -3,7 +3,6 @@ package net.coreprotect.database.statement;
import java.sql.PreparedStatement;
import java.util.List;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.ItemUtils;
diff --git a/src/main/java/net/coreprotect/database/statement/ContainerStatement.java b/src/main/java/net/coreprotect/database/statement/ContainerStatement.java
index ba97823..d8ed690 100644
--- a/src/main/java/net/coreprotect/database/statement/ContainerStatement.java
+++ b/src/main/java/net/coreprotect/database/statement/ContainerStatement.java
@@ -3,7 +3,6 @@ package net.coreprotect.database.statement;
import java.sql.PreparedStatement;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public class ContainerStatement {
diff --git a/src/main/java/net/coreprotect/database/statement/ItemStatement.java b/src/main/java/net/coreprotect/database/statement/ItemStatement.java
index 9ec86c2..5c71a73 100644
--- a/src/main/java/net/coreprotect/database/statement/ItemStatement.java
+++ b/src/main/java/net/coreprotect/database/statement/ItemStatement.java
@@ -3,7 +3,6 @@ package net.coreprotect.database.statement;
import java.sql.PreparedStatement;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public class ItemStatement {
diff --git a/src/main/java/net/coreprotect/language/Phrase.java b/src/main/java/net/coreprotect/language/Phrase.java
index 2729452..ced1750 100644
--- a/src/main/java/net/coreprotect/language/Phrase.java
+++ b/src/main/java/net/coreprotect/language/Phrase.java
@@ -9,7 +9,6 @@ import java.util.regex.Pattern;
import net.coreprotect.utility.ChatMessage;
import net.coreprotect.utility.Color;
import net.coreprotect.utility.StringUtils;
-import net.coreprotect.utility.Util;
public enum Phrase {
diff --git a/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java b/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java
index 629de4d..0734770 100644
--- a/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java
+++ b/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java
@@ -39,7 +39,6 @@ import net.coreprotect.database.Database;
import net.coreprotect.model.BlockGroup;
import net.coreprotect.paper.PaperAdapter;
import net.coreprotect.utility.BlockUtils;
-import net.coreprotect.utility.Util;
public final class BlockBreakListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/block/BlockFormListener.java b/src/main/java/net/coreprotect/listener/block/BlockFormListener.java
index e33c730..8bf4686 100644
--- a/src/main/java/net/coreprotect/listener/block/BlockFormListener.java
+++ b/src/main/java/net/coreprotect/listener/block/BlockFormListener.java
@@ -13,7 +13,6 @@ import net.coreprotect.config.Config;
import net.coreprotect.consumer.Queue;
import net.coreprotect.database.Lookup;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class BlockFormListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/block/BlockFromToListener.java b/src/main/java/net/coreprotect/listener/block/BlockFromToListener.java
index 84b3202..9d39f07 100644
--- a/src/main/java/net/coreprotect/listener/block/BlockFromToListener.java
+++ b/src/main/java/net/coreprotect/listener/block/BlockFromToListener.java
@@ -17,7 +17,6 @@ import net.coreprotect.config.Config;
import net.coreprotect.consumer.Queue;
import net.coreprotect.database.Lookup;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class BlockFromToListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/block/BlockIgniteListener.java b/src/main/java/net/coreprotect/listener/block/BlockIgniteListener.java
index 5453b80..ddf471f 100644
--- a/src/main/java/net/coreprotect/listener/block/BlockIgniteListener.java
+++ b/src/main/java/net/coreprotect/listener/block/BlockIgniteListener.java
@@ -23,7 +23,6 @@ import net.coreprotect.database.logger.ItemLogger;
import net.coreprotect.listener.player.ProjectileLaunchListener;
import net.coreprotect.model.BlockGroup;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class BlockIgniteListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/block/BlockPistonListener.java b/src/main/java/net/coreprotect/listener/block/BlockPistonListener.java
index 58ade69..bcc7a35 100644
--- a/src/main/java/net/coreprotect/listener/block/BlockPistonListener.java
+++ b/src/main/java/net/coreprotect/listener/block/BlockPistonListener.java
@@ -18,7 +18,6 @@ import org.bukkit.event.block.BlockPistonRetractEvent;
import net.coreprotect.config.Config;
import net.coreprotect.consumer.Queue;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class BlockPistonListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/block/BlockUtil.java b/src/main/java/net/coreprotect/listener/block/BlockUtil.java
index 78065d8..09c0145 100644
--- a/src/main/java/net/coreprotect/listener/block/BlockUtil.java
+++ b/src/main/java/net/coreprotect/listener/block/BlockUtil.java
@@ -9,7 +9,6 @@ import org.bukkit.entity.Player;
import net.coreprotect.bukkit.BukkitAdapter;
import net.coreprotect.model.BlockGroup;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class BlockUtil {
diff --git a/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java b/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java
index 36e3ec5..9365d14 100644
--- a/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java
+++ b/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java
@@ -11,7 +11,6 @@ import org.bukkit.inventory.ItemStack;
import net.coreprotect.consumer.Queue;
import net.coreprotect.listener.player.PlayerDropItemListener;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class CampfireStartListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/channel/PluginChannelListener.java b/src/main/java/net/coreprotect/listener/channel/PluginChannelListener.java
index 91025c7..43db26f 100644
--- a/src/main/java/net/coreprotect/listener/channel/PluginChannelListener.java
+++ b/src/main/java/net/coreprotect/listener/channel/PluginChannelListener.java
@@ -15,7 +15,6 @@ import net.coreprotect.language.Phrase;
import net.coreprotect.language.Selector;
import net.coreprotect.utility.Chat;
import net.coreprotect.utility.Color;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class PluginChannelListener implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/entity/CreatureSpawnListener.java b/src/main/java/net/coreprotect/listener/entity/CreatureSpawnListener.java
index e094bfa..645da4c 100644
--- a/src/main/java/net/coreprotect/listener/entity/CreatureSpawnListener.java
+++ b/src/main/java/net/coreprotect/listener/entity/CreatureSpawnListener.java
@@ -19,7 +19,6 @@ import net.coreprotect.config.ConfigHandler;
import net.coreprotect.consumer.Queue;
import net.coreprotect.listener.block.BlockUtil;
import net.coreprotect.utility.EntityUtils;
-import net.coreprotect.utility.Util;
public final class CreatureSpawnListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/entity/EntityDamageByEntityListener.java b/src/main/java/net/coreprotect/listener/entity/EntityDamageByEntityListener.java
index c57637e..55d4f29 100644
--- a/src/main/java/net/coreprotect/listener/entity/EntityDamageByEntityListener.java
+++ b/src/main/java/net/coreprotect/listener/entity/EntityDamageByEntityListener.java
@@ -36,7 +36,6 @@ import net.coreprotect.database.Database;
import net.coreprotect.listener.player.PlayerInteractEntityListener;
import net.coreprotect.thread.Scheduler;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public final class EntityDamageByEntityListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/player/ArmorStandManipulateListener.java b/src/main/java/net/coreprotect/listener/player/ArmorStandManipulateListener.java
index 660eb1b..242cc2f 100644
--- a/src/main/java/net/coreprotect/listener/player/ArmorStandManipulateListener.java
+++ b/src/main/java/net/coreprotect/listener/player/ArmorStandManipulateListener.java
@@ -25,7 +25,6 @@ import net.coreprotect.model.BlockGroup;
import net.coreprotect.utility.Chat;
import net.coreprotect.utility.Color;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public final class ArmorStandManipulateListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/player/FoodLevelChangeListener.java b/src/main/java/net/coreprotect/listener/player/FoodLevelChangeListener.java
index c71fda8..896db44 100644
--- a/src/main/java/net/coreprotect/listener/player/FoodLevelChangeListener.java
+++ b/src/main/java/net/coreprotect/listener/player/FoodLevelChangeListener.java
@@ -15,7 +15,6 @@ import net.coreprotect.CoreProtect;
import net.coreprotect.consumer.Queue;
import net.coreprotect.thread.CacheHandler;
import net.coreprotect.thread.Scheduler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class FoodLevelChangeListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/player/HopperPullListener.java b/src/main/java/net/coreprotect/listener/player/HopperPullListener.java
index 66210ce..95674e6 100644
--- a/src/main/java/net/coreprotect/listener/player/HopperPullListener.java
+++ b/src/main/java/net/coreprotect/listener/player/HopperPullListener.java
@@ -15,7 +15,6 @@ import net.coreprotect.config.Config;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.thread.Scheduler;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public final class HopperPullListener {
diff --git a/src/main/java/net/coreprotect/listener/player/HopperPushListener.java b/src/main/java/net/coreprotect/listener/player/HopperPushListener.java
index e15bdf6..f4aefa1 100644
--- a/src/main/java/net/coreprotect/listener/player/HopperPushListener.java
+++ b/src/main/java/net/coreprotect/listener/player/HopperPushListener.java
@@ -15,7 +15,6 @@ import net.coreprotect.config.Config;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.thread.Scheduler;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public final class HopperPushListener {
diff --git a/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java b/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java
index 3a531db..f36b118 100644
--- a/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java
+++ b/src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java
@@ -25,7 +25,6 @@ import org.bukkit.inventory.BlockInventoryHolder;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.EnchantmentStorageMeta;
import net.coreprotect.CoreProtect;
import net.coreprotect.config.Config;
@@ -35,7 +34,6 @@ import net.coreprotect.model.BlockGroup;
import net.coreprotect.paper.PaperAdapter;
import net.coreprotect.thread.Scheduler;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.Validate;
import us.lynuxcraft.deadsilenceiv.advancedchests.AdvancedChestsAPI;
import us.lynuxcraft.deadsilenceiv.advancedchests.chest.AdvancedChest;
@@ -87,17 +85,20 @@ public final class InventoryChangeListener extends Queue implements Listener {
if (containerType != null) {
type = containerType;
}
- } else {
+ }
+ else {
InventoryHolder inventoryHolder = inventory.getHolder();
if (inventoryHolder == null) {
if (CoreProtect.getInstance().isAdvancedChestsEnabled()) {
AdvancedChest, ?> advancedChest = AdvancedChestsAPI.getInventoryManager().getAdvancedChest(inventory);
if (advancedChest != null) {
playerLocation = advancedChest.getLocation();
- } else {
+ }
+ else {
return false;
}
- } else {
+ }
+ else {
return false;
}
}
@@ -107,7 +108,8 @@ public final class InventoryChangeListener extends Queue implements Listener {
if (BlockGroup.CONTAINERS.contains(type)) {
playerLocation = state.getLocation();
}
- } else if (inventoryHolder instanceof DoubleChest) {
+ }
+ else if (inventoryHolder instanceof DoubleChest) {
DoubleChest state = (DoubleChest) inventoryHolder;
playerLocation = state.getLocation();
}
@@ -232,7 +234,7 @@ public final class InventoryChangeListener extends Queue implements Listener {
return;
}
if (CoreProtect.getInstance().isAdvancedChestsEnabled()) {
- AdvancedChest,?> chest = AdvancedChestsAPI.getInventoryManager().getAdvancedChest(inventory);
+ AdvancedChest, ?> chest = AdvancedChestsAPI.getInventoryManager().getAdvancedChest(inventory);
if (chest != null) {
location = chest.getLocation();
}
@@ -272,53 +274,55 @@ public final class InventoryChangeListener extends Queue implements Listener {
/**
* Checks for anvil operations to properly track enchanted item results
- * @param event The inventory click event
+ *
+ * @param event
+ * The inventory click event
* @return true if this was an anvil result operation that was handled, false otherwise
*/
private boolean checkAnvilOperation(InventoryClickEvent event) {
if (event.getInventory().getType() != InventoryType.ANVIL) {
return false;
}
-
+
// Only process result slot clicks in anvils (slot 2)
if (event.getRawSlot() != 2) {
return false;
}
-
+
// Ensure we have a valid player and item
Player player = (Player) event.getWhoClicked();
ItemStack resultItem = event.getCurrentItem();
if (resultItem == null || resultItem.getType() == Material.AIR) {
return false;
}
-
+
// Get the input items (slots 0 and 1 in the anvil)
ItemStack firstItem = event.getInventory().getItem(0);
ItemStack secondItem = event.getInventory().getItem(1);
-
+
if (firstItem == null || secondItem == null) {
return false;
}
-
+
// Process the enchantment operation
Location location = player.getLocation();
String loggingItemId = player.getName().toLowerCase(Locale.ROOT) + "." + location.getBlockX() + "." + location.getBlockY() + "." + location.getBlockZ();
int itemId = getItemId(loggingItemId);
-
+
// Log the input items as removed
List removedItems = new ArrayList<>();
removedItems.add(firstItem.clone());
removedItems.add(secondItem.clone());
ConfigHandler.itemsDestroy.put(loggingItemId, removedItems);
-
+
// Log the output item as created
List createdItems = new ArrayList<>();
createdItems.add(resultItem.clone());
ConfigHandler.itemsCreate.put(loggingItemId, createdItems);
-
+
int time = (int) (System.currentTimeMillis() / 1000L) + 1;
Queue.queueItemTransaction(player.getName(), location.clone(), time, 0, itemId);
-
+
return true;
}
@@ -328,7 +332,7 @@ public final class InventoryChangeListener extends Queue implements Listener {
if (inventoryAction == InventoryAction.NOTHING) {
return;
}
-
+
// Check if this is an anvil operation first
if (checkAnvilOperation(event)) {
return;
@@ -360,10 +364,11 @@ public final class InventoryChangeListener extends Queue implements Listener {
if ((!(inventoryHolder instanceof BlockInventoryHolder || inventoryHolder instanceof DoubleChest)) && !enderChest && !advancedChest) {
return;
}
- if(advancedChest && event.getSlot() > inventory.getSize() - 10){
+ if (advancedChest && event.getSlot() > inventory.getSize() - 10) {
return;
}
- } else {
+ }
+ else {
// Perform standard inventory holder check on primary inventory
Inventory inventory = event.getInventory();
if (inventory == null) {
@@ -376,7 +381,7 @@ public final class InventoryChangeListener extends Queue implements Listener {
if ((!(inventoryHolder instanceof BlockInventoryHolder || inventoryHolder instanceof DoubleChest)) && !enderChest && !advancedChest) {
return;
}
- if(advancedChest && event.getSlot() > inventory.getSize() - 10){
+ if (advancedChest && event.getSlot() > inventory.getSize() - 10) {
return;
}
}
diff --git a/src/main/java/net/coreprotect/listener/player/PlayerBucketEmptyListener.java b/src/main/java/net/coreprotect/listener/player/PlayerBucketEmptyListener.java
index baa01e3..f309090 100644
--- a/src/main/java/net/coreprotect/listener/player/PlayerBucketEmptyListener.java
+++ b/src/main/java/net/coreprotect/listener/player/PlayerBucketEmptyListener.java
@@ -14,7 +14,6 @@ import net.coreprotect.config.Config;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.consumer.Queue;
import net.coreprotect.thread.CacheHandler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public final class PlayerBucketEmptyListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/player/PlayerInteractEntityListener.java b/src/main/java/net/coreprotect/listener/player/PlayerInteractEntityListener.java
index eb4fdd4..1cb152a 100644
--- a/src/main/java/net/coreprotect/listener/player/PlayerInteractEntityListener.java
+++ b/src/main/java/net/coreprotect/listener/player/PlayerInteractEntityListener.java
@@ -25,7 +25,6 @@ import net.coreprotect.consumer.Queue;
import net.coreprotect.database.logger.ItemLogger;
import net.coreprotect.model.BlockGroup;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public final class PlayerInteractEntityListener extends Queue implements Listener {
diff --git a/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java b/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java
index 8f12884..a81ea08 100644
--- a/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java
+++ b/src/main/java/net/coreprotect/listener/player/ProjectileLaunchListener.java
@@ -25,7 +25,6 @@ import net.coreprotect.config.ConfigHandler;
import net.coreprotect.consumer.Queue;
import net.coreprotect.database.logger.ItemLogger;
import net.coreprotect.utility.EntityUtils;
-import net.coreprotect.utility.Util;
public final class ProjectileLaunchListener extends Queue implements Listener {
@@ -103,7 +102,7 @@ public final class ProjectileLaunchListener extends Queue implements Listener {
if (!(event.getEntity() instanceof Player)) {
return;
}
-
+
ItemStack itemStack = event.getConsumable();
playerLaunchProjectile(event.getEntity().getLocation(), event.getEntity().getName(), itemStack, 1, 1, 0, ItemLogger.ITEM_SHOOT);
}
diff --git a/src/main/java/net/coreprotect/paper/PaperHandler.java b/src/main/java/net/coreprotect/paper/PaperHandler.java
index 4516896..e1dd183 100644
--- a/src/main/java/net/coreprotect/paper/PaperHandler.java
+++ b/src/main/java/net/coreprotect/paper/PaperHandler.java
@@ -6,7 +6,7 @@ import org.bukkit.entity.Entity;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
-public class PaperHandler extends PaperAdapter implements PaperInterface {
+public class PaperHandler extends PaperAdapter {
@Override
public boolean isStopping(Server server) {
diff --git a/src/main/java/net/coreprotect/paper/Paper_v1_17.java b/src/main/java/net/coreprotect/paper/Paper_v1_17.java
index 126465d..32c0a9e 100644
--- a/src/main/java/net/coreprotect/paper/Paper_v1_17.java
+++ b/src/main/java/net/coreprotect/paper/Paper_v1_17.java
@@ -4,7 +4,7 @@ import org.bukkit.block.Sign;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
-public class Paper_v1_17 extends PaperHandler implements PaperInterface {
+public class Paper_v1_17 extends PaperHandler {
@Override
public String getLine(Sign sign, int line) {
diff --git a/src/main/java/net/coreprotect/paper/Paper_v1_20.java b/src/main/java/net/coreprotect/paper/Paper_v1_20.java
index 703ca97..a918adf 100644
--- a/src/main/java/net/coreprotect/paper/Paper_v1_20.java
+++ b/src/main/java/net/coreprotect/paper/Paper_v1_20.java
@@ -15,7 +15,7 @@ import com.destroystokyo.paper.profile.PlayerProfile;
import net.coreprotect.config.Config;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
-public class Paper_v1_20 extends Paper_v1_17 implements PaperInterface {
+public class Paper_v1_20 extends Paper_v1_17 {
@Override
public String getLine(Sign sign, int line) {
diff --git a/src/main/java/net/coreprotect/patch/script/__2_18_0.java b/src/main/java/net/coreprotect/patch/script/__2_18_0.java
index f297e8d..51a6c63 100644
--- a/src/main/java/net/coreprotect/patch/script/__2_18_0.java
+++ b/src/main/java/net/coreprotect/patch/script/__2_18_0.java
@@ -15,7 +15,6 @@ import net.coreprotect.config.Config;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.database.Database;
import net.coreprotect.patch.Patch;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.BlockUtils;
import net.coreprotect.utility.MaterialUtils;
diff --git a/src/main/java/net/coreprotect/patch/script/__2_19_0.java b/src/main/java/net/coreprotect/patch/script/__2_19_0.java
index 32700d6..f47b3e6 100644
--- a/src/main/java/net/coreprotect/patch/script/__2_19_0.java
+++ b/src/main/java/net/coreprotect/patch/script/__2_19_0.java
@@ -17,7 +17,6 @@ import net.coreprotect.language.Selector;
import net.coreprotect.patch.Patch;
import net.coreprotect.utility.Chat;
import net.coreprotect.utility.MaterialUtils;
-import net.coreprotect.utility.Util;
public class __2_19_0 {
diff --git a/src/main/java/net/coreprotect/utility/entity/EntityUtil.java b/src/main/java/net/coreprotect/utility/entity/EntityUtil.java
index 8d50b43..3a4da22 100644
--- a/src/main/java/net/coreprotect/utility/entity/EntityUtil.java
+++ b/src/main/java/net/coreprotect/utility/entity/EntityUtil.java
@@ -62,7 +62,6 @@ import net.coreprotect.bukkit.BukkitAdapter;
import net.coreprotect.database.rollback.Rollback;
import net.coreprotect.thread.CacheHandler;
import net.coreprotect.thread.Scheduler;
-import net.coreprotect.utility.Util;
import net.coreprotect.utility.WorldUtils;
public class EntityUtil {
diff --git a/src/main/java/net/coreprotect/worldedit/CoreProtectLogger.java b/src/main/java/net/coreprotect/worldedit/CoreProtectLogger.java
index 364e2ed..1cab14d 100755
--- a/src/main/java/net/coreprotect/worldedit/CoreProtectLogger.java
+++ b/src/main/java/net/coreprotect/worldedit/CoreProtectLogger.java
@@ -21,7 +21,6 @@ import com.sk89q.worldedit.world.block.BlockStateHolder;
import net.coreprotect.config.Config;
import net.coreprotect.utility.ItemUtils;
-import net.coreprotect.utility.Util;
public class CoreProtectLogger extends AbstractDelegateExtent {
private final Actor eventActor;