diff --git a/build.gradle.kts b/build.gradle.kts index 3a0436d..8a5244c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,5 +48,4 @@ dependencies { compileOnly("com.github.milkbowl:VaultAPI:1.7") { exclude("org.bukkit","bukkit") } - shadow("org.apache.commons:commons-math3:3.2") } \ No newline at end of file diff --git a/src/main/java/com/alttd/GUI/GUIListener.java b/src/main/java/com/alttd/GUI/GUIListener.java index 6a81363..75f3499 100644 --- a/src/main/java/com/alttd/GUI/GUIListener.java +++ b/src/main/java/com/alttd/GUI/GUIListener.java @@ -54,9 +54,11 @@ public class GUIListener implements Listener { if (currentItem == null) return; if (event.getClick().isShiftClick()) - event.getWhoClicked().sendMessage(MiniMessage.get().parse(currentItem.getType().name() + ": " + event.getCurrentItem().getType().getMaxStackSize())); + event.getWhoClicked().sendMiniMessage(currentItem.getType().name() + ": " + + event.getCurrentItem().getType().getMaxStackSize(), null); else - event.getWhoClicked().sendMessage(MiniMessage.get().parse(currentItem.getType().name() + ": " + event.getCurrentItem().getAmount())); + event.getWhoClicked().sendMiniMessage(currentItem.getType().name() + ": " + + event.getCurrentItem().getAmount(), null); } @EventHandler diff --git a/src/main/java/com/alttd/GUI/windows/BuyGUI.java b/src/main/java/com/alttd/GUI/windows/BuyGUI.java index ad016f2..46df5d5 100644 --- a/src/main/java/com/alttd/GUI/windows/BuyGUI.java +++ b/src/main/java/com/alttd/GUI/windows/BuyGUI.java @@ -11,6 +11,7 @@ import com.alttd.objects.VillagerType; import com.alttd.util.Utilities; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.template.TemplateResolver; import net.milkbowl.vault.economy.Economy; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -19,16 +20,20 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import java.util.List; import java.util.Objects; public class BuyGUI extends GUIMerchant { - private static final MiniMessage miniMessage = MiniMessage.get(); + private static final MiniMessage miniMessage = MiniMessage.miniMessage(); public BuyGUI(VillagerType villagerType, EconUser econUser) { - super(MiniMessage.get().parse(Config.BUY_WINDOW, - Template.of("trader", villagerType.getDisplayName()), - Template.of("points", String.valueOf(Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0)))), villagerType); + super(miniMessage.deserialize(Config.BUY_WINDOW, TemplateResolver.resolving( + Template.template("trader", villagerType.getDisplayName()), + Template.template("points", String.valueOf(Objects.requireNonNullElse( + econUser.getPointsMap().get(villagerType.getName()), + 0))) + )), villagerType); for (ItemStack itemStack : villagerType.getBuying()) { Price price = Utilities.getPrice(itemStack); if (price == null) @@ -44,26 +49,27 @@ public class BuyGUI extends GUIMerchant { private void buy(VillagerType villagerType, Player player, Material material, int amount, Price price) { Economy econ = VillagerUI.getInstance().getEconomy(); double balance = econ.getBalance(player); - int trans_pts = (int) (Math.floor(price.getPrice(amount)/ WorthConfig.POINT_MOD) * amount); + int itemPts = (int) (Math.floor(price.getPrice(amount) / WorthConfig.POINT_MOD) + 1); + int transPts = itemPts * amount; EconUser econUser = EconUser.getUser(player.getUniqueId()); int oldPoints = Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0); - double cost = price.calculatePriceThing(oldPoints, trans_pts, true); + double cost = price.calculatePriceThing(oldPoints, transPts, true, itemPts); if (balance < cost) { - player.sendMessage(MiniMessage.get().parse(Config.NOT_ENOUGH_MONEY, - Template.of("money", String.valueOf(Utilities.round(balance, 2))), - Template.of("price", String.valueOf(price)))); + player.sendMiniMessage(Config.NOT_ENOUGH_MONEY, List.of( + Template.template("money", String.valueOf(Utilities.round(balance, 2))), + Template.template("price", String.valueOf(cost)))); return; } econ.withdrawPlayer(player, cost); - econUser.addPoints(villagerType.getName(), trans_pts); + econUser.addPoints(villagerType.getName(), transPts); player.getInventory().addItem(new ItemStack(material, amount)); - player.sendMessage(MiniMessage.get().parse(Config.PURCHASED_ITEM, - Template.of("amount", String.valueOf(amount)), - Template.of("item", StringUtils.capitalize(material.name() + player.sendMiniMessage(Config.PURCHASED_ITEM, List.of( + Template.template("amount", String.valueOf(amount)), + Template.template("item", StringUtils.capitalize(material.name() .toLowerCase().replaceAll("_", " "))), - Template.of("price", String.valueOf(cost)))); + Template.template("price", String.valueOf(cost)))); Bukkit.getServer().getPluginManager() .callEvent(new SpawnShopEvent(player, amount, cost, material, @@ -80,7 +86,7 @@ public class BuyGUI extends GUIMerchant { private ItemStack nameItem(ItemStack itemStack, double price) { ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.displayName(miniMessage.parse("" + price + "")); //TODO configurable + itemMeta.displayName(miniMessage.deserialize("" + price + "")); //TODO configurable itemStack.setItemMeta(itemMeta); return itemStack; } diff --git a/src/main/java/com/alttd/GUI/windows/OpenGUI.java b/src/main/java/com/alttd/GUI/windows/OpenGUI.java index 2d0ad22..13f8bc3 100644 --- a/src/main/java/com/alttd/GUI/windows/OpenGUI.java +++ b/src/main/java/com/alttd/GUI/windows/OpenGUI.java @@ -7,38 +7,43 @@ import com.alttd.objects.EconUser; import com.alttd.objects.VillagerType; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.template.TemplateResolver; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.scheduler.BukkitRunnable; +import java.util.List; import java.util.Objects; public class OpenGUI extends GUIInventory { private static final ItemStack BUY = new ItemStack(Material.GOLD_INGOT); private static final ItemStack SELL = new ItemStack(Material.BUCKET); - + private static final MiniMessage miniMessage; static { - MiniMessage miniMessage = MiniMessage.get(); + miniMessage = MiniMessage.miniMessage(); ItemMeta itemMeta; { itemMeta = BUY.getItemMeta(); - itemMeta.displayName(miniMessage.parse("Buy")); + itemMeta.displayName(miniMessage.deserialize("Buy")); BUY.setItemMeta(itemMeta); } { itemMeta = SELL.getItemMeta(); - itemMeta.displayName(miniMessage.parse("Sell")); + itemMeta.displayName(miniMessage.deserialize("Sell")); SELL.setItemMeta(itemMeta); } } public OpenGUI(VillagerType villagerType, EconUser econUser) { - super(InventoryType.HOPPER, MiniMessage.get().parse(Config.INITIAL_VILLAGER_WINDOW, - Template.of("trader", villagerType.getDisplayName()), - Template.of("points", String.valueOf(Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0))))); + super(InventoryType.HOPPER, miniMessage.deserialize(Config.INITIAL_VILLAGER_WINDOW, + TemplateResolver.resolving(Template.template("trader", villagerType.getDisplayName()), + Template.template("points", String.valueOf(Objects.requireNonNullElse( + econUser.getPointsMap().get(villagerType.getName()), + 0))))) + ); setItem(1, BUY, player -> new BukkitRunnable() { @Override public void run() { diff --git a/src/main/java/com/alttd/GUI/windows/SellGUI.java b/src/main/java/com/alttd/GUI/windows/SellGUI.java index 8bef44d..8ff05c2 100644 --- a/src/main/java/com/alttd/GUI/windows/SellGUI.java +++ b/src/main/java/com/alttd/GUI/windows/SellGUI.java @@ -11,6 +11,7 @@ import com.alttd.objects.VillagerType; import com.alttd.util.Utilities; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.template.TemplateResolver; import net.milkbowl.vault.economy.Economy; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -22,16 +23,19 @@ import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.meta.ItemMeta; import java.util.Arrays; +import java.util.List; import java.util.Objects; public class SellGUI extends GUIMerchant { - private static final MiniMessage miniMessage = MiniMessage.get(); + private static final MiniMessage miniMessage = MiniMessage.miniMessage(); public SellGUI(VillagerType villagerType, EconUser econUser) { - super(MiniMessage.get().parse(Config.SELL_WINDOW, - Template.of("trader", villagerType.getDisplayName()), - Template.of("points", String.valueOf(Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0)))), villagerType); + super(MiniMessage.miniMessage().deserialize(Config.SELL_WINDOW, TemplateResolver.resolving( + Template.template("trader", villagerType.getDisplayName()), + Template.template("points", String.valueOf(Objects + .requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()) + , 0))))), villagerType); for (ItemStack itemStack : villagerType.getSelling()) { Price price = Utilities.getPrice(itemStack); if (price == null) @@ -48,28 +52,29 @@ public class SellGUI extends GUIMerchant { PlayerInventory inventory = player.getInventory(); if (!inventory.containsAtLeast(new ItemStack(material), amount)) { - player.sendMessage(miniMessage.parse(Config.NOT_ENOUGH_ITEMS, - Template.of("type", material.name()), - Template.of("amount", String.valueOf(amount)))); + player.sendMiniMessage(Config.NOT_ENOUGH_ITEMS, List.of( + Template.template("type", material.name()), + Template.template("amount", String.valueOf(amount)))); return; } Economy econ = VillagerUI.getInstance().getEconomy(); EconUser econUser = EconUser.getUser(player.getUniqueId()); int oldPoints = Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0); - int trans_pts = (int) ((Math.floor(price.getPrice(amount) / WorthConfig.POINT_MOD) + 1) * amount); - double cost = price.calculatePriceThing(oldPoints, trans_pts, false); + int itemPts = (int) (Math.floor(price.getPrice(amount) / WorthConfig.POINT_MOD) + 1); + int transPts = itemPts * amount; + double cost = price.calculatePriceThing(oldPoints, transPts, false, itemPts); econ.depositPlayer(player, cost); econUser.addPoints(villagerType.getName(), -price.getPoints()); removeItems(inventory, material, amount); - player.sendMessage(MiniMessage.get().parse(Config.SOLD_ITEM, - Template.of("amount", String.valueOf(amount)), - Template.of("item", StringUtils.capitalize(material.name() + player.sendMiniMessage(Config.SOLD_ITEM, List.of( + Template.template("amount", String.valueOf(amount)), + Template.template("item", StringUtils.capitalize(material.name() .toLowerCase().replaceAll("_", " "))), - Template.of("price", String.valueOf(cost)))); + Template.template("price", String.valueOf(cost)))); Bukkit.getServer().getPluginManager() .callEvent(new SpawnShopEvent(player, amount, cost, material, @@ -107,7 +112,7 @@ public class SellGUI extends GUIMerchant { private ItemStack nameItem(ItemStack itemStack, double price) { ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.displayName(miniMessage.parse("" + price * -1 + "")); //TODO configurable + itemMeta.displayName(miniMessage.deserialize("" + price * -1 + "")); //TODO configurable itemStack.setItemMeta(itemMeta); return itemStack; } diff --git a/src/main/java/com/alttd/VillagerUI.java b/src/main/java/com/alttd/VillagerUI.java index 56d6354..12e6523 100644 --- a/src/main/java/com/alttd/VillagerUI.java +++ b/src/main/java/com/alttd/VillagerUI.java @@ -6,6 +6,7 @@ import com.alttd.database.Database; import com.alttd.config.Config; import com.alttd.config.VillagerConfig; import com.alttd.config.WorthConfig; +import com.alttd.database.Queries; import com.alttd.events.LoginEvent; import com.alttd.events.LogoutEvent; import com.alttd.events.VillagerEvents; @@ -47,6 +48,15 @@ public class VillagerUI extends JavaPlugin { Logger.info("--------------------------------------------------"); } + @Override + public void onDisable() { + EconUser.getEconUsers().forEach(econUser -> { + if (Config.DEBUG) + Logger.info("Syncing %", econUser.getUuid().toString()); + Queries.updateUserPoints(econUser.getUuid(), econUser.getPointsMap()); + }); + } + private void scheduleTasks() { new BukkitRunnable() { @Override @@ -54,6 +64,8 @@ public class VillagerUI extends JavaPlugin { if (Config.DEBUG) Logger.info("Syncing users."); EconUser.getEconUsers().forEach(econUser -> { + if (econUser == null) + return; if (Config.DEBUG) Logger.info("Syncing %", econUser.getUuid().toString()); econUser.removePoints(); diff --git a/src/main/java/com/alttd/commands/CommandManager.java b/src/main/java/com/alttd/commands/CommandManager.java index d93642c..8e8744c 100644 --- a/src/main/java/com/alttd/commands/CommandManager.java +++ b/src/main/java/com/alttd/commands/CommandManager.java @@ -40,23 +40,25 @@ public class CommandManager implements CommandExecutor, TabExecutor { new CommandCreateVillager(), new CommandReload(), new CommandRemoveVillager()); - miniMessage = MiniMessage.get(); + miniMessage = MiniMessage.miniMessage(); } @Override public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String cmd, @NotNull String[] args) { if (args.length == 0) { - commandSender.sendMessage(miniMessage.parse(Config.HELP_MESSAGE_WRAPPER, Template.of("commands", subCommands.stream() + commandSender.sendMiniMessage(Config.HELP_MESSAGE_WRAPPER, List.of( + Template.template("commands", subCommands.stream() .filter(subCommand -> commandSender.hasPermission(subCommand.getPermission())) .map(SubCommand::getHelpMessage) - .collect(Collectors.joining("\n"))))); + .collect(Collectors.joining("\n"))) + )); return true; } SubCommand subCommand = getSubCommand(args[0]); if (!commandSender.hasPermission(subCommand.getPermission())) { - commandSender.sendMessage(miniMessage.parse(Config.NO_PERMISSION)); + commandSender.sendMiniMessage(Config.NO_PERMISSION, null); return true; } diff --git a/src/main/java/com/alttd/commands/SubCommand.java b/src/main/java/com/alttd/commands/SubCommand.java index 705bd5d..9b3ba1c 100644 --- a/src/main/java/com/alttd/commands/SubCommand.java +++ b/src/main/java/com/alttd/commands/SubCommand.java @@ -10,7 +10,7 @@ public abstract class SubCommand { private final MiniMessage miniMessage; public SubCommand() { - miniMessage = MiniMessage.get(); + miniMessage = MiniMessage.miniMessage(); } public abstract boolean onCommand(CommandSender commandSender, String[] args); diff --git a/src/main/java/com/alttd/commands/subcommands/CommandCreateVillager.java b/src/main/java/com/alttd/commands/subcommands/CommandCreateVillager.java index 88cec35..8570833 100644 --- a/src/main/java/com/alttd/commands/subcommands/CommandCreateVillager.java +++ b/src/main/java/com/alttd/commands/subcommands/CommandCreateVillager.java @@ -8,6 +8,7 @@ import com.alttd.objects.LoadedVillagers; import com.alttd.objects.VillagerType; import com.alttd.util.Utilities; import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.template.TemplateResolver; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; @@ -26,26 +27,26 @@ public class CommandCreateVillager extends SubCommand { @Override public boolean onCommand(CommandSender commandSender, String[] args) { if (args.length != 9) { - commandSender.sendMessage(getMiniMessage().parse(getHelpMessage())); + commandSender.sendMiniMessage(getHelpMessage(), null); return true; } Optional first = VillagerType.getVillagerTypes().stream().filter(villagerType -> villagerType.getName().equalsIgnoreCase(args[1])).findFirst(); if (first.isEmpty()) { - commandSender.sendMessage(getMiniMessage().parse(getHelpMessage())); + commandSender.sendMiniMessage(getHelpMessage(), null); return true; } VillagerType villagerType = first.get(); Villager.Type type = Villager.Type.valueOf(args[2].toUpperCase()); if (type == null) { //TODO test if this might need a try catch? - commandSender.sendMessage(getMiniMessage().parse(getHelpMessage())); + commandSender.sendMiniMessage(getHelpMessage(), null); return true; } World world = Bukkit.getServer().getWorld(args[8]); if (world == null) { - commandSender.sendMessage(getMiniMessage().parse(getHelpMessage())); + commandSender.sendMiniMessage(getHelpMessage(), null); return true; } Location location = new Location(world, Double.parseDouble(args[3]),Double.parseDouble(args[4]),Double.parseDouble(args[5]), Float.parseFloat(args[6]), Float.parseFloat(args[7])); @@ -55,7 +56,9 @@ public class CommandCreateVillager extends SubCommand { villager.setVillagerType(type); villager.setProfession(villagerType.getProfession()); villager.setRemoveWhenFarAway(false); - villager.customName(getMiniMessage().parse(Config.VILLAGER_NAME, Template.of("name", villagerType.getDisplayName()))); + villager.customName(getMiniMessage().deserialize(Config.VILLAGER_NAME, TemplateResolver.resolving( + Template.template("name", villagerType.getDisplayName()))) + ); villager.setCustomNameVisible(true); villager.setAI(false); diff --git a/src/main/java/com/alttd/commands/subcommands/CommandHelp.java b/src/main/java/com/alttd/commands/subcommands/CommandHelp.java index 5b76ca9..5a36346 100644 --- a/src/main/java/com/alttd/commands/subcommands/CommandHelp.java +++ b/src/main/java/com/alttd/commands/subcommands/CommandHelp.java @@ -4,6 +4,7 @@ import com.alttd.commands.CommandManager; import com.alttd.commands.SubCommand; import com.alttd.config.Config; import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.template.TemplateResolver; import org.bukkit.command.CommandSender; import java.util.ArrayList; @@ -21,10 +22,12 @@ public class CommandHelp extends SubCommand { @Override public boolean onCommand(CommandSender commandSender, String[] args) { - commandSender.sendMessage(getMiniMessage().parse(Config.HELP_MESSAGE_WRAPPER, Template.of("commands", commandManager.getSubCommands().stream() - .filter(subCommand -> commandSender.hasPermission(subCommand.getPermission())) - .map(SubCommand::getHelpMessage) - .collect(Collectors.joining("\n"))))); + commandSender.sendMiniMessage(Config.HELP_MESSAGE_WRAPPER, + List.of(Template.template("commands", commandManager + .getSubCommands().stream() + .filter(subCommand -> commandSender.hasPermission(subCommand.getPermission())) + .map(SubCommand::getHelpMessage) + .collect(Collectors.joining("\n"))))); return true; } diff --git a/src/main/java/com/alttd/commands/subcommands/CommandReload.java b/src/main/java/com/alttd/commands/subcommands/CommandReload.java index 92569ff..26fdd2a 100644 --- a/src/main/java/com/alttd/commands/subcommands/CommandReload.java +++ b/src/main/java/com/alttd/commands/subcommands/CommandReload.java @@ -16,7 +16,7 @@ public class CommandReload extends SubCommand { Config.reload(); VillagerConfig.reload(); WorthConfig.reload(); - commandSender.sendMessage(getMiniMessage().parse("Reloaded VillagerShopUI config.")); + commandSender.sendMiniMessage("Reloaded VillagerShopUI config.", null); return true; } diff --git a/src/main/java/com/alttd/commands/subcommands/CommandRemoveVillager.java b/src/main/java/com/alttd/commands/subcommands/CommandRemoveVillager.java index 85a2a2f..30a614f 100644 --- a/src/main/java/com/alttd/commands/subcommands/CommandRemoveVillager.java +++ b/src/main/java/com/alttd/commands/subcommands/CommandRemoveVillager.java @@ -19,7 +19,7 @@ public class CommandRemoveVillager extends SubCommand { @Override public boolean onCommand(CommandSender commandSender, String[] args) { if (!(commandSender instanceof Player player)) { - commandSender.sendMessage(getMiniMessage().parse(Config.NO_CONSOLE)); + commandSender.sendMiniMessage(Config.NO_CONSOLE, null); return true; } @@ -32,7 +32,8 @@ public class CommandRemoveVillager extends SubCommand { LoadedVillagers.removeLoadedVillager(uuid); VillagerConfig.removeVillager(uuid); entity.remove(); - player.sendMessage(getMiniMessage().parse(Config.REMOVED_VILLAGER, Template.of("uuid", uuid.toString()))); + player.sendMiniMessage(Config.REMOVED_VILLAGER, List.of( + Template.template("uuid", uuid.toString()))); } return true; } diff --git a/src/main/java/com/alttd/database/Queries.java b/src/main/java/com/alttd/database/Queries.java index ab98e16..55f0635 100644 --- a/src/main/java/com/alttd/database/Queries.java +++ b/src/main/java/com/alttd/database/Queries.java @@ -41,7 +41,7 @@ public class Queries { " for villager type %", String.valueOf(points), uuid.toString(), villagerType); } }); - preparedStatement.execute(); + preparedStatement.executeBatch(); } catch (SQLException e) { e.printStackTrace(); return; diff --git a/src/main/java/com/alttd/events/LogoutEvent.java b/src/main/java/com/alttd/events/LogoutEvent.java index 31adfc2..221f6cc 100644 --- a/src/main/java/com/alttd/events/LogoutEvent.java +++ b/src/main/java/com/alttd/events/LogoutEvent.java @@ -1,7 +1,9 @@ package com.alttd.events; import com.alttd.GUI.GUI; +import com.alttd.config.Config; import com.alttd.objects.EconUser; +import com.alttd.util.Logger; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; @@ -13,6 +15,8 @@ public class LogoutEvent implements Listener { public void onPlayerQuit(PlayerQuitEvent event) { UUID uuid = event.getPlayer().getUniqueId(); + if (Config.DEBUG) + Logger.info("Syncing %", event.getPlayer().getName()); EconUser.getUser(uuid).syncPoints(); EconUser.removeUser(uuid); GUI.GUIByUUID.remove(uuid); diff --git a/src/main/java/com/alttd/events/VillagerEvents.java b/src/main/java/com/alttd/events/VillagerEvents.java index 36086be..0286b55 100644 --- a/src/main/java/com/alttd/events/VillagerEvents.java +++ b/src/main/java/com/alttd/events/VillagerEvents.java @@ -31,7 +31,7 @@ public class VillagerEvents implements Listener { event.setCancelled(true); if (!event.getPlayer().hasPermission(loadedVillager.getPermission())) { - event.getPlayer().sendMessage(MiniMessage.get().parse(Config.NO_PERMISSION)); //TODO more specific message? + event.getPlayer().sendMiniMessage(Config.NO_PERMISSION, null); //TODO more specific message? return; } new BukkitRunnable() { diff --git a/src/main/java/com/alttd/objects/EconUser.java b/src/main/java/com/alttd/objects/EconUser.java index 7f71565..c25a770 100644 --- a/src/main/java/com/alttd/objects/EconUser.java +++ b/src/main/java/com/alttd/objects/EconUser.java @@ -5,13 +5,11 @@ import com.alttd.config.Config; import com.alttd.database.Queries; import com.alttd.util.Logger; import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; -import org.apache.commons.math3.analysis.function.Log; import org.bukkit.scheduler.BukkitRunnable; import org.jetbrains.annotations.Unmodifiable; import java.util.Collections; import java.util.List; -import java.util.Objects; import java.util.UUID; public class EconUser {