From ba1e3fb28b42fdb07990dcffb147a41385dc9e4b Mon Sep 17 00:00:00 2001 From: BenceX100 <52270269+BenceX100@users.noreply.github.com> Date: Wed, 17 Apr 2024 17:21:43 +0200 Subject: [PATCH] Progress --- .../com/artillexstudios/axtrade/AxTrade.java | 2 +- .../axtrade/trade/TradeGui.java | 4 ++-- .../axtrade/trade/TradePlayer.java | 6 +++++- .../axtrade/utils/NumberUtils.java | 19 +++++++++++++++++-- .../axtrade/utils/SoundUtils.java | 2 +- src/main/resources/plugin.yml | 12 +++++++++++- 6 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/artillexstudios/axtrade/AxTrade.java b/src/main/java/com/artillexstudios/axtrade/AxTrade.java index 8bf6560..5ea8873 100644 --- a/src/main/java/com/artillexstudios/axtrade/AxTrade.java +++ b/src/main/java/com/artillexstudios/axtrade/AxTrade.java @@ -56,7 +56,7 @@ public final class AxTrade extends AxPlugin { MESSAGEUTILS = new MessageUtils(LANG.getBackingDocument(), "prefix", CONFIG.getBackingDocument()); - threadedQueue = new ThreadedQueue<>("AxRewards-Datastore-thread"); + threadedQueue = new ThreadedQueue<>("AxTrade-Datastore-thread"); BUKKITAUDIENCES = BukkitAudiences.create(this); diff --git a/src/main/java/com/artillexstudios/axtrade/trade/TradeGui.java b/src/main/java/com/artillexstudios/axtrade/trade/TradeGui.java index 2037d09..c357d2d 100644 --- a/src/main/java/com/artillexstudios/axtrade/trade/TradeGui.java +++ b/src/main/java/com/artillexstudios/axtrade/trade/TradeGui.java @@ -179,8 +179,8 @@ public class TradeGui extends GuiFrame { if (trade.ended) return; trade.prepTime = System.currentTimeMillis(); String am = result.getLine(0); - TradePlayer.Result addResult = TradePlayer.Result.NOT_A_NUMBER; - if (com.artillexstudios.axapi.utils.NumberUtils.isDouble(am) && (addResult = player.setCurrency(currencyStr, Double.parseDouble(am))) == TradePlayer.Result.SUCCESS) { + TradePlayer.Result addResult = player.setCurrency(currencyStr, am); + if (addResult == TradePlayer.Result.SUCCESS) { MESSAGEUTILS.sendLang(player1, "currency-editor.success"); } else { switch (addResult) { diff --git a/src/main/java/com/artillexstudios/axtrade/trade/TradePlayer.java b/src/main/java/com/artillexstudios/axtrade/trade/TradePlayer.java index 62987c7..fe121b3 100644 --- a/src/main/java/com/artillexstudios/axtrade/trade/TradePlayer.java +++ b/src/main/java/com/artillexstudios/axtrade/trade/TradePlayer.java @@ -2,6 +2,7 @@ package com.artillexstudios.axtrade.trade; import com.artillexstudios.axtrade.hooks.HookManager; import com.artillexstudios.axtrade.hooks.currency.CurrencyHook; +import com.artillexstudios.axtrade.utils.NumberUtils; import com.artillexstudios.axtrade.utils.SoundUtils; import org.bukkit.entity.Player; @@ -88,7 +89,10 @@ public class TradePlayer { return currencies.get(currencyHook); } - public Result setCurrency(String currency, double amount) { + public Result setCurrency(String currency, String am) { + final Double unformatted = NumberUtils.parseNumber(am); + if (unformatted == null && !com.artillexstudios.axapi.utils.NumberUtils.isDouble(am)) return Result.NOT_A_NUMBER; + double amount = unformatted == null ? Double.parseDouble(am) : unformatted; if (Double.isNaN(amount)) return Result.NOT_A_NUMBER; final CurrencyHook currencyHook = HookManager.getCurrencyHook(currency); if (currencyHook == null) return Result.CURRENCY_NOT_FOUND; diff --git a/src/main/java/com/artillexstudios/axtrade/utils/NumberUtils.java b/src/main/java/com/artillexstudios/axtrade/utils/NumberUtils.java index fa50a63..66aeaa1 100644 --- a/src/main/java/com/artillexstudios/axtrade/utils/NumberUtils.java +++ b/src/main/java/com/artillexstudios/axtrade/utils/NumberUtils.java @@ -1,23 +1,29 @@ package com.artillexstudios.axtrade.utils; +import org.jetbrains.annotations.Nullable; + import java.text.DecimalFormat; import java.text.NumberFormat; +import java.text.ParseException; import java.util.Locale; import static com.artillexstudios.axtrade.AxTrade.CONFIG; public class NumberUtils { private static NumberFormat formatter = new DecimalFormat(CONFIG.getString("number-formatting.formatted", "#,###.##")); + private static NumberFormat shortFormat = new DecimalFormat(CONFIG.getString("number-formatting.formatted", "#,###.##")); public static void reload() { + final String[] lang = CONFIG.getString("number-formatting.short", "en_US").split("_"); + shortFormat = DecimalFormat.getCompactNumberInstance(new Locale(lang[0], lang[1]), NumberFormat.Style.SHORT); + int mode = CONFIG.getInt("number-formatting.mode", 0); switch (mode) { case 0: formatter = new DecimalFormat(CONFIG.getString("number-formatting.formatted", "#,###.##")); break; case 1: - final String[] lang = CONFIG.getString("number-formatting.short", "en_US").split("_"); - formatter = DecimalFormat.getCompactNumberInstance(new Locale(lang[0], lang[1]), NumberFormat.Style.SHORT); + formatter = shortFormat; break; case 2: formatter = null; @@ -28,4 +34,13 @@ public class NumberUtils { public static String formatNumber(double number) { return formatter == null ? "" + number : formatter.format(number); } + + @Nullable + public static Double parseNumber(String number) { + try { + return shortFormat.parse(number.toUpperCase()).doubleValue(); + } catch (ParseException ex) { + return null; + } + } } diff --git a/src/main/java/com/artillexstudios/axtrade/utils/SoundUtils.java b/src/main/java/com/artillexstudios/axtrade/utils/SoundUtils.java index ba6ccbf..aa56540 100644 --- a/src/main/java/com/artillexstudios/axtrade/utils/SoundUtils.java +++ b/src/main/java/com/artillexstudios/axtrade/utils/SoundUtils.java @@ -22,7 +22,7 @@ public class SoundUtils { final Sound sound = Sound.sound().type(Key.key(LANG.getString("sounds." + route))).build(); BUKKITAUDIENCES.player(player).playSound(sound); } catch (InvalidKeyException ex) { - Bukkit.getConsoleSender().sendMessage(StringUtils.formatToString("&#FFFFAA[AxAuctions] The sound %sound% does not exist, section: %section%!".replace("%sound%", LANG.getString("sounds." + route)).replace("%section%", route))); + Bukkit.getConsoleSender().sendMessage(StringUtils.formatToString("&#FF0000[AxTrade] The sound %sound% does not exist, section: %section%!".replace("%sound%", LANG.getString("sounds." + route)).replace("%section%", route))); } } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ea19724..de98bac 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,4 +5,14 @@ api-version: '1.18' folia-supported: true softdepend: - - PlaceholderAPI \ No newline at end of file + - AxQuestBoard + - CoinsEngine + - Kingdoms + - PlaceholderAPI + - PlayerPoints + - RivalHarvesterHoes + - RoyaleEconomy + - SuperMobCoins + - TheOnly-MobCoins + - TokenManager + - UltraEconomy \ No newline at end of file