From cc6cac939f2ef572b35b1db86d5de073de0d70c4 Mon Sep 17 00:00:00 2001 From: erikradovan Date: Mon, 13 Apr 2026 11:14:06 +0200 Subject: [PATCH] Few small fixes of the mine world. --- .../ecoCraftCore/database/objects/Island.java | 15 +++++++++++++++ .../ecoCraftCore/mines/MineWorldManager.java | 6 ++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/xyz/soukup/ecoCraftCore/database/objects/Island.java b/src/main/java/xyz/soukup/ecoCraftCore/database/objects/Island.java index 0d10702..18647b6 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/database/objects/Island.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/database/objects/Island.java @@ -109,10 +109,25 @@ public class Island { } } + public static Island findByUuid(String uuid) { + try { + return DaoRegistry.getIslandDao().queryBuilder().where().eq("uuid", uuid).queryForFirst(); + } catch (SQLException e) { + return null; + } + } + public void save(){ try { + // createOrUpdate works by primary id; resolve id from uuid first to avoid duplicate inserts. + if (this.id <= 0 && this.uuid != null) { + Island existing = findByUuid(this.uuid); + if (existing != null) { + this.id = existing.id; + } + } DaoRegistry.getIslandDao().createOrUpdate(this); } catch (SQLException e) { throw new RuntimeException(e); diff --git a/src/main/java/xyz/soukup/ecoCraftCore/mines/MineWorldManager.java b/src/main/java/xyz/soukup/ecoCraftCore/mines/MineWorldManager.java index f2d5a94..5419c41 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/mines/MineWorldManager.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/mines/MineWorldManager.java @@ -107,10 +107,8 @@ public class MineWorldManager implements Listener { Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { try { - if (loader.worldExists(MINE_WORLD_NAME)) { - loader.deleteWorld(MINE_WORLD_NAME); - plugin.getLogger().info("[MineWorld] Old mine world deleted."); - } + loader.deleteWorld(MINE_WORLD_NAME); + plugin.getLogger().info("[MineWorld] Old mine world metadata deleted."); SlimePropertyMap properties = new SlimePropertyMap(); properties.setValue(SlimeProperties.ENVIRONMENT, "NORMAL");