From 48a47be17daa1aaff2ffa99c545ead7078cfd8ac Mon Sep 17 00:00:00 2001 From: dordsor21 Date: Wed, 31 Dec 2025 16:17:24 +0000 Subject: [PATCH] Adjust to always check econ before merge --- .../com/plotsquared/core/command/Merge.java | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/command/Merge.java b/Core/src/main/java/com/plotsquared/core/command/Merge.java index 8169999ed..447f3c841 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Merge.java +++ b/Core/src/main/java/com/plotsquared/core/command/Merge.java @@ -157,14 +157,26 @@ public class Merge extends SubCommand { UUID uuid = player.getUUID(); - if (!force && !plot.isOwner(uuid)) { - if (!player.hasPermission(Permission.PERMISSION_ADMIN_COMMAND_MERGE)) { - player.sendMessage(TranslatableCaption.of("permission.no_plot_perms")); + if (!force) { + if (!plot.isOwner(uuid)) { + if (!player.hasPermission(Permission.PERMISSION_ADMIN_COMMAND_MERGE)) { + player.sendMessage(TranslatableCaption.of("permission.no_plot_perms")); + return false; + } else { + uuid = plot.getOwnerAbs(); + } + } + + if (this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d && this.econHandler.getMoney( + player) < price) { + player.sendMessage( + TranslatableCaption.of("economy.cannot_afford_merge"), + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) + ); return false; - } else { - uuid = plot.getOwnerAbs(); } } + if (direction == Direction.ALL) { boolean terrain = true; if (args.length == 2) { @@ -181,17 +193,15 @@ public class Merge extends SubCommand { return true; } if (plot.getPlotModificationManager().autoMerge(Direction.ALL, maxSize, uuid, player, terrain)) { - if (this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d) { - this.econHandler.withdrawMoney(player, price); - player.sendMessage( - TranslatableCaption.of("economy.removed_balance"), - TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))), - TagResolver.resolver( - "balance", - Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney(player)))) - ) - ); - } + this.econHandler.withdrawMoney(player, price); + player.sendMessage( + TranslatableCaption.of("economy.removed_balance"), + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))), + TagResolver.resolver( + "balance", + Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney(player)))) + ) + ); player.sendMessage(TranslatableCaption.of("merge.success_merge")); eventDispatcher.callPostMerge(player, plot); return true; @@ -199,14 +209,6 @@ public class Merge extends SubCommand { player.sendMessage(TranslatableCaption.of("merge.no_available_automerge")); return false; } - if (!force && this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d && this.econHandler.getMoney( - player) < price) { - player.sendMessage( - TranslatableCaption.of("economy.cannot_afford_merge"), - TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) - ); - return false; - } final boolean terrain; if (args.length == 2) { terrain = "true".equalsIgnoreCase(args[1]);