From 8c7bd8332603b69e4643c4589fd5582de4d455c5 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Wed, 28 Jan 2026 14:31:45 +0100 Subject: [PATCH 1/2] Restrict ayweniter perk to their city & unclaimed chunks --- .../fr/openmc/core/features/city/CityManager.java | 11 +++++++++++ .../city/sub/mayor/perks/basic/AyweniterPerk.java | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/openmc/core/features/city/CityManager.java b/src/main/java/fr/openmc/core/features/city/CityManager.java index b05618bc4..43c898660 100644 --- a/src/main/java/fr/openmc/core/features/city/CityManager.java +++ b/src/main/java/fr/openmc/core/features/city/CityManager.java @@ -314,6 +314,17 @@ public static List getAllCityUUIDs() { public static boolean isChunkClaimed(int x, int z) { return getCityFromChunk(x, z) != null; } + + + /** + * Check if a chunk is claimed + * + * @param chunk The chunk + * @return true if the chunk is claimed, false otherwise + */ + public static boolean isChunkClaimed(Chunk chunk) { + return getCityFromChunk(chunk) != null; + } /** * Check if a chunk is claimed in radius diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java index 5b23f0e91..8979bf51c 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java @@ -35,8 +35,12 @@ public void onBlockBreak(BlockBreakEvent event) { City playerCity = CityManager.getPlayerCity(player.getUniqueId()); if (playerCity == null) return; + + City blockCity = CityManager.getCityFromChunk(block.getChunk()); + if (blockCity != null) + if (blockCity != playerCity) return; - if (MayorManager.phaseMayor==2) { + if (MayorManager.phaseMayor == 2) { if (!PerkManager.hasPerk(playerCity.getMayor(), Perks.AYWENITER.getId())) return; if (block.getType() == Material.STONE) { From d77b8b8bcf8533633d59dc66cb7010089a660e5a Mon Sep 17 00:00:00 2001 From: gab4000 Date: Wed, 28 Jan 2026 14:35:33 +0100 Subject: [PATCH 2/2] Up drop chance verification to optimize process --- .../city/sub/mayor/perks/basic/AyweniterPerk.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java index 8979bf51c..029b54e3d 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java @@ -29,6 +29,8 @@ public class AyweniterPerk implements Listener { @EventHandler(ignoreCancelled = true) public void onBlockBreak(BlockBreakEvent event) { + if (random.nextDouble() >= DROP_CHANCE) return; + Block block = event.getBlock(); if (DreamUtils.isDreamWorld(block.getWorld())) return; Player player = event.getPlayer(); @@ -44,14 +46,11 @@ public void onBlockBreak(BlockBreakEvent event) { if (!PerkManager.hasPerk(playerCity.getMayor(), Perks.AYWENITER.getId())) return; if (block.getType() == Material.STONE) { - - if (random.nextDouble() < DROP_CHANCE) { - ItemStack ayweniteItem = CustomItemRegistry.getByName("omc_items:aywenite").getBest(); - ayweniteItem.setAmount(2); - player.getInventory().addItem(ayweniteItem); - player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 10.0F, 0.6F); - MessagesManager.sendMessage(player, Component.text("§8§o*la bénédiction!*"), Prefix.MAYOR, MessageType.INFO, false); - } + ItemStack ayweniteItem = CustomItemRegistry.getByName("omc_items:aywenite").getBest(); + ayweniteItem.setAmount(2); + player.getInventory().addItem(ayweniteItem); + player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 10.0F, 0.6F); + MessagesManager.sendMessage(player, Component.text("§8§o*la bénédiction!*"), Prefix.MAYOR, MessageType.INFO, false); } } }