From 44e5060c6a57b203cade9be437003d6677394019 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Mon, 12 Feb 2024 21:17:13 +0100 Subject: [PATCH] Add missing link and item deletion when removing hoppers --- .../craftaro/epichoppers/listeners/BlockListeners.java | 3 +++ .../java/com/craftaro/epichoppers/utils/DataHelper.java | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/listeners/BlockListeners.java b/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/listeners/BlockListeners.java index 589c89c..2b56f54 100644 --- a/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/listeners/BlockListeners.java +++ b/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/listeners/BlockListeners.java @@ -10,6 +10,7 @@ import com.craftaro.epichoppers.hopper.HopperImpl; import com.craftaro.epichoppers.hopper.HopperBuilder; import com.craftaro.epichoppers.hopper.levels.Level; import com.craftaro.epichoppers.settings.Settings; +import com.craftaro.epichoppers.utils.DataHelper; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.Material; @@ -175,6 +176,8 @@ public class BlockListeners implements Listener { this.plugin.getHopperManager().removeHopper(block.getLocation()); this.plugin.getDataManager().delete(hopper); + DataHelper.deleteLinks(hopper); + DataHelper.deleteItems(hopper); this.plugin.getPlayerDataManager().getPlayerData(player).setSyncType(null); } diff --git a/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/utils/DataHelper.java b/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/utils/DataHelper.java index 5bf60b5..38ee062 100644 --- a/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/utils/DataHelper.java +++ b/EpicHoppers-Plugin/src/main/java/com/craftaro/epichoppers/utils/DataHelper.java @@ -104,4 +104,12 @@ public class DataHelper { .execute(); }); } + + public static void deleteItems(HopperImpl hopper) { + EpicHoppers.getPlugin(EpicHoppers.class).getDataManager().getDatabaseConnector().connectDSL(dslContext -> { + dslContext.deleteFrom(DSL.table(EpicHoppers.getPlugin(EpicHoppers.class).getDataManager().getTablePrefix() + "items")) + .where(DSL.field("hopper_id").eq(hopper.getId())) + .execute(); + }); + } }