From 59d3a2642d146d6ab8417f3324c5b71b11077ceb Mon Sep 17 00:00:00 2001 From: zavdav <157126752+zavdav@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:12:01 +0100 Subject: [PATCH] Take needed balance for /setwarp from village and allow refunding of deleted warps --- .../commands/village/JDelWarpCommand.java | 3 +++ .../commands/village/JSetWarpCommand.java | 25 ++++--------------- .../beta/config/JVillageSettings.java | 3 +++ 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JDelWarpCommand.java b/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JDelWarpCommand.java index 7c623bf..892ef07 100644 --- a/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JDelWarpCommand.java +++ b/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JDelWarpCommand.java @@ -57,6 +57,9 @@ public boolean onCommand(CommandSender commandSender, Command command, String s, return true; } + if (settings.getConfigBoolean("settings.warp.refund-deleted.enabled")) { + village.addBalance(settings.getConfigDouble("settings.warp.price.amount")); + } village.removeWarp(warpName); village.broadcastToTown(language.getMessage("command_village_delwarp_del_broadcast") .replace("%player%", player.getName()) diff --git a/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JSetWarpCommand.java b/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JSetWarpCommand.java index 4bad8d1..bd44a56 100644 --- a/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JSetWarpCommand.java +++ b/src/main/java/com/johnymuffin/jvillage/beta/commands/village/JSetWarpCommand.java @@ -1,7 +1,5 @@ package com.johnymuffin.jvillage.beta.commands.village; -import com.johnymuffin.beta.fundamentals.api.EconomyAPI; -import com.johnymuffin.beta.fundamentals.api.FundamentalsAPI; import com.johnymuffin.jvillage.beta.JVillage; import com.johnymuffin.jvillage.beta.commands.JVBaseCommand; import com.johnymuffin.jvillage.beta.models.VSpawnCords; @@ -80,24 +78,11 @@ public boolean onCommand(CommandSender commandSender, Command command, String s, } double creationCost = settings.getConfigDouble("settings.warp.price.amount"); - if (creationCost > 0 && plugin.isFundamentalsEnabled()) { - EconomyAPI.EconomyResult result = FundamentalsAPI.getEconomy().subtractBalance(player.getUniqueId(), creationCost, player.getWorld().getName()); - String message; - switch (result) { - case successful: - commandSender.sendMessage(language.getMessage("command_village_setwarp_payment") - .replace("%amount%", settings.getConfigDouble("settings.warp.price.amount").toString()) - .replace("%warp%", warpName)); - break; - case notEnoughFunds: - commandSender.sendMessage(language.getMessage("command_village_setwarp_insufficient_funds") - .replace("%cost%", String.valueOf(creationCost))); - return true; - default: - message = language.getMessage("unknown_economy_error"); - commandSender.sendMessage(message); - return true; - } + if (creationCost > 0 && !village.hasEnough(creationCost)) { + String message = language.getMessage("command_village_setwarp_insufficient_funds") + .replace("%cost%", String.valueOf(creationCost)); + commandSender.sendMessage(message); + return true; } VSpawnCords cords = new VSpawnCords(player.getLocation()); village.addWarp(warpName, cords); diff --git a/src/main/java/com/johnymuffin/jvillage/beta/config/JVillageSettings.java b/src/main/java/com/johnymuffin/jvillage/beta/config/JVillageSettings.java index a2ededa..3d88083 100644 --- a/src/main/java/com/johnymuffin/jvillage/beta/config/JVillageSettings.java +++ b/src/main/java/com/johnymuffin/jvillage/beta/config/JVillageSettings.java @@ -35,6 +35,9 @@ private void write() { generateConfigOption("settings.warp.max-name-length.value", 20); generateConfigOption("settings.warp.max-name-length.info", "This is the maximum length of a town warp name."); + + generateConfigOption("settings.warp.refund-deleted.enabled", true); + generateConfigOption("settings.warp.refund-deleted.info", "If true, the price to set a warp will be refunded when deleting a warp."); generateConfigOption("settings.resident.maximum-towns-owned.value", 10); generateConfigOption("settings.resident.maximum-towns-owned.info", "This is the maximum number of towns a resident can own. Set to 0 to disable.");