Merge pull request #19 from RandomHashTags/minor-performance-improvements

minor performance improvements
This commit is contained in:
Kiran Hart 2022-10-29 10:07:54 -04:00 committed by GitHub
commit 479d512736
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 327 additions and 283 deletions

View File

@ -258,20 +258,20 @@ public class AuctionAPI {
* @param isBid Is this auction a bid enabled auction, or a single sale auction? * @param isBid Is this auction a bid enabled auction, or a single sale auction?
*/ */
public void sendDiscordMessage(String webhook, OfflinePlayer seller, OfflinePlayer buyer, AuctionedItem auctionItem, AuctionSaleType saleType, boolean isNew, boolean isBid) { public void sendDiscordMessage(String webhook, OfflinePlayer seller, OfflinePlayer buyer, AuctionedItem auctionItem, AuctionSaleType saleType, boolean isNew, boolean isBid) {
DiscordWebhook hook = new DiscordWebhook(webhook); final DiscordWebhook hook = new DiscordWebhook(webhook);
hook.setUsername(Settings.DISCORD_MSG_USERNAME.getString()); hook.setUsername(Settings.DISCORD_MSG_USERNAME.getString());
hook.setAvatarUrl(Settings.DISCORD_MSG_PFP.getString()); hook.setAvatarUrl(Settings.DISCORD_MSG_PFP.getString());
String color = isBid ? Settings.DISCORD_MSG_DEFAULT_COLOUR_BID.getString() : isNew ? Settings.DISCORD_MSG_DEFAULT_COLOUR.getString() : Settings.DISCORD_MSG_DEFAULT_COLOUR_SALE.getString(); final String color = isBid ? Settings.DISCORD_MSG_DEFAULT_COLOUR_BID.getString() : isNew ? Settings.DISCORD_MSG_DEFAULT_COLOUR.getString() : Settings.DISCORD_MSG_DEFAULT_COLOUR_SALE.getString();
String[] possibleColours = color.split("-"); final String[] possibleColours = color.split("-");
Color colour = Settings.DISCORD_MSG_USE_RANDOM_COLOUR.getBoolean() final Color colour = Settings.DISCORD_MSG_USE_RANDOM_COLOUR.getBoolean()
? Color.getHSBColor(ThreadLocalRandom.current().nextFloat() * 360F, ThreadLocalRandom.current().nextFloat() * 101F, ThreadLocalRandom.current().nextFloat() * 101F) ? Color.getHSBColor(ThreadLocalRandom.current().nextFloat() * 360F, ThreadLocalRandom.current().nextFloat() * 101F, ThreadLocalRandom.current().nextFloat() * 101F)
: Color.getHSBColor(Float.parseFloat(possibleColours[0]) / 360, Float.parseFloat(possibleColours[1]) / 100, Float.parseFloat(possibleColours[2]) / 100); : Color.getHSBColor(Float.parseFloat(possibleColours[0]) / 360, Float.parseFloat(possibleColours[1]) / 100, Float.parseFloat(possibleColours[2]) / 100);
ItemStack itemStack = auctionItem.getItem(); final ItemStack itemStack = auctionItem.getItem();
String itemName = MMOItemsHook.isEnabled() ? MMOItemsHook.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack)); final String itemName = MMOItemsHook.isEnabled() ? MMOItemsHook.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack));
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject(); final DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject();
final String playerLost = AuctionHouse.getInstance().getLocale().getMessage("discord.player_lost").getMessage(); final String playerLost = AuctionHouse.getInstance().getLocale().getMessage("discord.player_lost").getMessage();
final String notSold = AuctionHouse.getInstance().getLocale().getMessage("discord.not_sold").getMessage(); final String notSold = AuctionHouse.getInstance().getLocale().getMessage("discord.not_sold").getMessage();
@ -311,19 +311,19 @@ public class AuctionAPI {
*/ */
public void sendDiscordBidMessage(String webhook, AuctionedItem auctionItem, double newBid) { public void sendDiscordBidMessage(String webhook, AuctionedItem auctionItem, double newBid) {
// oh boy the code repetition is high with this one // oh boy the code repetition is high with this one
DiscordWebhook hook = new DiscordWebhook(webhook); final DiscordWebhook hook = new DiscordWebhook(webhook);
hook.setUsername(Settings.DISCORD_MSG_USERNAME.getString()); hook.setUsername(Settings.DISCORD_MSG_USERNAME.getString());
hook.setAvatarUrl(Settings.DISCORD_MSG_PFP.getString()); hook.setAvatarUrl(Settings.DISCORD_MSG_PFP.getString());
String[] possibleColours = Settings.DISCORD_MSG_DEFAULT_COLOUR_BID.getString().split("-"); final String[] possibleColours = Settings.DISCORD_MSG_DEFAULT_COLOUR_BID.getString().split("-");
Color colour = Settings.DISCORD_MSG_USE_RANDOM_COLOUR.getBoolean() final Color colour = Settings.DISCORD_MSG_USE_RANDOM_COLOUR.getBoolean()
? Color.getHSBColor(ThreadLocalRandom.current().nextFloat() * 360F, ThreadLocalRandom.current().nextFloat() * 101F, ThreadLocalRandom.current().nextFloat() * 101F) ? Color.getHSBColor(ThreadLocalRandom.current().nextFloat() * 360F, ThreadLocalRandom.current().nextFloat() * 101F, ThreadLocalRandom.current().nextFloat() * 101F)
: Color.getHSBColor(Float.parseFloat(possibleColours[0]) / 360, Float.parseFloat(possibleColours[1]) / 100, Float.parseFloat(possibleColours[2]) / 100); : Color.getHSBColor(Float.parseFloat(possibleColours[0]) / 360, Float.parseFloat(possibleColours[1]) / 100, Float.parseFloat(possibleColours[2]) / 100);
ItemStack itemStack = auctionItem.getItem(); final ItemStack itemStack = auctionItem.getItem();
String itemName = MMOItemsHook.isEnabled() ? MMOItemsHook.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack)); final String itemName = MMOItemsHook.isEnabled() ? MMOItemsHook.getItemType(itemStack) : ChatColor.stripColor(getItemName(itemStack));
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject(); final DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject();
embedObject.setTitle(Settings.DISCORD_MSG_BID_TITLE.getString()); embedObject.setTitle(Settings.DISCORD_MSG_BID_TITLE.getString());
embedObject.setColor(colour); embedObject.setColor(colour);
embedObject.addField(Settings.DISCORD_MSG_FIELD_BIDDER_NAME.getString(), Settings.DISCORD_MSG_FIELD_BIDDER_VALUE.getString().replace("%bidder%", auctionItem.getHighestBidderName() != null ? auctionItem.getHighestBidderName() : AuctionHouse.getInstance().getLocale().getMessage("discord.player_lost").getMessage()), Settings.DISCORD_MSG_FIELD_BIDDER_INLINE.getBoolean()); embedObject.addField(Settings.DISCORD_MSG_FIELD_BIDDER_NAME.getString(), Settings.DISCORD_MSG_FIELD_BIDDER_VALUE.getString().replace("%bidder%", auctionItem.getHighestBidderName() != null ? auctionItem.getHighestBidderName() : AuctionHouse.getInstance().getLocale().getMessage("discord.player_lost").getMessage()), Settings.DISCORD_MSG_FIELD_BIDDER_INLINE.getBoolean());
@ -375,7 +375,7 @@ public class AuctionAPI {
* @return a list of all the enchantment names * @return a list of all the enchantment names
*/ */
public List<String> getItemEnchantments(ItemStack stack) { public List<String> getItemEnchantments(ItemStack stack) {
List<String> enchantments = new ArrayList<>(); final List<String> enchantments = new ArrayList<>();
Objects.requireNonNull(stack, "Item Stack cannot be null when getting enchantments"); Objects.requireNonNull(stack, "Item Stack cannot be null when getting enchantments");
if (!stack.getEnchantments().isEmpty()) { if (!stack.getEnchantments().isEmpty()) {
stack.getEnchantments().forEach((k, i) -> { stack.getEnchantments().forEach((k, i) -> {

View File

@ -52,8 +52,7 @@ public class DiscordWebhook {
throw new IllegalArgumentException("Set content or add at least one EmbedObject"); throw new IllegalArgumentException("Set content or add at least one EmbedObject");
} }
JSONObject json = new JSONObject(); final JSONObject json = new JSONObject();
json.put("content", this.content); json.put("content", this.content);
json.put("username", this.username); json.put("username", this.username);
json.put("avatar_url", this.avatarUrl); json.put("avatar_url", this.avatarUrl);

View File

@ -52,29 +52,28 @@ public class AuctionPlayer {
if (Settings.LIST_ITEM_DELAY.getInt() == -1) { if (Settings.LIST_ITEM_DELAY.getInt() == -1) {
return true; return true;
} }
final AuctionHouse instance = AuctionHouse.getInstance();
if (this.lastListedItem == -1 || System.currentTimeMillis() >= this.lastListedItem) { if (this.lastListedItem == -1 || System.currentTimeMillis() >= this.lastListedItem) {
this.lastListedItem = System.currentTimeMillis() + 1000L * Settings.LIST_ITEM_DELAY.getInt(); this.lastListedItem = System.currentTimeMillis() + 1000L * Settings.LIST_ITEM_DELAY.getInt();
AuctionHouse.getInstance().getDataManager().updateAuctionPlayer(this, (error, success) -> { instance.getDataManager().updateAuctionPlayer(this, (error, success) -> {
if (error == null && success) if (error == null && success)
if (!Settings.DISABLE_PROFILE_UPDATE_MSG.getBoolean()) if (!Settings.DISABLE_PROFILE_UPDATE_MSG.getBoolean())
AuctionHouse.getInstance().getLogger().info("Updating profile for player: " + player.getName()); instance.getLogger().info("Updating profile for player: " + player.getName());
}); });
return true; return true;
} }
AuctionHouse.getInstance().getLocale().getMessage("general.wait_to_list").processPlaceholder("time", (this.lastListedItem - System.currentTimeMillis()) / 1000).sendPrefixedMessage(this.player); instance.getLocale().getMessage("general.wait_to_list").processPlaceholder("time", (this.lastListedItem - System.currentTimeMillis()) / 1000).sendPrefixedMessage(this.player);
return false; return false;
} }
public List<AuctionedItem> getItems(boolean getExpired) { public List<AuctionedItem> getItems(boolean getExpired) {
List<AuctionedItem> items = new ArrayList<>(); final List<AuctionedItem> items = new ArrayList<>();
final AuctionHouse instance = AuctionHouse.getInstance();
for (Map.Entry<UUID, AuctionedItem> entry : AuctionHouse.getInstance().getAuctionItemManager().getItems().entrySet()) { for (Map.Entry<UUID, AuctionedItem> entry : instance.getAuctionItemManager().getItems().entrySet()) {
AuctionedItem auctionItem = entry.getValue(); final AuctionedItem auctionItem = entry.getValue();
if (auctionItem.getOwner().equals(this.player.getUniqueId()) && auctionItem.isExpired() == getExpired && !AuctionHouse.getInstance().getAuctionItemManager().getGarbageBin().containsKey(auctionItem.getId())) { if (auctionItem.getOwner().equals(this.player.getUniqueId()) && auctionItem.isExpired() == getExpired && !instance.getAuctionItemManager().getGarbageBin().containsKey(auctionItem.getId())) {
items.add(auctionItem); items.add(auctionItem);
} }
} }

View File

@ -43,11 +43,12 @@ public final class AuctionStatistic implements Storeable<AuctionStatistic> {
@Override @Override
public void store(Consumer<AuctionStatistic> stored) { public void store(Consumer<AuctionStatistic> stored) {
AuctionHouse.getInstance().getDataManager().insertStatistic(this, (error, statistic) -> { final AuctionHouse instance = AuctionHouse.getInstance();
instance.getDataManager().insertStatistic(this, (error, statistic) -> {
if (error != null) return; if (error != null) return;
if (statistic != null) { if (statistic != null) {
AuctionHouse.getInstance().getAuctionStatisticManager().addStatistic(statistic); instance.getAuctionStatisticManager().addStatistic(statistic);
if (stored != null) if (stored != null)
stored.accept(statistic); stored.accept(statistic);

View File

@ -25,16 +25,16 @@ public class CommandActive extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
instance.getGuiManager().showGUI(player, new GUIActiveAuctions(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId())));
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIActiveAuctions(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId())));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }

View File

@ -42,15 +42,16 @@ public class CommandAdmin extends AbstractCommand {
if (args.length < 1) return ReturnType.FAILURE; if (args.length < 1) return ReturnType.FAILURE;
if (AuctionAPI.tellMigrationStatus(sender)) return ReturnType.FAILURE; if (AuctionAPI.tellMigrationStatus(sender)) return ReturnType.FAILURE;
final AuctionHouse instance = AuctionHouse.getInstance();
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "logs": case "logs":
if (!(sender instanceof Player)) break; if (!(sender instanceof Player)) break;
Player player = (Player) sender; Player player = (Player) sender;
if (!player.hasPermission("auctionhouse.cmd.admin.logs")) return ReturnType.FAILURE; if (!player.hasPermission("auctionhouse.cmd.admin.logs")) return ReturnType.FAILURE;
AuctionHouse.getInstance().getDataManager().getAdminLogs((error, logs) -> { instance.getDataManager().getAdminLogs((error, logs) -> {
if (error == null) if (error == null)
AuctionHouse.newChain().sync(() -> AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAdminLogs(player, logs))).execute(); AuctionHouse.newChain().sync(() -> instance.getGuiManager().showGUI(player, new GUIAdminLogs(player, logs))).execute();
else else
error.printStackTrace(); error.printStackTrace();
}); });
@ -73,36 +74,36 @@ public class CommandAdmin extends AbstractCommand {
} }
if (target == null) { if (target == null) {
AuctionHouse.getInstance().getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[1]).sendPrefixedMessage(sender); instance.getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[1]).sendPrefixedMessage(sender);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAdminExpired(player, target)); instance.getGuiManager().showGUI(player, new GUIAdminExpired(player, target));
break; break;
case "endall": case "endall":
if (!sender.hasPermission("auctionhouse.cmd.admin.endall")) return ReturnType.FAILURE; if (!sender.hasPermission("auctionhouse.cmd.admin.endall")) return ReturnType.FAILURE;
for (UUID id : AuctionHouse.getInstance().getAuctionItemManager().getItems().keySet()) { for (UUID id : instance.getAuctionItemManager().getItems().keySet()) {
AuctionHouse.getInstance().getAuctionItemManager().getItems().get(id).setExpired(true); instance.getAuctionItemManager().getItems().get(id).setExpired(true);
} }
AuctionHouse.getInstance().getLocale().getMessage("general.endedallauctions").sendPrefixedMessage(sender); instance.getLocale().getMessage("general.endedallauctions").sendPrefixedMessage(sender);
break; break;
case "relistall": case "relistall":
if (!sender.hasPermission("auctionhouse.cmd.admin.relistall")) return ReturnType.FAILURE; if (!sender.hasPermission("auctionhouse.cmd.admin.relistall")) return ReturnType.FAILURE;
for (UUID id : AuctionHouse.getInstance().getAuctionItemManager().getItems().keySet()) { for (UUID id : instance.getAuctionItemManager().getItems().keySet()) {
if (AuctionHouse.getInstance().getAuctionItemManager().getItems().get(id).isExpired()) { if (instance.getAuctionItemManager().getItems().get(id).isExpired()) {
int relistTime = args.length == 1 ? AuctionHouse.getInstance().getAuctionItemManager().getItems().get(id).isBidItem() ? Settings.DEFAULT_AUCTION_LISTING_TIME.getInt() : Settings.DEFAULT_BIN_LISTING_TIME.getInt() : Integer.parseInt(args[1]); int relistTime = args.length == 1 ? instance.getAuctionItemManager().getItems().get(id).isBidItem() ? Settings.DEFAULT_AUCTION_LISTING_TIME.getInt() : Settings.DEFAULT_BIN_LISTING_TIME.getInt() : Integer.parseInt(args[1]);
AuctionHouse.getInstance().getAuctionItemManager().getItems().get(id).setExpiresAt(System.currentTimeMillis() + 1000L * relistTime); instance.getAuctionItemManager().getItems().get(id).setExpiresAt(System.currentTimeMillis() + 1000L * relistTime);
AuctionHouse.getInstance().getAuctionItemManager().getItems().get(id).setExpired(false); instance.getAuctionItemManager().getItems().get(id).setExpired(false);
} }
} }
AuctionHouse.getInstance().getLocale().getMessage("general.relisteditems").sendPrefixedMessage(sender); instance.getLocale().getMessage("general.relisteditems").sendPrefixedMessage(sender);
break; break;
case "clearall": case "clearall":
if (!sender.hasPermission("auctionhouse.cmd.admin.clearall")) return ReturnType.FAILURE; if (!sender.hasPermission("auctionhouse.cmd.admin.clearall")) return ReturnType.FAILURE;
// Don't tell ppl that this exists // Don't tell ppl that this exists
AuctionHouse.getInstance().getAuctionItemManager().getItems().clear(); instance.getAuctionItemManager().getItems().clear();
case "opensell": case "opensell":
if (args.length < 2) return ReturnType.FAILURE; if (args.length < 2) return ReturnType.FAILURE;
if (!sender.hasPermission("auctionhouse.cmd.admin.opensell")) return ReturnType.FAILURE; if (!sender.hasPermission("auctionhouse.cmd.admin.opensell")) return ReturnType.FAILURE;
@ -113,11 +114,11 @@ public class CommandAdmin extends AbstractCommand {
ItemStack itemToSell = PlayerHelper.getHeldItem(player).clone(); ItemStack itemToSell = PlayerHelper.getHeldItem(player).clone();
if (itemToSell.getType() == XMaterial.AIR.parseMaterial() && Settings.SELL_MENU_REQUIRES_USER_TO_HOLD_ITEM.getBoolean()) { if (itemToSell.getType() == XMaterial.AIR.parseMaterial() && Settings.SELL_MENU_REQUIRES_USER_TO_HOLD_ITEM.getBoolean()) {
AuctionHouse.getInstance().getLocale().getMessage("general.air").sendPrefixedMessage(player); instance.getLocale().getMessage("general.air").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} else { } else {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUISellItem(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()), itemToSell)); instance.getGuiManager().showGUI(player, new GUISellItem(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()), itemToSell));
AuctionHouse.getInstance().getAuctionPlayerManager().addItemToSellHolding(player.getUniqueId(), itemToSell); instance.getAuctionPlayerManager().addItemToSellHolding(player.getUniqueId(), itemToSell);
PlayerUtils.takeActiveItem(player, CompatibleHand.MAIN_HAND, itemToSell.getAmount()); PlayerUtils.takeActiveItem(player, CompatibleHand.MAIN_HAND, itemToSell.getAmount());
} }
break; break;
@ -130,12 +131,12 @@ public class CommandAdmin extends AbstractCommand {
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()))); instance.getGuiManager().showGUI(player, new GUIAuctionHouse(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId())));
break; break;
} }

View File

@ -32,19 +32,20 @@ public class CommandAuctionHouse extends AbstractCommand {
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
if (args.length == 0) { if (args.length == 0) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()))); instance.getGuiManager().showGUI(player, new GUIAuctionHouse(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId())));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
if (args.length == 1 && AuctionHouse.getInstance().getCommandManager().getSubCommands("auctionhouse").stream().noneMatch(cmd -> cmd.equalsIgnoreCase(StringUtils.join(args, ' ').trim()))) { if (args.length == 1 && instance.getCommandManager().getSubCommands("auctionhouse").stream().noneMatch(cmd -> cmd.equalsIgnoreCase(StringUtils.join(args, ' ').trim()))) {
if (args[0].equalsIgnoreCase("NaN")) return ReturnType.FAILURE; if (args[0].equalsIgnoreCase("NaN")) return ReturnType.FAILURE;
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()), StringUtils.join(args, ' ').trim())); instance.getGuiManager().showGUI(player, new GUIAuctionHouse(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()), StringUtils.join(args, ' ').trim()));
} }
} }
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
@ -52,7 +53,7 @@ public class CommandAuctionHouse extends AbstractCommand {
@Override @Override
protected List<String> onTab(CommandSender sender, String... args) { protected List<String> onTab(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
return AuctionHouse.getInstance().getCommandManager().getAllCommands().stream().filter(cmd -> cmd.getPermissionNode() == null || player.hasPermission(cmd.getPermissionNode())).map(AbstractCommand::getSyntax).collect(Collectors.toList()); return AuctionHouse.getInstance().getCommandManager().getAllCommands().stream().filter(cmd -> cmd.getPermissionNode() == null || player.hasPermission(cmd.getPermissionNode())).map(AbstractCommand::getSyntax).collect(Collectors.toList());
} }

View File

@ -35,9 +35,10 @@ public class CommandBan extends AbstractCommand {
Player player = (Player) sender; Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
final AuctionHouse instance = AuctionHouse.getInstance();
if (args.length == 0) { if (args.length == 0) {
// Open the bans menu // Open the bans menu
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIBans(player)); instance.getGuiManager().showGUI(player, new GUIBans(player));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
@ -45,7 +46,7 @@ public class CommandBan extends AbstractCommand {
return ReturnType.SYNTAX_ERROR; return ReturnType.SYNTAX_ERROR;
} }
Player target = PlayerUtils.findPlayer(args[0]); final Player target = PlayerUtils.findPlayer(args[0]);
String timeString = args[1]; String timeString = args[1];
StringBuilder reason = new StringBuilder(); StringBuilder reason = new StringBuilder();
for (int i = 2; i < args.length; i++) { for (int i = 2; i < args.length; i++) {
@ -59,7 +60,7 @@ public class CommandBan extends AbstractCommand {
// try and look for an offline player // try and look for an offline player
offlinePlayer = Bukkit.getOfflinePlayer(args[0]); offlinePlayer = Bukkit.getOfflinePlayer(args[0]);
if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore()) { if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore()) {
AuctionHouse.getInstance().getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[0]).sendPrefixedMessage(player); instance.getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[0]).sendPrefixedMessage(player);
return; return;
} }
} }
@ -67,17 +68,17 @@ public class CommandBan extends AbstractCommand {
UUID toBan = target == null ? offlinePlayer.getUniqueId() : target.getUniqueId(); UUID toBan = target == null ? offlinePlayer.getUniqueId() : target.getUniqueId();
if (!AuctionAPI.getInstance().isValidTimeString(timeString)) { if (!AuctionAPI.getInstance().isValidTimeString(timeString)) {
AuctionHouse.getInstance().getLocale().getMessage("general.invalidtimestring").sendPrefixedMessage(player); instance.getLocale().getMessage("general.invalidtimestring").sendPrefixedMessage(player);
return; return;
} }
if (reason.toString().length() == 0) { if (reason.toString().length() == 0) {
AuctionHouse.getInstance().getLocale().getMessage("bans.nobanreason").sendPrefixedMessage(player); instance.getLocale().getMessage("bans.nobanreason").sendPrefixedMessage(player);
return; return;
} }
if (AuctionHouse.getInstance().getAuctionBanManager().getBans().containsKey(toBan)) { if (instance.getAuctionBanManager().getBans().containsKey(toBan)) {
AuctionHouse.getInstance().getLocale().getMessage("bans.playeralreadybanned").processPlaceholder("player", args[0]).sendPrefixedMessage(player); instance.getLocale().getMessage("bans.playeralreadybanned").processPlaceholder("player", args[0]).sendPrefixedMessage(player);
return; return;
} }
@ -88,11 +89,11 @@ public class CommandBan extends AbstractCommand {
if (auctionBanPlayerEvent.isCancelled()) return; if (auctionBanPlayerEvent.isCancelled()) return;
AuctionBan auctionBan = new AuctionBan(toBan, reason.toString().trim(), System.currentTimeMillis() + bannedSeconds * 1000); AuctionBan auctionBan = new AuctionBan(toBan, reason.toString().trim(), System.currentTimeMillis() + bannedSeconds * 1000);
AuctionHouse.getInstance().getAuctionBanManager().addBan(auctionBan); instance.getAuctionBanManager().addBan(auctionBan);
AuctionHouse.getInstance().getLocale().getMessage("bans.bannedplayer").processPlaceholder("player", args[0]).processPlaceholder("ban_amount", TimeUtils.makeReadable(bannedSeconds * 1000)).sendPrefixedMessage(player); instance.getLocale().getMessage("bans.bannedplayer").processPlaceholder("player", args[0]).processPlaceholder("ban_amount", TimeUtils.makeReadable(bannedSeconds * 1000)).sendPrefixedMessage(player);
if (target != null) { if (target != null) {
AuctionHouse.getInstance().getLocale().getMessage("bans.remainingtime").processPlaceholder("ban_amount", TimeUtils.makeReadable(bannedSeconds * 1000)).sendPrefixedMessage(target); instance.getLocale().getMessage("bans.remainingtime").processPlaceholder("ban_amount", TimeUtils.makeReadable(bannedSeconds * 1000)).sendPrefixedMessage(target);
} }
}).execute(); }).execute();

View File

@ -25,15 +25,16 @@ public class CommandExpired extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIExpiredItems(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()))); instance.getGuiManager().showGUI(player, new GUIExpiredItems(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId())));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
@ -44,12 +45,12 @@ public class CommandExpired extends AbstractCommand {
@Override @Override
public String getSyntax() { public String getSyntax() {
return AuctionHouse.getInstance().getLocale().getMessage("commands.syntax.expired").getMessage(); return instance.getLocale().getMessage("commands.syntax.expired").getMessage();
} }
@Override @Override
public String getDescription() { public String getDescription() {
return AuctionHouse.getInstance().getLocale().getMessage("commands.description.expired").getMessage(); return instance.getLocale().getMessage("commands.description.expired").getMessage();
} }
@Override @Override

View File

@ -31,11 +31,12 @@ public class CommandFilter extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
final AuctionHouse instance = AuctionHouse.getInstance();
if (args.length == 0) { if (args.length == 0) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIFilterWhitelist(player)); instance.getGuiManager().showGUI(player, new GUIFilterWhitelist(player));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
@ -52,19 +53,19 @@ public class CommandFilter extends AbstractCommand {
ItemStack held = PlayerHelper.getHeldItem(player); ItemStack held = PlayerHelper.getHeldItem(player);
if (held.getType() == XMaterial.AIR.parseMaterial()) { if (held.getType() == XMaterial.AIR.parseMaterial()) {
AuctionHouse.getInstance().getLocale().getMessage("general.filter air").sendPrefixedMessage(player); instance.getLocale().getMessage("general.filter air").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
if (AuctionHouse.getInstance().getFilterManager().getFilteredItem(held) != null && AuctionHouse.getInstance().getFilterManager().getFilteredItem(held).getCategory() == AuctionItemCategory.valueOf(args[1].toUpperCase())) { if (instance.getFilterManager().getFilteredItem(held) != null && instance.getFilterManager().getFilteredItem(held).getCategory() == AuctionItemCategory.valueOf(args[1].toUpperCase())) {
AuctionHouse.getInstance().getLocale().getMessage("general.filteritemaddedalready").sendPrefixedMessage(player); instance.getLocale().getMessage("general.filteritemaddedalready").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
AuctionFilterItem filterItem = new AuctionFilterItem(held, AuctionItemCategory.valueOf(args[1].toUpperCase())); AuctionFilterItem filterItem = new AuctionFilterItem(held, AuctionItemCategory.valueOf(args[1].toUpperCase()));
AuctionHouse.getInstance().getFilterManager().addFilterItem(filterItem); instance.getFilterManager().addFilterItem(filterItem);
AuctionHouse.getInstance().getLocale().getMessage("general.addeditemtofilterwhitelist").processPlaceholder("item_name", AuctionAPI.getInstance().getItemName(held)).processPlaceholder("filter_category", args[1]).sendPrefixedMessage(player); instance.getLocale().getMessage("general.addeditemtofilterwhitelist").processPlaceholder("item_name", AuctionAPI.getInstance().getItemName(held)).processPlaceholder("filter_category", args[1]).sendPrefixedMessage(player);
} }
} }

View File

@ -36,16 +36,17 @@ public final class CommandMarkChest extends AbstractCommand {
if (targetBlock.getType() != XMaterial.CHEST.parseMaterial()) return ReturnType.FAILURE; if (targetBlock.getType() != XMaterial.CHEST.parseMaterial()) return ReturnType.FAILURE;
final Chest chest = (Chest) targetBlock.getState(); final Chest chest = (Chest) targetBlock.getState();
final NamespacedKey key = new NamespacedKey(AuctionHouse.getInstance(), "AuctionHouseMarkedChest"); final AuctionHouse instance = AuctionHouse.getInstance();
final NamespacedKey key = new NamespacedKey(instance, "AuctionHouseMarkedChest");
if (chest.getPersistentDataContainer().has(key, PersistentDataType.BYTE)) { if (chest.getPersistentDataContainer().has(key, PersistentDataType.BYTE)) {
chest.getPersistentDataContainer().remove(key); chest.getPersistentDataContainer().remove(key);
chest.update(true); chest.update(true);
AuctionHouse.getInstance().getLocale().getMessage("general.unmarked chest").sendPrefixedMessage(player); instance.getLocale().getMessage("general.unmarked chest").sendPrefixedMessage(player);
} else { } else {
chest.getPersistentDataContainer().set(key, PersistentDataType.BYTE, (byte) 1); chest.getPersistentDataContainer().set(key, PersistentDataType.BYTE, (byte) 1);
chest.update(true); chest.update(true);
AuctionHouse.getInstance().getLocale().getMessage("general.marked chest").sendPrefixedMessage(player); instance.getLocale().getMessage("general.marked chest").sendPrefixedMessage(player);
} }
return ReturnType.SUCCESS; return ReturnType.SUCCESS;

View File

@ -21,17 +21,18 @@ public final class CommandMiddleware {
public AbstractCommand.ReturnType handle(@NonNull final Player player) { public AbstractCommand.ReturnType handle(@NonNull final Player player) {
if (AuctionAPI.tellMigrationStatus(player)) return AbstractCommand.ReturnType.FAILURE; if (AuctionAPI.tellMigrationStatus(player)) return AbstractCommand.ReturnType.FAILURE;
final AuctionHouse instance = AuctionHouse.getInstance();
if (Settings.BLOCKED_WORLDS.getStringList().contains(player.getWorld().getName())) { if (Settings.BLOCKED_WORLDS.getStringList().contains(player.getWorld().getName())) {
AuctionHouse.getInstance().getLocale().getMessage("general.disabled in world").sendPrefixedMessage(player); instance.getLocale().getMessage("general.disabled in world").sendPrefixedMessage(player);
return AbstractCommand.ReturnType.FAILURE; return AbstractCommand.ReturnType.FAILURE;
} }
if (Settings.USE_AUCTION_CHEST_MODE.getBoolean()) { if (Settings.USE_AUCTION_CHEST_MODE.getBoolean()) {
AuctionHouse.getInstance().getLocale().getMessage("general.visit auction chest").sendPrefixedMessage(player); instance.getLocale().getMessage("general.visit auction chest").sendPrefixedMessage(player);
return AbstractCommand.ReturnType.FAILURE; return AbstractCommand.ReturnType.FAILURE;
} }
if (AuctionHouse.getInstance().getAuctionBanManager().checkAndHandleBan(player)) { if (instance.getAuctionBanManager().checkAndHandleBan(player)) {
return AbstractCommand.ReturnType.FAILURE; return AbstractCommand.ReturnType.FAILURE;
} }

View File

@ -29,11 +29,12 @@ public class CommandMinPrice extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
final AuctionHouse instance = AuctionHouse.getInstance();
if (args.length == 0) { if (args.length == 0) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIMinItemPrices(player)); instance.getGuiManager().showGUI(player, new GUIMinItemPrices(player));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
@ -42,26 +43,26 @@ public class CommandMinPrice extends AbstractCommand {
ItemStack held = PlayerHelper.getHeldItem(player); ItemStack held = PlayerHelper.getHeldItem(player);
if (held.getType() == XMaterial.AIR.parseMaterial()) { if (held.getType() == XMaterial.AIR.parseMaterial()) {
AuctionHouse.getInstance().getLocale().getMessage("general.min item price air").sendPrefixedMessage(player); instance.getLocale().getMessage("general.min item price air").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
if (AuctionHouse.getInstance().getMinItemPriceManager().getMinPrice(held.clone()) != null) { if (instance.getMinItemPriceManager().getMinPrice(held.clone()) != null) {
AuctionHouse.getInstance().getLocale().getMessage("general.min price already added").sendPrefixedMessage(player); instance.getLocale().getMessage("general.min price already added").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
if (!NumberUtils.isNumeric(args[1])) { if (!NumberUtils.isNumeric(args[1])) {
AuctionHouse.getInstance().getLocale().getMessage("general.notanumber").sendPrefixedMessage(player); instance.getLocale().getMessage("general.notanumber").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
final double price = Double.parseDouble(args[1]); final double price = Double.parseDouble(args[1]);
AuctionHouse.getInstance().getDataManager().insertMinPriceAsync(new MinItemPrice(held.clone(), price), (error, inserted) -> { instance.getDataManager().insertMinPriceAsync(new MinItemPrice(held.clone(), price), (error, inserted) -> {
if (error == null) { if (error == null) {
AuctionHouse.getInstance().getMinItemPriceManager().addItem(inserted); instance.getMinItemPriceManager().addItem(inserted);
AuctionHouse.getInstance().getLocale().getMessage("general.added min price") instance.getLocale().getMessage("general.added min price")
.processPlaceholder("item", AuctionAPI.getInstance().getItemName(inserted.getItemStack())) .processPlaceholder("item", AuctionAPI.getInstance().getItemName(inserted.getItemStack()))
.processPlaceholder("price", AuctionAPI.getInstance().formatNumber(inserted.getPrice())) .processPlaceholder("price", AuctionAPI.getInstance().formatNumber(inserted.getPrice()))
.sendPrefixedMessage(player); .sendPrefixedMessage(player);

View File

@ -23,8 +23,9 @@ public class CommandReload extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
if (AuctionAPI.tellMigrationStatus(sender)) return ReturnType.FAILURE; if (AuctionAPI.tellMigrationStatus(sender)) return ReturnType.FAILURE;
AuctionHouse.getInstance().reloadConfig(); final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&aReloaded files")).sendPrefixedMessage(sender); instance.reloadConfig();
instance.getLocale().newMessage(TextUtils.formatText("&aReloaded files")).sendPrefixedMessage(sender);
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }

View File

@ -26,21 +26,22 @@ public class CommandSearch extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
if (args.length <= 0) return ReturnType.SYNTAX_ERROR; if (args.length <= 0) return ReturnType.SYNTAX_ERROR;
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
StringBuilder builder = new StringBuilder(); final StringBuilder builder = new StringBuilder();
for (String arg : args) { for (String arg : args) {
builder.append(arg).append(" "); builder.append(arg).append(" ");
} }
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()), builder.toString().trim())); instance.getGuiManager().showGUI(player, new GUIAuctionHouse(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()), builder.toString().trim()));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }

View File

@ -48,19 +48,20 @@ public final class CommandSell extends AbstractCommand {
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
AuctionPlayer auctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()); AuctionPlayer auctionPlayer = instance.getAuctionPlayerManager().getPlayer(player.getUniqueId());
ItemStack originalItem = PlayerHelper.getHeldItem(player).clone(); ItemStack originalItem = PlayerHelper.getHeldItem(player).clone();
ItemStack itemToSell = PlayerHelper.getHeldItem(player).clone(); ItemStack itemToSell = PlayerHelper.getHeldItem(player).clone();
// check if player is at their selling limit // check if player is at their selling limit
if (auctionPlayer.isAtSellLimit()) { if (auctionPlayer.isAtSellLimit()) {
AuctionHouse.getInstance().getLocale().getMessage("general.sellinglimit").sendPrefixedMessage(player); instance.getLocale().getMessage("general.sellinglimit").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
@ -71,18 +72,18 @@ public final class CommandSell extends AbstractCommand {
} }
if (itemToSell.getType() == XMaterial.AIR.parseMaterial() && Settings.SELL_MENU_REQUIRES_USER_TO_HOLD_ITEM.getBoolean()) { if (itemToSell.getType() == XMaterial.AIR.parseMaterial() && Settings.SELL_MENU_REQUIRES_USER_TO_HOLD_ITEM.getBoolean()) {
AuctionHouse.getInstance().getLocale().getMessage("general.air").sendPrefixedMessage(player); instance.getLocale().getMessage("general.air").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} else { } else {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUISellItem(auctionPlayer, itemToSell)); instance.getGuiManager().showGUI(player, new GUISellItem(auctionPlayer, itemToSell));
AuctionHouse.getInstance().getAuctionPlayerManager().addItemToSellHolding(player.getUniqueId(), itemToSell); instance.getAuctionPlayerManager().addItemToSellHolding(player.getUniqueId(), itemToSell);
PlayerUtils.takeActiveItem(player, CompatibleHand.MAIN_HAND, itemToSell.getAmount()); PlayerUtils.takeActiveItem(player, CompatibleHand.MAIN_HAND, itemToSell.getAmount());
} }
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
if (itemToSell.getType() == XMaterial.AIR.parseMaterial()) { if (itemToSell.getType() == XMaterial.AIR.parseMaterial()) {
AuctionHouse.getInstance().getLocale().getMessage("general.air").sendPrefixedMessage(player); instance.getLocale().getMessage("general.air").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
@ -90,12 +91,12 @@ public final class CommandSell extends AbstractCommand {
if (Settings.MAKE_BLOCKED_ITEMS_A_WHITELIST.getBoolean()) { if (Settings.MAKE_BLOCKED_ITEMS_A_WHITELIST.getBoolean()) {
if (!Settings.BLOCKED_ITEMS.getStringList().contains(itemToSell.getType().name())) { if (!Settings.BLOCKED_ITEMS.getStringList().contains(itemToSell.getType().name())) {
AuctionHouse.getInstance().getLocale().getMessage("general.blockeditem").processPlaceholder("item", itemToSell.getType().name()).sendPrefixedMessage(player); instance.getLocale().getMessage("general.blockeditem").processPlaceholder("item", itemToSell.getType().name()).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
} else { } else {
if (Settings.BLOCKED_ITEMS.getStringList().contains(itemToSell.getType().name())) { if (Settings.BLOCKED_ITEMS.getStringList().contains(itemToSell.getType().name())) {
AuctionHouse.getInstance().getLocale().getMessage("general.blockeditem").processPlaceholder("item", itemToSell.getType().name()).sendPrefixedMessage(player); instance.getLocale().getMessage("general.blockeditem").processPlaceholder("item", itemToSell.getType().name()).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
} }
@ -108,7 +109,7 @@ public final class CommandSell extends AbstractCommand {
// Check for blocked names and lore // Check for blocked names and lore
for (String s : Settings.BLOCKED_ITEM_NAMES.getStringList()) { for (String s : Settings.BLOCKED_ITEM_NAMES.getStringList()) {
if (AuctionAPI.getInstance().match(s, itemName)) { if (AuctionAPI.getInstance().match(s, itemName)) {
AuctionHouse.getInstance().getLocale().getMessage("general.blockedname").sendPrefixedMessage(player); instance.getLocale().getMessage("general.blockedname").sendPrefixedMessage(player);
blocked = true; blocked = true;
} }
} }
@ -117,7 +118,7 @@ public final class CommandSell extends AbstractCommand {
for (String s : Settings.BLOCKED_ITEM_LORES.getStringList()) { for (String s : Settings.BLOCKED_ITEM_LORES.getStringList()) {
for (String line : itemLore) { for (String line : itemLore) {
if (AuctionAPI.getInstance().match(s, line)) { if (AuctionAPI.getInstance().match(s, line)) {
AuctionHouse.getInstance().getLocale().getMessage("general.blockedlore").sendPrefixedMessage(player); instance.getLocale().getMessage("general.blockedlore").sendPrefixedMessage(player);
blocked = true; blocked = true;
} }
} }
@ -194,7 +195,7 @@ public final class CommandSell extends AbstractCommand {
} }
// check buy now price null // check buy now price null
if (buyNowPrice == null) { if (buyNowPrice == null) {
AuctionHouse.getInstance().getLocale().getMessage("general.please_enter_at_least_one_number").sendPrefixedMessage(player); instance.getLocale().getMessage("general.please_enter_at_least_one_number").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
@ -204,7 +205,7 @@ public final class CommandSell extends AbstractCommand {
if (!isBiddingItem /* && buyNowPrice != null */) { if (!isBiddingItem /* && buyNowPrice != null */) {
// min item price todo fix it broke // min item price todo fix it broke
if (!AuctionAPI.getInstance().meetsMinItemPrice(isBundle, isBiddingItem, originalItem, buyNowPrice, isBiddingItem ? startingBid : 0)) { if (!AuctionAPI.getInstance().meetsMinItemPrice(isBundle, isBiddingItem, originalItem, buyNowPrice, isBiddingItem ? startingBid : 0)) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.minitemprice").processPlaceholder("price", AuctionAPI.getInstance().formatNumber(AuctionHouse.getInstance().getMinItemPriceManager().getMinPrice(originalItem).getPrice())).sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.minitemprice").processPlaceholder("price", AuctionAPI.getInstance().formatNumber(instance.getMinItemPriceManager().getMinPrice(originalItem).getPrice())).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
@ -215,7 +216,7 @@ public final class CommandSell extends AbstractCommand {
if (isBiddingItem && /* buyNowPrice != null && */ startingBid != null) { if (isBiddingItem && /* buyNowPrice != null && */ startingBid != null) {
// min item price todo fix it broke // min item price todo fix it broke
if (!AuctionAPI.getInstance().meetsMinItemPrice(isBundle, isBiddingItem, originalItem, buyNowPrice, isBiddingItem ? startingBid : 0)) { if (!AuctionAPI.getInstance().meetsMinItemPrice(isBundle, isBiddingItem, originalItem, buyNowPrice, isBiddingItem ? startingBid : 0)) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.minitemprice").processPlaceholder("price", AuctionAPI.getInstance().formatNumber(AuctionHouse.getInstance().getMinItemPriceManager().getMinPrice(originalItem).getPrice())).sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.minitemprice").processPlaceholder("price", AuctionAPI.getInstance().formatNumber(instance.getMinItemPriceManager().getMinPrice(originalItem).getPrice())).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
@ -223,24 +224,24 @@ public final class CommandSell extends AbstractCommand {
// check the starting bid values // check the starting bid values
if (startingBid < Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()) { if (startingBid < Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.minstartingprice").processPlaceholder("price", Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()).sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.minstartingprice").processPlaceholder("price", Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
if (startingBid > Settings.MAX_AUCTION_START_PRICE.getDouble()) { if (startingBid > Settings.MAX_AUCTION_START_PRICE.getDouble()) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.maxstartingprice").processPlaceholder("price", Settings.MAX_AUCTION_START_PRICE.getDouble()).sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.maxstartingprice").processPlaceholder("price", Settings.MAX_AUCTION_START_PRICE.getDouble()).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
// if present check the bid increment pricing // if present check the bid increment pricing
if (bidIncrement != null) { if (bidIncrement != null) {
if (bidIncrement < Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()) { if (bidIncrement < Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.minbidincrementprice").processPlaceholder("price", Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()).sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.minbidincrementprice").processPlaceholder("price", Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble()).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
if (bidIncrement > Settings.MAX_AUCTION_INCREMENT_PRICE.getDouble()) { if (bidIncrement > Settings.MAX_AUCTION_INCREMENT_PRICE.getDouble()) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.maxbidincrementprice").processPlaceholder("price", Settings.MAX_AUCTION_START_PRICE.getDouble()).sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.maxbidincrementprice").processPlaceholder("price", Settings.MAX_AUCTION_START_PRICE.getDouble()).sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
} else { } else {
@ -249,7 +250,7 @@ public final class CommandSell extends AbstractCommand {
// check if the starting bid is not higher than the buy now // check if the starting bid is not higher than the buy now
if (Settings.BASE_PRICE_MUST_BE_HIGHER_THAN_BID_START.getBoolean() && startingBid > buyNowPrice && !(buyNowPrice <= -1)) { if (Settings.BASE_PRICE_MUST_BE_HIGHER_THAN_BID_START.getBoolean() && startingBid > buyNowPrice && !(buyNowPrice <= -1)) {
AuctionHouse.getInstance().getLocale().getMessage("pricing.basepricetoolow").sendPrefixedMessage(player); instance.getLocale().getMessage("pricing.basepricetoolow").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
} }
@ -263,7 +264,7 @@ public final class CommandSell extends AbstractCommand {
} else { } else {
if (isBundle) { if (isBundle) {
if (NBTEditor.contains(itemToSell, "AuctionBundleItem")) { if (NBTEditor.contains(itemToSell, "AuctionBundleItem")) {
AuctionHouse.getInstance().getLocale().getMessage("general.cannotsellbundleditem").sendPrefixedMessage(player); instance.getLocale().getMessage("general.cannotsellbundleditem").sendPrefixedMessage(player);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
@ -286,7 +287,7 @@ public final class CommandSell extends AbstractCommand {
} }
if (isBundle) { if (isBundle) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIBundleCreation( instance.getGuiManager().showGUI(player, new GUIBundleCreation(
auctionPlayer, auctionPlayer,
allowedTime, allowedTime,
buyNowAllow, buyNowAllow,
@ -332,7 +333,7 @@ public final class CommandSell extends AbstractCommand {
boolean finalPartialBuy = partialBuy; boolean finalPartialBuy = partialBuy;
boolean finalIsBundle = isBundle; boolean finalIsBundle = isBundle;
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIListingConfirm(player, auctionedItem, result -> { instance.getGuiManager().showGUI(player, new GUIListingConfirm(player, auctionedItem, result -> {
if (!result) { if (!result) {
player.closeInventory(); player.closeInventory();
return; return;
@ -356,7 +357,7 @@ public final class CommandSell extends AbstractCommand {
player.closeInventory(); player.closeInventory();
if (Settings.OPEN_MAIN_AUCTION_HOUSE_AFTER_MENU_LIST.getBoolean()) { if (Settings.OPEN_MAIN_AUCTION_HOUSE_AFTER_MENU_LIST.getBoolean()) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()))); instance.getGuiManager().showGUI(player, new GUIAuctionHouse(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId())));
} }
})); }));
} else { } else {

View File

@ -32,17 +32,18 @@ public final class CommandSellDev extends AbstractCommand {
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
AuctionPlayer auctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()); AuctionPlayer auctionPlayer = instance.getAuctionPlayerManager().getPlayer(player.getUniqueId());
if (args.length == 0) if (args.length == 0)
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUISellListingType(auctionPlayer, selected -> { instance.getGuiManager().showGUI(player, new GUISellListingType(auctionPlayer, selected -> {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUISellPlaceItem(auctionPlayer, GUISellPlaceItem.ViewMode.SINGLE_ITEM, selected)); instance.getGuiManager().showGUI(player, new GUISellPlaceItem(auctionPlayer, GUISellPlaceItem.ViewMode.SINGLE_ITEM, selected));
})); }));
if (args.length == 1) { if (args.length == 1) {
@ -68,13 +69,17 @@ public final class CommandSellDev extends AbstractCommand {
@Override @Override
protected List<String> onTab(CommandSender sender, String... args) { protected List<String> onTab(CommandSender sender, String... args) {
if (args.length == 1) final int length = args.length;
return Arrays.asList(AuctionHouse.getInstance().getLocale().getMessage("commands.sell.args.suggestion one").getMessage().split(" ")); switch (length) {
if (args.length == 2) case 1:
return Arrays.asList(AuctionHouse.getInstance().getLocale().getMessage("commands.sell.args.suggestion two").getMessage().split(" ")); return Arrays.asList(AuctionHouse.getInstance().getLocale().getMessage("commands.sell.args.suggestion one").getMessage().split(" "));
if (args.length == 3) case 2:
return Arrays.asList(AuctionHouse.getInstance().getLocale().getMessage("commands.sell.args.suggestion three").getMessage().split(" ")); return Arrays.asList(AuctionHouse.getInstance().getLocale().getMessage("commands.sell.args.suggestion two").getMessage().split(" "));
return null; case 3:
return Arrays.asList(AuctionHouse.getInstance().getLocale().getMessage("commands.sell.args.suggestion three").getMessage().split(" "));
default:
return null;
}
} }
@Override @Override

View File

@ -29,7 +29,8 @@ public class CommandSettings extends AbstractCommand {
Player player = (Player) sender; Player player = (Player) sender;
if (AuctionAPI.tellMigrationStatus(player)) return ReturnType.FAILURE; if (AuctionAPI.tellMigrationStatus(player)) return ReturnType.FAILURE;
AuctionHouse.getInstance().getGuiManager().showGUI(player, new PluginConfigGui(AuctionHouse.getInstance(), AuctionHouse.getInstance().getLocale().getMessage("general.prefix").getMessage())); final AuctionHouse instance = AuctionHouse.getInstance();
instance.getGuiManager().showGUI(player, new PluginConfigGui(instance, instance.getLocale().getMessage("general.prefix").getMessage()));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }

View File

@ -26,31 +26,32 @@ public class CommandStats extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
final AuctionPlayer user = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()); final AuctionHouse instance = AuctionHouse.getInstance();
final AuctionPlayer user = instance.getAuctionPlayerManager().getPlayer(player.getUniqueId());
if (user == null) { if (user == null) {
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
if (args.length == 0) { if (args.length == 0) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIStatisticViewSelect(user)); instance.getGuiManager().showGUI(player, new GUIStatisticViewSelect(user));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }
final Player target = Bukkit.getPlayerExact(args[0]); final Player target = Bukkit.getPlayerExact(args[0]);
if (target == null) { if (target == null) {
AuctionHouse.getInstance().getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[0]).sendPrefixedMessage(sender); instance.getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[0]).sendPrefixedMessage(sender);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
final AuctionPlayer targetAuctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(target.getUniqueId()); final AuctionPlayer targetAuctionPlayer = instance.getAuctionPlayerManager().getPlayer(target.getUniqueId());
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIStatisticTarget(user, targetAuctionPlayer)); instance.getGuiManager().showGUI(player, new GUIStatisticTarget(user, targetAuctionPlayer));
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }

View File

@ -9,6 +9,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.List; import java.util.List;
import java.util.UUID;
/** /**
* The current file has been created by Kiran Hart * The current file has been created by Kiran Hart
@ -25,16 +26,17 @@ public class CommandToggleListInfo extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
final UUID playerUUID = player.getUniqueId();
if (AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()) == null) { final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender()); if (instance.getAuctionPlayerManager().getPlayer(playerUUID) == null) {
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(new AuctionPlayer(player)); instance.getLocale().newMessage(TextUtils.formatText("&cCould not find auction player instance for&f: &e" + player.getName() + "&c creating one now.")).sendPrefixedMessage(Bukkit.getConsoleSender());
instance.getAuctionPlayerManager().addPlayer(new AuctionPlayer(player));
} }
AuctionPlayer auctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()); final AuctionPlayer auctionPlayer = instance.getAuctionPlayerManager().getPlayer(playerUUID);
auctionPlayer.setShowListingInfo(!auctionPlayer.isShowListingInfo()); auctionPlayer.setShowListingInfo(!auctionPlayer.isShowListingInfo());
AuctionHouse.getInstance().getLocale().getMessage("general.toggled listing." + (auctionPlayer.isShowListingInfo() ? "on" : "off")).sendPrefixedMessage(player); instance.getLocale().getMessage("general.toggled listing." + (auctionPlayer.isShowListingInfo() ? "on" : "off")).sendPrefixedMessage(player);
return ReturnType.SUCCESS; return ReturnType.SUCCESS;
} }

View File

@ -24,14 +24,15 @@ public class CommandTransactions extends AbstractCommand {
@Override @Override
protected ReturnType runCommand(CommandSender sender, String... args) { protected ReturnType runCommand(CommandSender sender, String... args) {
Player player = (Player) sender; final Player player = (Player) sender;
if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE; if (CommandMiddleware.handle(player) == ReturnType.FAILURE) return ReturnType.FAILURE;
final AuctionHouse instance = AuctionHouse.getInstance();
if (Settings.RESTRICT_ALL_TRANSACTIONS_TO_PERM.getBoolean() && !player.hasPermission("auctionhouse.transactions.viewall")) { if (Settings.RESTRICT_ALL_TRANSACTIONS_TO_PERM.getBoolean() && !player.hasPermission("auctionhouse.transactions.viewall")) {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUITransactionList(player, false)); instance.getGuiManager().showGUI(player, new GUITransactionList(player, false));
} else { } else {
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUITransactionType(player)); instance.getGuiManager().showGUI(player, new GUITransactionType(player));
} }
return ReturnType.SUCCESS; return ReturnType.SUCCESS;

View File

@ -30,26 +30,27 @@ public class CommandUnban extends AbstractCommand {
if (args.length != 1) return ReturnType.SYNTAX_ERROR; if (args.length != 1) return ReturnType.SYNTAX_ERROR;
if (AuctionAPI.tellMigrationStatus(sender)) return ReturnType.FAILURE; if (AuctionAPI.tellMigrationStatus(sender)) return ReturnType.FAILURE;
Player target = PlayerUtils.findPlayer(args[0]); final Player target = PlayerUtils.findPlayer(args[0]);
OfflinePlayer offlinePlayer = null; OfflinePlayer offlinePlayer = null;
final AuctionHouse instance = AuctionHouse.getInstance();
if (target == null) { if (target == null) {
offlinePlayer = Bukkit.getOfflinePlayer(args[0]); offlinePlayer = Bukkit.getOfflinePlayer(args[0]);
if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore()) { if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore()) {
AuctionHouse.getInstance().getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[0]).sendPrefixedMessage(sender); instance.getLocale().getMessage("general.playernotfound").processPlaceholder("player", args[0]).sendPrefixedMessage(sender);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
} }
UUID toUnBan = target == null ? offlinePlayer.getUniqueId() : target.getUniqueId(); UUID toUnBan = target == null ? offlinePlayer.getUniqueId() : target.getUniqueId();
if (!AuctionHouse.getInstance().getAuctionBanManager().getBans().containsKey(toUnBan)) { if (!instance.getAuctionBanManager().getBans().containsKey(toUnBan)) {
AuctionHouse.getInstance().getLocale().getMessage("bans.playernotbanned").processPlaceholder("player", args[0]).sendPrefixedMessage(sender); instance.getLocale().getMessage("bans.playernotbanned").processPlaceholder("player", args[0]).sendPrefixedMessage(sender);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
AuctionHouse.getInstance().getAuctionBanManager().removeBan(toUnBan); instance.getAuctionBanManager().removeBan(toUnBan);
AuctionHouse.getInstance().getLocale().getMessage("bans.playerunbanned").processPlaceholder("player", args[0]).sendPrefixedMessage(sender); instance.getLocale().getMessage("bans.playerunbanned").processPlaceholder("player", args[0]).sendPrefixedMessage(sender);
if (target != null) { if (target != null) {
AuctionHouse.getInstance().getLocale().getMessage("bans.unbanned").sendPrefixedMessage(target); AuctionHouse.getInstance().getLocale().getMessage("bans.unbanned").sendPrefixedMessage(target);
} }

View File

@ -41,22 +41,23 @@ public final class CommandUpload extends AbstractCommand {
if (!args[0].equalsIgnoreCase("-confirm")) return ReturnType.FAILURE; if (!args[0].equalsIgnoreCase("-confirm")) return ReturnType.FAILURE;
DatabaseConnector databaseConnector = new SQLiteConnector(AuctionHouse.getInstance()); final AuctionHouse instance = AuctionHouse.getInstance();
DataManager manager = new DataManager(databaseConnector, AuctionHouse.getInstance(), null); final DatabaseConnector databaseConnector = new SQLiteConnector(instance);
final DataManager manager = new DataManager(databaseConnector, instance, null);
manager.getItems((error, items) -> { manager.getItems((error, items) -> {
if (error == null) if (error == null)
items.forEach(item -> AuctionHouse.getInstance().getDataManager().insertAuctionAsync(item, null)); items.forEach(item -> instance.getDataManager().insertAuctionAsync(item, null));
}); });
manager.getAdminLogs((error, logs) -> { manager.getAdminLogs((error, logs) -> {
if (error == null) if (error == null)
logs.forEach(log -> AuctionHouse.getInstance().getDataManager().insertLogAsync(log)); logs.forEach(log -> instance.getDataManager().insertLogAsync(log));
}); });
manager.getTransactions((error, transactions) -> { manager.getTransactions((error, transactions) -> {
if (error == null) if (error == null)
transactions.forEach(transaction -> AuctionHouse.getInstance().getDataManager().insertTransactionAsync(transaction, null)); transactions.forEach(transaction -> instance.getDataManager().insertTransactionAsync(transaction, null));
}); });
return ReturnType.SUCCESS; return ReturnType.SUCCESS;

View File

@ -306,6 +306,7 @@ public class DataManager extends DataManagerAbstract {
public void insertAuction(AuctionedItem item, Callback<AuctionedItem> callback) { public void insertAuction(AuctionedItem item, Callback<AuctionedItem> callback) {
this.databaseConnector.connect(connection -> { this.databaseConnector.connect(connection -> {
try (PreparedStatement statement = connection.prepareStatement("INSERT INTO " + this.getTablePrefix() + "auctions(id, owner, highest_bidder, owner_name, highest_bidder_name, category, base_price, bid_start_price, bid_increment_price, current_price, expired, expires_at, item_material, item_name, item_lore, item_enchants, item, listed_world, infinite, allow_partial_buys) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { try (PreparedStatement statement = connection.prepareStatement("INSERT INTO " + this.getTablePrefix() + "auctions(id, owner, highest_bidder, owner_name, highest_bidder_name, category, base_price, bid_start_price, bid_increment_price, current_price, expired, expires_at, item_material, item_name, item_lore, item_enchants, item, listed_world, infinite, allow_partial_buys) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
final AuctionAPI api = AuctionAPI.getInstance();
PreparedStatement fetch = connection.prepareStatement("SELECT * FROM " + this.getTablePrefix() + "auctions WHERE id = ?"); PreparedStatement fetch = connection.prepareStatement("SELECT * FROM " + this.getTablePrefix() + "auctions WHERE id = ?");
fetch.setString(1, item.getId().toString()); fetch.setString(1, item.getId().toString());
@ -322,9 +323,9 @@ public class DataManager extends DataManagerAbstract {
statement.setBoolean(11, item.isExpired()); statement.setBoolean(11, item.isExpired());
statement.setLong(12, item.getExpiresAt()); statement.setLong(12, item.getExpiresAt());
statement.setString(13, item.getItem().getType().name()); statement.setString(13, item.getItem().getType().name());
statement.setString(14, AuctionAPI.getInstance().getItemName(item.getItem())); statement.setString(14, api.getItemName(item.getItem()));
statement.setString(15, AuctionAPI.getInstance().serializeLines(AuctionAPI.getInstance().getItemLore(item.getItem()))); statement.setString(15, api.serializeLines(api.getItemLore(item.getItem())));
statement.setString(16, AuctionAPI.getInstance().serializeLines(AuctionAPI.getInstance().getItemEnchantments(item.getItem()))); statement.setString(16, api.serializeLines(api.getItemEnchantments(item.getItem())));
statement.setString(17, AuctionAPI.encodeItem(item.getItem())); statement.setString(17, AuctionAPI.encodeItem(item.getItem()));
statement.setString(18, item.getListedWorld()); statement.setString(18, item.getListedWorld());
statement.setBoolean(19, item.isInfinite()); statement.setBoolean(19, item.isInfinite());

View File

@ -38,12 +38,13 @@ public final class GUIMinItemPrices extends AbstractPlaceholderGui {
reset(); reset();
pages = (int) Math.max(1, Math.ceil(this.minPrices.size() / (double) 45)); pages = (int) Math.max(1, Math.ceil(this.minPrices.size() / (double) 45));
setPrevPage(5, 3, new TItemBuilder(Objects.requireNonNull(Settings.GUI_BACK_BTN_ITEM.getMaterial().parseMaterial())).setName(Settings.GUI_BACK_BTN_NAME.getString()).setLore(Settings.GUI_BACK_BTN_LORE.getStringList()).toItemStack()); setPrevPage(5, 3, new TItemBuilder(Objects.requireNonNull(Settings.GUI_BACK_BTN_ITEM.getMaterial().parseMaterial())).setName(Settings.GUI_BACK_BTN_NAME.getString()).setLore(Settings.GUI_BACK_BTN_LORE.getStringList()).toItemStack());
setNextPage(5, 5, new TItemBuilder(Objects.requireNonNull(Settings.GUI_NEXT_BTN_ITEM.getMaterial().parseMaterial())).setName(Settings.GUI_NEXT_BTN_NAME.getString()).setLore(Settings.GUI_NEXT_BTN_LORE.getStringList()).toItemStack()); setNextPage(5, 5, new TItemBuilder(Objects.requireNonNull(Settings.GUI_NEXT_BTN_ITEM.getMaterial().parseMaterial())).setName(Settings.GUI_NEXT_BTN_NAME.getString()).setLore(Settings.GUI_NEXT_BTN_LORE.getStringList()).toItemStack());
setOnPage(e -> draw()); setOnPage(e -> draw());
int slot = 0; int slot = 0;
List<MinItemPrice> data = this.minPrices.stream().skip((page - 1) * 45L).limit(45).collect(Collectors.toList()); final List<MinItemPrice> data = this.minPrices.stream().skip((page - 1) * 45L).limit(45).collect(Collectors.toList());
for (MinItemPrice minItemPrice : data) { for (MinItemPrice minItemPrice : data) {

View File

@ -45,35 +45,36 @@ public final class GUIStatisticSelf extends AbstractPlaceholderGui {
} }
private void draw() { private void draw() {
final AuctionHouse instance = AuctionHouse.getInstance();
// created auction // created auction
setItem(1, 1, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_CREATED_AUCTION_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_AUCTION_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_AUCTION_LORE.getStringList(), new HashMap<String, Object>() {{ setItem(1, 1, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_CREATED_AUCTION_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_AUCTION_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_AUCTION_LORE.getStringList(), new HashMap<String, Object>() {{
put("%created_auctions%", (int) AuctionHouse.getInstance().getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.CREATED_AUCTION)); put("%created_auctions%", (int) instance.getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.CREATED_AUCTION));
}})); }}));
// sold auction // sold auction
setItem(3, 1, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_SOLD_AUCTION_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_AUCTION_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_AUCTION_LORE.getStringList(), new HashMap<String, Object>() {{ setItem(3, 1, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_SOLD_AUCTION_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_AUCTION_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_AUCTION_LORE.getStringList(), new HashMap<String, Object>() {{
put("%sold_auctions%", (int) AuctionHouse.getInstance().getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.SOLD_AUCTION)); put("%sold_auctions%", (int) instance.getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.SOLD_AUCTION));
}})); }}));
// created bin // created bin
setItem(1, 4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_CREATED_BIN_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_BIN_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_BIN_LORE.getStringList(), new HashMap<String, Object>() {{ setItem(1, 4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_CREATED_BIN_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_BIN_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_CREATED_BIN_LORE.getStringList(), new HashMap<String, Object>() {{
put("%created_bins%", (int) AuctionHouse.getInstance().getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.CREATED_BIN)); put("%created_bins%", (int) instance.getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.CREATED_BIN));
}})); }}));
// sold bin // sold bin
setItem(3, 4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_SOLD_BIN_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_BIN_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_BIN_LORE.getStringList(), new HashMap<String, Object>() {{ setItem(3, 4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_SOLD_BIN_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_BIN_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_SOLD_BIN_LORE.getStringList(), new HashMap<String, Object>() {{
put("%sold_bins%", (int) AuctionHouse.getInstance().getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.SOLD_BIN)); put("%sold_bins%", (int) instance.getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.SOLD_BIN));
}})); }}));
// money earned // money earned
setItem(1, 7, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_MONEY_EARNED_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_EARNED_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_EARNED_LORE.getStringList(), new HashMap<String, Object>() {{ setItem(1, 7, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_MONEY_EARNED_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_EARNED_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_EARNED_LORE.getStringList(), new HashMap<String, Object>() {{
put("%money_earned%", AuctionAPI.getInstance().formatNumber(AuctionHouse.getInstance().getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.MONEY_EARNED))); put("%money_earned%", AuctionAPI.getInstance().formatNumber(instance.getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.MONEY_EARNED)));
}})); }}));
// money spent // money spent
setItem(3, 7, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_MONEY_SPENT_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_SPENT_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_SPENT_LORE.getStringList(), new HashMap<String, Object>() {{ setItem(3, 7, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_STATS_SELF_ITEMS_MONEY_SPENT_ITEM.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_SPENT_NAME.getString(), Settings.GUI_STATS_SELF_ITEMS_MONEY_SPENT_LORE.getStringList(), new HashMap<String, Object>() {{
put("%money_spent%", AuctionAPI.getInstance().formatNumber(AuctionHouse.getInstance().getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.MONEY_SPENT))); put("%money_spent%", AuctionAPI.getInstance().formatNumber(instance.getAuctionStatisticManager().getStatisticByPlayer(player.getUniqueId(), AuctionStatisticType.MONEY_SPENT)));
}})); }}));
setButton(5, 4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_CLOSE_BTN_ITEM.getString(), Settings.GUI_CLOSE_BTN_NAME.getString(), Settings.GUI_CLOSE_BTN_LORE.getStringList(), null), e -> { setButton(5, 4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_CLOSE_BTN_ITEM.getString(), Settings.GUI_CLOSE_BTN_NAME.getString(), Settings.GUI_CLOSE_BTN_LORE.getStringList(), null), e -> {

View File

@ -34,12 +34,13 @@ public class GUITransactionList extends AbstractPlaceholderGui {
public GUITransactionList(Player player, boolean showAll) { public GUITransactionList(Player player, boolean showAll) {
super(player); super(player);
this.player = player; this.player = player;
this.auctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(this.player.getUniqueId()); final AuctionHouse instance = AuctionHouse.getInstance();
this.auctionPlayer = instance.getAuctionPlayerManager().getPlayer(this.player.getUniqueId());
this.showAll = showAll; this.showAll = showAll;
if (showAll) if (showAll)
this.transactions = new ArrayList<>(AuctionHouse.getInstance().getTransactionManager().getTransactions().values()); this.transactions = new ArrayList<>(instance.getTransactionManager().getTransactions().values());
else else
this.transactions = AuctionHouse.getInstance().getTransactionManager().getTransactions().values().stream().filter(transaction -> transaction.getSeller().equals(player.getUniqueId()) || transaction.getBuyer().equals(player.getUniqueId())).collect(Collectors.toList()); this.transactions = instance.getTransactionManager().getTransactions().values().stream().filter(transaction -> transaction.getSeller().equals(player.getUniqueId()) || transaction.getBuyer().equals(player.getUniqueId())).collect(Collectors.toList());
setTitle(TextUtils.formatText(showAll ? Settings.GUI_TRANSACTIONS_TITLE_ALL.getString() : Settings.GUI_TRANSACTIONS_TITLE.getString())); setTitle(TextUtils.formatText(showAll ? Settings.GUI_TRANSACTIONS_TITLE_ALL.getString() : Settings.GUI_TRANSACTIONS_TITLE.getString()));
setRows(6); setRows(6);

View File

@ -39,10 +39,11 @@ public final class GUITransactionType extends AbstractPlaceholderGui {
} }
private void draw() { private void draw() {
final AuctionHouse instance = AuctionHouse.getInstance();
// (player.hasPermission("auctionhouse.admin") || player.isOp()) // (player.hasPermission("auctionhouse.admin") || player.isOp())
setButton(11, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_TRANSACTIONS_TYPE_ITEMS_ALL_TRANSACTIONS_ITEM.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_ALL_TRANSACTIONS_NAME.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_ALL_TRANSACTIONS_LORE.getStringList(), null), e -> { setButton(11, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_TRANSACTIONS_TYPE_ITEMS_ALL_TRANSACTIONS_ITEM.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_ALL_TRANSACTIONS_NAME.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_ALL_TRANSACTIONS_LORE.getStringList(), null), e -> {
if (Settings.RESTRICT_ALL_TRANSACTIONS_TO_PERM.getBoolean() && !e.player.hasPermission("auctionhouse.transactions.viewall")) { if (Settings.RESTRICT_ALL_TRANSACTIONS_TO_PERM.getBoolean() && !e.player.hasPermission("auctionhouse.transactions.viewall")) {
AuctionHouse.getInstance().getLocale().getMessage("commands.no_permission").sendPrefixedMessage(e.player); instance.getLocale().getMessage("commands.no_permission").sendPrefixedMessage(e.player);
return; return;
} }
@ -56,7 +57,7 @@ public final class GUITransactionType extends AbstractPlaceholderGui {
if (player.isOp() || player.hasPermission("auctionhouse.admin")) { if (player.isOp() || player.hasPermission("auctionhouse.admin")) {
setButton(3, 8, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_TRANSACTIONS_TYPE_ITEMS_DELETE_ITEM.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_DELETE_NAME.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_DELETE_LORE.getStringList(), null), e -> { setButton(3, 8, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_TRANSACTIONS_TYPE_ITEMS_DELETE_ITEM.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_DELETE_NAME.getString(), Settings.GUI_TRANSACTIONS_TYPE_ITEMS_DELETE_LORE.getStringList(), null), e -> {
e.gui.close(); e.gui.close();
PlayerChatInput.PlayerChatInputBuilder<Long> builder = new PlayerChatInput.PlayerChatInputBuilder<>(AuctionHouse.getInstance(), e.player); PlayerChatInput.PlayerChatInputBuilder<Long> builder = new PlayerChatInput.PlayerChatInputBuilder<>(instance, e.player);
builder.isValidInput((p, str) -> { builder.isValidInput((p, str) -> {
String[] parts = ChatColor.stripColor(str).split(" "); String[] parts = ChatColor.stripColor(str).split(" ");
if (parts.length == 2) { if (parts.length == 2) {
@ -64,8 +65,8 @@ public final class GUITransactionType extends AbstractPlaceholderGui {
} }
return false; return false;
}); });
builder.sendValueMessage(TextUtils.formatText(AuctionHouse.getInstance().getLocale().getMessage("prompts.enter deletion range").getMessage())); builder.sendValueMessage(TextUtils.formatText(instance.getLocale().getMessage("prompts.enter deletion range").getMessage()));
builder.invalidInputMessage(TextUtils.formatText(AuctionHouse.getInstance().getLocale().getMessage("prompts.enter valid deletion range").getMessage())); builder.invalidInputMessage(TextUtils.formatText(instance.getLocale().getMessage("prompts.enter valid deletion range").getMessage()));
builder.toCancel("cancel"); builder.toCancel("cancel");
builder.onCancel(p -> e.manager.showGUI(e.player, new GUITransactionType(e.player))); builder.onCancel(p -> e.manager.showGUI(e.player, new GUITransactionType(e.player)));
builder.setValue((p, value) -> AuctionAPI.toTicks(ChatColor.stripColor(value))); builder.setValue((p, value) -> AuctionAPI.toTicks(ChatColor.stripColor(value)));
@ -73,10 +74,10 @@ public final class GUITransactionType extends AbstractPlaceholderGui {
int seconds = value.intValue(); int seconds = value.intValue();
AuctionHouse.newChain().async(() -> { AuctionHouse.newChain().async(() -> {
AuctionHouse.getInstance().getLocale().getMessage("general.transaction delete begin").sendPrefixedMessage(e.player); instance.getLocale().getMessage("general.transaction delete begin").sendPrefixedMessage(e.player);
List<UUID> toRemove = new ArrayList<>(); List<UUID> toRemove = new ArrayList<>();
Set<Map.Entry<UUID, Transaction>> entrySet = AuctionHouse.getInstance().getTransactionManager().getTransactions().entrySet(); Set<Map.Entry<UUID, Transaction>> entrySet = instance.getTransactionManager().getTransactions().entrySet();
Iterator<Map.Entry<UUID, Transaction>> entryIterator = entrySet.iterator(); Iterator<Map.Entry<UUID, Transaction>> entryIterator = entrySet.iterator();
while (entryIterator.hasNext()) { while (entryIterator.hasNext()) {
@ -89,8 +90,8 @@ public final class GUITransactionType extends AbstractPlaceholderGui {
} }
} }
AuctionHouse.getInstance().getDataManager().deleteTransactions(toRemove); instance.getDataManager().deleteTransactions(toRemove);
AuctionHouse.getInstance().getLocale().getMessage("general.deleted transactions").processPlaceholder("deleted_transactions", toRemove.size()).sendPrefixedMessage(e.player); instance.getLocale().getMessage("general.deleted transactions").processPlaceholder("deleted_transactions", toRemove.size()).sendPrefixedMessage(e.player);
}).execute(); }).execute();
}); });

View File

@ -21,7 +21,7 @@ import java.util.stream.Collectors;
public class ConfigurationItemHelper { public class ConfigurationItemHelper {
public static ItemStack createConfigurationItem(ItemStack stack, String title, List<String> lore, HashMap<String, Object> replacements, String... nbtData) { public static ItemStack createConfigurationItem(ItemStack stack, String title, List<String> lore, HashMap<String, Object> replacements, String... nbtData) {
ItemMeta meta = stack.getItemMeta(); final ItemMeta meta = stack.getItemMeta();
assert meta != null; assert meta != null;
meta.setDisplayName(TextUtils.formatText(title)); meta.setDisplayName(TextUtils.formatText(title));

View File

@ -23,16 +23,17 @@ public class MaterialCategorizer {
if (material.isBlock()) return AuctionItemCategory.BLOCKS; if (material.isBlock()) return AuctionItemCategory.BLOCKS;
if (material == XMaterial.ENCHANTED_BOOK.parseMaterial()) return AuctionItemCategory.ENCHANTS; if (material == XMaterial.ENCHANTED_BOOK.parseMaterial()) return AuctionItemCategory.ENCHANTS;
final String materialName = material.name();
// Armor filter // Armor filter
if (material.name().endsWith("_HELMET") || material.name().endsWith("_CHESTPLATE") || material.name().endsWith("_LEGGINGS") || material.name().endsWith("_BOOTS")) if (materialName.endsWith("_HELMET") || materialName.endsWith("_CHESTPLATE") || materialName.endsWith("_LEGGINGS") || materialName.endsWith("_BOOTS"))
return AuctionItemCategory.ARMOR; return AuctionItemCategory.ARMOR;
// Weapon Filter // Weapon Filter
if (material.name().endsWith("_SWORD") || material.name().equals("BOW") || material.name().equals("TRIDENT") || material.name().equals("CROSSBOW")) if (materialName.endsWith("_SWORD") || materialName.equals("BOW") || materialName.equals("TRIDENT") || materialName.equals("CROSSBOW"))
return AuctionItemCategory.WEAPONS; return AuctionItemCategory.WEAPONS;
// Tool Filter // Tool Filter
if (material.name().endsWith("_AXE") || material.name().endsWith("_PICKAXE") || material.name().endsWith("_HOE") || material.name().endsWith("SHOVEL")) if (materialName.endsWith("_AXE") || materialName.endsWith("_PICKAXE") || materialName.endsWith("_HOE") || materialName.endsWith("SHOVEL"))
return AuctionItemCategory.TOOLS; return AuctionItemCategory.TOOLS;
return AuctionItemCategory.MISC; return AuctionItemCategory.MISC;
} }

View File

@ -7,10 +7,12 @@ import ca.tweetzy.auctionhouse.api.events.AuctionBidEvent;
import ca.tweetzy.auctionhouse.api.events.AuctionEndEvent; import ca.tweetzy.auctionhouse.api.events.AuctionEndEvent;
import ca.tweetzy.auctionhouse.api.events.AuctionStartEvent; import ca.tweetzy.auctionhouse.api.events.AuctionStartEvent;
import ca.tweetzy.auctionhouse.auction.AuctionStatistic; import ca.tweetzy.auctionhouse.auction.AuctionStatistic;
import ca.tweetzy.auctionhouse.auction.AuctionedItem;
import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType;
import ca.tweetzy.auctionhouse.auction.enums.AuctionStatisticType; import ca.tweetzy.auctionhouse.auction.enums.AuctionStatisticType;
import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.auctionhouse.settings.Settings;
import ca.tweetzy.auctionhouse.transaction.Transaction; import ca.tweetzy.auctionhouse.transaction.Transaction;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -27,19 +29,22 @@ public class AuctionListeners implements Listener {
@EventHandler @EventHandler
public void onAuctionStart(AuctionStartEvent e) { public void onAuctionStart(AuctionStartEvent e) {
// new stat system // new stat system
new AuctionStatistic(e.getSeller().getUniqueId(), e.getAuctionItem().isBidItem() ? AuctionStatisticType.CREATED_AUCTION : AuctionStatisticType.CREATED_BIN, 1).store(null); final Player seller = e.getSeller();
final AuctionedItem auctionedItem = e.getAuctionedItem();
new AuctionStatistic(seller.getUniqueId(), auctionedItem.isBidItem() ? AuctionStatisticType.CREATED_AUCTION : AuctionStatisticType.CREATED_BIN, 1).store(null);
if (Settings.DISCORD_ENABLED.getBoolean() && Settings.DISCORD_ALERT_ON_AUCTION_START.getBoolean()) { if (Settings.DISCORD_ENABLED.getBoolean() && Settings.DISCORD_ALERT_ON_AUCTION_START.getBoolean()) {
AuctionHouse.newChain().async(() -> { AuctionHouse.newChain().async(() -> {
final AuctionAPI instance = AuctionAPI.getInstance();
Settings.DISCORD_WEBHOOKS.getStringList().forEach(hook -> { Settings.DISCORD_WEBHOOKS.getStringList().forEach(hook -> {
AuctionAPI.getInstance().sendDiscordMessage( instance.sendDiscordMessage(
hook, hook,
e.getSeller(), seller,
e.getSeller(), seller,
e.getAuctionItem(), auctionedItem,
AuctionSaleType.USED_BIDDING_SYSTEM, AuctionSaleType.USED_BIDDING_SYSTEM,
true, true,
e.getAuctionItem().isBidItem() auctionedItem.isBidItem()
); );
}); });
}).execute(); }).execute();
@ -49,33 +54,36 @@ public class AuctionListeners implements Listener {
@EventHandler @EventHandler
public void onAuctionEnd(AuctionEndEvent e) { public void onAuctionEnd(AuctionEndEvent e) {
// new stat system // new stat system
new AuctionStatistic(e.getOriginalOwner().getUniqueId(), e.getAuctionItem().isBidItem() ? AuctionStatisticType.SOLD_AUCTION : AuctionStatisticType.SOLD_BIN, 1).store(null); final Player originalOwner = e.getOriginalOwner(), buyer = e.getBuyer();
new AuctionStatistic(e.getOriginalOwner().getUniqueId(), AuctionStatisticType.MONEY_EARNED, e.getSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM ? e.getAuctionItem().getCurrentPrice() : e.getAuctionItem().getBasePrice()).store(null); final UUID originalOwnerUUID = originalOwner.getUniqueId(), buyerUUID = buyer.getUniqueId();
new AuctionStatistic(e.getBuyer().getUniqueId(), AuctionStatisticType.MONEY_SPENT, e.getSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM ? e.getAuctionItem().getCurrentPrice() : e.getAuctionItem().getBasePrice()).store(null); final AuctionedItem auctionedItem = e.getAuctionedItem();
new AuctionStatistic(originalOwnerUUID, auctionedItem.isBidItem() ? AuctionStatisticType.SOLD_AUCTION : AuctionStatisticType.SOLD_BIN, 1).store(null);
new AuctionStatistic(originalOwnerUUID, AuctionStatisticType.MONEY_EARNED, e.getSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM ? auctionedItem.getCurrentPrice() : auctionedItem.getBasePrice()).store(null);
new AuctionStatistic(buyerUUID, AuctionStatisticType.MONEY_SPENT, e.getSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM ? auctionedItem.getCurrentPrice() : auctionedItem.getBasePrice()).store(null);
AuctionHouse.newChain().async(() -> { AuctionHouse.newChain().async(() -> {
if (Settings.RECORD_TRANSACTIONS.getBoolean()) { if (Settings.RECORD_TRANSACTIONS.getBoolean()) {
final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getDataManager().insertTransactionAsync(new Transaction( instance.getDataManager().insertTransactionAsync(new Transaction(
UUID.randomUUID(), UUID.randomUUID(),
e.getOriginalOwner().getUniqueId(), originalOwnerUUID,
e.getBuyer().getUniqueId(), buyerUUID,
e.getAuctionItem().getOwnerName(), auctionedItem.getOwnerName(),
e.getBuyer().getName(), buyer.getName(),
System.currentTimeMillis(), System.currentTimeMillis(),
e.getAuctionItem().getItem(), auctionedItem.getItem(),
e.getSaleType(), e.getSaleType(),
e.getAuctionItem().getCurrentPrice() auctionedItem.getCurrentPrice()
), (error, transaction) -> { ), (error, transaction) -> {
if (error == null) { if (error == null) {
AuctionHouse.getInstance().getTransactionManager().addTransaction(transaction); instance.getTransactionManager().addTransaction(transaction);
} }
}); });
} }
if (Settings.DISCORD_ENABLED.getBoolean() && Settings.DISCORD_ALERT_ON_AUCTION_FINISH.getBoolean()) { if (Settings.DISCORD_ENABLED.getBoolean() && Settings.DISCORD_ALERT_ON_AUCTION_FINISH.getBoolean()) {
Settings.DISCORD_WEBHOOKS.getStringList().forEach(hook -> AuctionAPI.getInstance().sendDiscordMessage(hook, e.getOriginalOwner(), e.getBuyer(), e.getAuctionItem(), e.getSaleType(), false, e.getSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM)); final AuctionAPI instance = AuctionAPI.getInstance();
Settings.DISCORD_WEBHOOKS.getStringList().forEach(hook -> instance.sendDiscordMessage(hook, originalOwner, buyer, auctionedItem, e.getSaleType(), false, e.getSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM));
} }
}).execute(); }).execute();
} }
@ -84,7 +92,9 @@ public class AuctionListeners implements Listener {
public void onAuctionBid(AuctionBidEvent e) { public void onAuctionBid(AuctionBidEvent e) {
if (!Settings.DISCORD_ENABLED.getBoolean() && Settings.DISCORD_ALERT_ON_AUCTION_BID.getBoolean()) return; if (!Settings.DISCORD_ENABLED.getBoolean() && Settings.DISCORD_ALERT_ON_AUCTION_BID.getBoolean()) return;
AuctionHouse.newChain().async(() -> { AuctionHouse.newChain().async(() -> {
Settings.DISCORD_WEBHOOKS.getStringList().forEach(hook -> AuctionAPI.getInstance().sendDiscordBidMessage(hook, e.getAuctionedItem(), e.getNewBidAmount())); final AuctionAPI instance = AuctionAPI.getInstance();
final AuctionedItem auctionedItem = e.getAuctionedItem();
Settings.DISCORD_WEBHOOKS.getStringList().forEach(hook -> instance.sendDiscordBidMessage(hook, auctionedItem, e.getNewBidAmount()));
}).execute(); }).execute();
} }

View File

@ -30,6 +30,8 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.CraftingInventory;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
@ -47,7 +49,6 @@ public class PlayerListeners implements Listener {
@EventHandler @EventHandler
public void onPlayerDeath(PlayerDeathEvent event) { public void onPlayerDeath(PlayerDeathEvent event) {
final Player player = event.getEntity(); final Player player = event.getEntity();
final AuctionPlayer auctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()); final AuctionPlayer auctionPlayer = AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId());
if (auctionPlayer != null) { if (auctionPlayer != null) {
// task id cancel // task id cancel
@ -57,39 +58,38 @@ public class PlayerListeners implements Listener {
player.getLocation().getWorld().dropItemNaturally(player.getLocation(), auctionPlayer.getItemBeingListed()); player.getLocation().getWorld().dropItemNaturally(player.getLocation(), auctionPlayer.getItemBeingListed());
} }
} }
} }
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onPlayerJoin(PlayerJoinEvent e) { public void onPlayerJoin(PlayerJoinEvent e) {
Player player = e.getPlayer(); final Player player = e.getPlayer();
final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getAuctionPlayerManager().addPlayer(player); instance.getAuctionPlayerManager().addPlayer(player);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(AuctionHouse.getInstance(), () -> { Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(AuctionHouse.getInstance(), () -> {
if (Settings.UPDATE_CHECKER.getBoolean() && AuctionHouse.getInstance().getStatus() == UpdateChecker.UpdateStatus.UNRELEASED_VERSION && player.isOp()) { if (Settings.UPDATE_CHECKER.getBoolean() && instance.getStatus() == UpdateChecker.UpdateStatus.UNRELEASED_VERSION && player.isOp()) {
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText(String.format("&dYou're running an unreleased version of Auction House &f(&c%s&f)", AuctionHouse.getInstance().getDescription().getVersion()))).sendPrefixedMessage(player); instance.getLocale().newMessage(TextUtils.formatText(String.format("&dYou're running an unreleased version of Auction House &f(&c%s&f)", instance.getDescription().getVersion()))).sendPrefixedMessage(player);
} }
}, 20); }, 20);
} }
@EventHandler @EventHandler
public void onPlayerQuit(PlayerQuitEvent e) { public void onPlayerQuit(PlayerQuitEvent e) {
Player player = e.getPlayer(); final Player player = e.getPlayer();
final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getAuctionPlayerManager().getSellHolding().remove(player.getUniqueId()); instance.getAuctionPlayerManager().getSellHolding().remove(player.getUniqueId());
AuctionHouse.getInstance().getLogger().info("Removing sell holding instance for user: " + player.getName()); instance.getLogger().info("Removing sell holding instance for user: " + player.getName());
} }
@EventHandler @EventHandler
public void onCraftWithBundle(PrepareItemCraftEvent event) { public void onCraftWithBundle(PrepareItemCraftEvent event) {
final ItemStack[] craftingItems = event.getInventory().getMatrix(); final CraftingInventory inventory = event.getInventory();
final ItemStack[] craftingItems = inventory.getMatrix();
for (ItemStack item : craftingItems) { for (ItemStack item : craftingItems) {
if (item == null || item.getType() == XMaterial.AIR.parseMaterial()) continue; if (item == null || item.getType() == XMaterial.AIR.parseMaterial()) continue;
if (NBTEditor.contains(item, "AuctionBundleItem")) { if (NBTEditor.contains(item, "AuctionBundleItem")) {
event.getInventory().setResult(XMaterial.AIR.parseItem()); inventory.setResult(XMaterial.AIR.parseItem());
} }
} }
} }
@ -104,23 +104,24 @@ public class PlayerListeners implements Listener {
if (block == null || block.getType() != XMaterial.CHEST.parseMaterial()) return; if (block == null || block.getType() != XMaterial.CHEST.parseMaterial()) return;
final Chest chest = (Chest) block.getState(); final Chest chest = (Chest) block.getState();
final NamespacedKey key = new NamespacedKey(AuctionHouse.getInstance(), "AuctionHouseMarkedChest"); final AuctionHouse instance = AuctionHouse.getInstance();
final NamespacedKey key = new NamespacedKey(instance, "AuctionHouseMarkedChest");
if (chest.getPersistentDataContainer().has(key, PersistentDataType.BYTE)) { if (chest.getPersistentDataContainer().has(key, PersistentDataType.BYTE)) {
e.setUseInteractedBlock(Event.Result.DENY); e.setUseInteractedBlock(Event.Result.DENY);
e.setCancelled(true); e.setCancelled(true);
if (AuctionHouse.getInstance().getAuctionBanManager().checkAndHandleBan(player)) { if (instance.getAuctionBanManager().checkAndHandleBan(player)) {
return; return;
} }
AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()))); instance.getGuiManager().showGUI(player, new GUIAuctionHouse(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId())));
} }
} }
@EventHandler @EventHandler
public void onBundleClick(PlayerInteractEvent e) { public void onBundleClick(PlayerInteractEvent e) {
Player player = e.getPlayer(); final Player player = e.getPlayer();
ItemStack heldItem = PlayerHelper.getHeldItem(player); final ItemStack heldItem = PlayerHelper.getHeldItem(player);
if (heldItem == null || (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK)) if (heldItem == null || (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK))
return; return;
@ -128,7 +129,7 @@ public class PlayerListeners implements Listener {
if (!NBTEditor.contains(heldItem, "AuctionBundleItem")) return; if (!NBTEditor.contains(heldItem, "AuctionBundleItem")) return;
e.setCancelled(true); e.setCancelled(true);
List<ItemStack> items = new ArrayList<>(); final List<ItemStack> items = new ArrayList<>();
for (int i = 0; i < NBTEditor.getInt(heldItem, "AuctionBundleItem"); i++) { for (int i = 0; i < NBTEditor.getInt(heldItem, "AuctionBundleItem"); i++) {
items.add(AuctionAPI.getInstance().deserializeItem(NBTEditor.getByteArray(heldItem, "AuctionBundleItem-" + i))); items.add(AuctionAPI.getInstance().deserializeItem(NBTEditor.getByteArray(heldItem, "AuctionBundleItem-" + i)));

View File

@ -111,12 +111,13 @@ public class AuctionPlayerManager {
public void loadPlayers() { public void loadPlayers() {
this.auctionPlayers.clear(); this.auctionPlayers.clear();
AuctionHouse.getInstance().getDataManager().getAuctionPlayers((error, all) -> { final AuctionHouse instance = AuctionHouse.getInstance();
instance.getDataManager().getAuctionPlayers((error, all) -> {
if (error == null) { if (error == null) {
all.forEach(this::addPlayer); all.forEach(this::addPlayer);
// add all online players // add all online players
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(AuctionHouse.getInstance(), () -> Bukkit.getOnlinePlayers().forEach(this::addPlayer), 20 * 3); Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> Bukkit.getOnlinePlayers().forEach(this::addPlayer), 20 * 3);
} }
}); });
} }

View File

@ -46,24 +46,26 @@ public final class AuctionStatisticManager {
if (this.statistics.contains(statistic)) return; if (this.statistics.contains(statistic)) return;
this.statistics.add(statistic); this.statistics.add(statistic);
final UUID owner = statistic.getStatOwner();
final double value = value;
switch (statistic.getStatisticType()) { switch (statistic.getStatisticType()) {
case CREATED_AUCTION: case CREATED_AUCTION:
this.createdAuctionCount.put(statistic.getStatOwner(), this.createdAuctionCount.getOrDefault(statistic.getStatOwner(), 0D) + statistic.getValue()); this.createdAuctionCount.put(owner, this.createdAuctionCount.getOrDefault(owner, 0D) + value);
break; break;
case CREATED_BIN: case CREATED_BIN:
this.createdBinCount.put(statistic.getStatOwner(), this.createdBinCount.getOrDefault(statistic.getStatOwner(), 0D) + statistic.getValue()); this.createdBinCount.put(owner, this.createdBinCount.getOrDefault(owner, 0D) + value);
break; break;
case SOLD_AUCTION: case SOLD_AUCTION:
this.soldAuctionCount.put(statistic.getStatOwner(), this.soldAuctionCount.getOrDefault(statistic.getStatOwner(), 0D) + statistic.getValue()); this.soldAuctionCount.put(owner, this.soldAuctionCount.getOrDefault(owner, 0D) + value);
break; break;
case SOLD_BIN: case SOLD_BIN:
this.soldBinCount.put(statistic.getStatOwner(), this.soldBinCount.getOrDefault(statistic.getStatOwner(), 0D) + statistic.getValue()); this.soldBinCount.put(owner, this.soldBinCount.getOrDefault(owner, 0D) + value);
break; break;
case MONEY_SPENT: case MONEY_SPENT:
this.moneySpentCount.put(statistic.getStatOwner(), this.moneySpentCount.getOrDefault(statistic.getStatOwner(), 0D) + statistic.getValue()); this.moneySpentCount.put(owner, this.moneySpentCount.getOrDefault(owner, 0D) + value);
break; break;
case MONEY_EARNED: case MONEY_EARNED:
this.moneyEarnedCount.put(statistic.getStatOwner(), this.moneyEarnedCount.getOrDefault(statistic.getStatOwner(), 0D) + statistic.getValue()); this.moneyEarnedCount.put(owner, this.moneyEarnedCount.getOrDefault(owner, 0D) + value);
break; break;
} }
} }

View File

@ -3,6 +3,7 @@ package ca.tweetzy.auctionhouse.managers;
import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.AuctionHouse;
import ca.tweetzy.core.compatibility.XSound; import ca.tweetzy.core.compatibility.XSound;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.Arrays; import java.util.Arrays;
@ -32,12 +33,11 @@ public class SoundManager {
} }
public void playSound(Player[] players, String sound, float volume, float pitch) { public void playSound(Player[] players, String sound, float volume, float pitch) {
Arrays.stream(players).forEach(p -> p.playSound(p.getLocation(), XSound.matchXSound(sound).get().parseSound(), volume, pitch)); final Sound xsound = XSound.matchXSound(sound).get().parseSound();
Arrays.stream(players).forEach(p -> p.playSound(p.getLocation(), xsound, volume, pitch));
} }
public void playSound(Player player, String sound, float volume, float pitch, int delay) { public void playSound(Player player, String sound, float volume, float pitch, int delay) {
Bukkit.getServer().getScheduler().runTaskLater(AuctionHouse.getInstance(), () -> playSound(player, sound, volume, pitch), delay); Bukkit.getServer().getScheduler().runTaskLater(AuctionHouse.getInstance(), () -> playSound(player, sound, volume, pitch), delay);
} }
} }

View File

@ -26,10 +26,11 @@ public class AutoSaveTask extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
AuctionHouse.getInstance().getDataManager().updateItems(AuctionHouse.getInstance().getAuctionItemManager().getItems().values(), null); final AuctionHouse instance = AuctionHouse.getInstance();
AuctionHouse.getInstance().getFilterManager().saveFilterWhitelist(true); instance.getDataManager().updateItems(instance.getAuctionItemManager().getItems().values(), null);
instance.getFilterManager().saveFilterWhitelist(true);
if (!Settings.DISABLE_AUTO_SAVE_MSG.getBoolean()) if (!Settings.DISABLE_AUTO_SAVE_MSG.getBoolean())
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&aAuto saved auction items & transactions")).sendPrefixedMessage(Bukkit.getConsoleSender()); instance.getLocale().newMessage(TextUtils.formatText("&aAuto saved auction items & transactions")).sendPrefixedMessage(Bukkit.getConsoleSender());
} }
} }

View File

@ -45,7 +45,8 @@ public class TickAuctionsTask extends BukkitRunnable {
public void run() { public void run() {
clock += Settings.TICK_UPDATE_TIME.getInt(); clock += Settings.TICK_UPDATE_TIME.getInt();
Set<Map.Entry<UUID, AuctionedItem>> entrySet = AuctionHouse.getInstance().getAuctionItemManager().getItems().entrySet(); final AuctionHouse instance = AuctionHouse.getInstance();
Set<Map.Entry<UUID, AuctionedItem>> entrySet = instance.getAuctionItemManager().getItems().entrySet();
Iterator<Map.Entry<UUID, AuctionedItem>> auctionItemIterator = entrySet.iterator(); Iterator<Map.Entry<UUID, AuctionedItem>> auctionItemIterator = entrySet.iterator();
@ -54,26 +55,26 @@ public class TickAuctionsTask extends BukkitRunnable {
AuctionedItem auctionItem = entry.getValue(); AuctionedItem auctionItem = entry.getValue();
ItemStack itemStack = auctionItem.getItem(); ItemStack itemStack = auctionItem.getItem();
if (AuctionHouse.getInstance().getAuctionItemManager().getGarbageBin().containsKey(auctionItem.getId())) { if (instance.getAuctionItemManager().getGarbageBin().containsKey(auctionItem.getId())) {
AuctionHouse.getInstance().getAuctionItemManager().getGarbageBin().remove(auctionItem.getId()); instance.getAuctionItemManager().getGarbageBin().remove(auctionItem.getId());
AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().put(auctionItem.getId(), auctionItem); instance.getAuctionItemManager().getDeletedItems().put(auctionItem.getId(), auctionItem);
auctionItemIterator.remove(); auctionItemIterator.remove();
continue; continue;
} }
// begin the scuffed deletion // begin the scuffed deletion
if (!AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().keySet().isEmpty()) { if (!instance.getAuctionItemManager().getDeletedItems().keySet().isEmpty()) {
if (Settings.GARBAGE_DELETION_TIMED_MODE.getBoolean() && clock % Settings.GARBAGE_DELETION_TIMED_DELAY.getInt() == 0) { if (Settings.GARBAGE_DELETION_TIMED_MODE.getBoolean() && clock % Settings.GARBAGE_DELETION_TIMED_DELAY.getInt() == 0) {
AuctionHouse.getInstance().getDataManager().deleteItemsAsync(AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().values().stream().map(AuctionedItem::getId).collect(Collectors.toList())); instance.getDataManager().deleteItemsAsync(instance.getAuctionItemManager().getDeletedItems().values().stream().map(AuctionedItem::getId).collect(Collectors.toList()));
if (!Settings.DISABLE_CLEANUP_MSG.getBoolean()) if (!Settings.DISABLE_CLEANUP_MSG.getBoolean())
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&aCleaned a total of &e" + AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().size() + "&a items.")).sendPrefixedMessage(Bukkit.getConsoleSender()); instance.getLocale().newMessage(TextUtils.formatText("&aCleaned a total of &e" + instance.getAuctionItemManager().getDeletedItems().size() + "&a items.")).sendPrefixedMessage(Bukkit.getConsoleSender());
AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().clear(); instance.getAuctionItemManager().getDeletedItems().clear();
} else { } else {
if (AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().size() >= Settings.GARBAGE_DELETION_MAX_ITEMS.getInt()) { if (instance.getAuctionItemManager().getDeletedItems().size() >= Settings.GARBAGE_DELETION_MAX_ITEMS.getInt()) {
AuctionHouse.getInstance().getDataManager().deleteItemsAsync(AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().values().stream().map(AuctionedItem::getId).collect(Collectors.toList())); instance.getDataManager().deleteItemsAsync(instance.getAuctionItemManager().getDeletedItems().values().stream().map(AuctionedItem::getId).collect(Collectors.toList()));
if (!Settings.DISABLE_CLEANUP_MSG.getBoolean()) if (!Settings.DISABLE_CLEANUP_MSG.getBoolean())
AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&aCleaned a total of &e" + AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().size() + "&a items.")).sendPrefixedMessage(Bukkit.getConsoleSender()); instance.getLocale().newMessage(TextUtils.formatText("&aCleaned a total of &e" + instance.getAuctionItemManager().getDeletedItems().size() + "&a items.")).sendPrefixedMessage(Bukkit.getConsoleSender());
AuctionHouse.getInstance().getAuctionItemManager().getDeletedItems().clear(); instance.getAuctionItemManager().getDeletedItems().clear();
} }
} }
} }
@ -88,7 +89,7 @@ public class TickAuctionsTask extends BukkitRunnable {
if (!auctionItem.isExpired()) { if (!auctionItem.isExpired()) {
if (Settings.BROADCAST_AUCTION_ENDING.getBoolean()) { if (Settings.BROADCAST_AUCTION_ENDING.getBoolean()) {
if (timeRemaining <= Settings.BROADCAST_AUCTION_ENDING_AT_TIME.getInt() && timeRemaining % 10 == 0 && timeRemaining != 0) { if (timeRemaining <= Settings.BROADCAST_AUCTION_ENDING_AT_TIME.getInt() && timeRemaining % 10 == 0 && timeRemaining != 0) {
Bukkit.getOnlinePlayers().forEach(player -> AuctionHouse.getInstance().getLocale().getMessage("auction.broadcast.ending") Bukkit.getOnlinePlayers().forEach(player -> instance.getLocale().getMessage("auction.broadcast.ending")
.processPlaceholder("item", AuctionAPI.getInstance().getItemName(itemStack)) .processPlaceholder("item", AuctionAPI.getInstance().getItemName(itemStack))
.processPlaceholder("seconds", timeRemaining) .processPlaceholder("seconds", timeRemaining)
.sendPrefixedMessage(player)); .sendPrefixedMessage(player));
@ -117,7 +118,7 @@ public class TickAuctionsTask extends BukkitRunnable {
AuctionEndEvent auctionEndEvent = new AuctionEndEvent(Bukkit.getOfflinePlayer(auctionItem.getOwner()), auctionWinner, auctionItem, AuctionSaleType.USED_BIDDING_SYSTEM, tax); AuctionEndEvent auctionEndEvent = new AuctionEndEvent(Bukkit.getOfflinePlayer(auctionItem.getOwner()), auctionWinner, auctionItem, AuctionSaleType.USED_BIDDING_SYSTEM, tax);
AuctionHouse.getInstance().getServer().getPluginManager().callEvent(auctionEndEvent); instance.getServer().getPluginManager().callEvent(auctionEndEvent);
if (auctionEndEvent.isCancelled()) continue; if (auctionEndEvent.isCancelled()) continue;
@ -128,26 +129,26 @@ public class TickAuctionsTask extends BukkitRunnable {
// alert seller and buyer // alert seller and buyer
if (Bukkit.getOfflinePlayer(auctionItem.getOwner()).isOnline()) { if (Bukkit.getOfflinePlayer(auctionItem.getOwner()).isOnline()) {
AuctionHouse.getInstance().getLocale().getMessage("auction.itemsold") instance.getLocale().getMessage("auction.itemsold")
.processPlaceholder("item", AuctionAPI.getInstance().getItemName(itemStack)) .processPlaceholder("item", AuctionAPI.getInstance().getItemName(itemStack))
.processPlaceholder("amount", itemStack.clone().getAmount()) .processPlaceholder("amount", itemStack.clone().getAmount())
.processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice : finalPrice - tax)) .processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice : finalPrice - tax))
.processPlaceholder("buyer_name", Bukkit.getOfflinePlayer(auctionItem.getHighestBidder()).getName()) .processPlaceholder("buyer_name", Bukkit.getOfflinePlayer(auctionItem.getHighestBidder()).getName())
.processPlaceholder("buyer_displayname", AuctionAPI.getInstance().getDisplayName(Bukkit.getOfflinePlayer(auctionItem.getHighestBidder()))) .processPlaceholder("buyer_displayname", AuctionAPI.getInstance().getDisplayName(Bukkit.getOfflinePlayer(auctionItem.getHighestBidder())))
.sendPrefixedMessage(Bukkit.getOfflinePlayer(auctionItem.getOwner()).getPlayer()); .sendPrefixedMessage(Bukkit.getOfflinePlayer(auctionItem.getOwner()).getPlayer());
AuctionHouse.getInstance().getLocale().getMessage("pricing.moneyadd").processPlaceholder("player_balance", AuctionAPI.getInstance().formatNumber(EconomyManager.getBalance(Bukkit.getOfflinePlayer(auctionItem.getOwner())))).processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice : finalPrice - tax)).sendPrefixedMessage(Bukkit.getOfflinePlayer(auctionItem.getOwner()).getPlayer()); instance.getLocale().getMessage("pricing.moneyadd").processPlaceholder("player_balance", AuctionAPI.getInstance().formatNumber(EconomyManager.getBalance(Bukkit.getOfflinePlayer(auctionItem.getOwner())))).processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice : finalPrice - tax)).sendPrefixedMessage(Bukkit.getOfflinePlayer(auctionItem.getOwner()).getPlayer());
} }
if (auctionWinner.isOnline()) { if (auctionWinner.isOnline()) {
assert auctionWinner.getPlayer() != null; assert auctionWinner.getPlayer() != null;
AuctionHouse.getInstance().getLocale().getMessage("auction.bidwon") instance.getLocale().getMessage("auction.bidwon")
.processPlaceholder("item", AuctionAPI.getInstance().getItemName(itemStack)) .processPlaceholder("item", AuctionAPI.getInstance().getItemName(itemStack))
.processPlaceholder("amount", itemStack.getAmount()) .processPlaceholder("amount", itemStack.getAmount())
.processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice + tax : finalPrice)) .processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice + tax : finalPrice))
.sendPrefixedMessage(auctionWinner.getPlayer()); .sendPrefixedMessage(auctionWinner.getPlayer());
if (!Settings.BIDDING_TAKES_MONEY.getBoolean()) if (!Settings.BIDDING_TAKES_MONEY.getBoolean())
AuctionHouse.getInstance().getLocale().getMessage("pricing.moneyremove").processPlaceholder("player_balance", AuctionAPI.getInstance().formatNumber(EconomyManager.getBalance(auctionWinner.getPlayer()))).processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice + tax : finalPrice)).sendPrefixedMessage(auctionWinner.getPlayer()); instance.getLocale().getMessage("pricing.moneyremove").processPlaceholder("player_balance", AuctionAPI.getInstance().formatNumber(EconomyManager.getBalance(auctionWinner.getPlayer()))).processPlaceholder("price", AuctionAPI.getInstance().formatNumber(Settings.TAX_CHARGE_SALES_TAX_TO_BUYER.getBoolean() ? finalPrice + tax : finalPrice)).sendPrefixedMessage(auctionWinner.getPlayer());
// handle full inventory // handle full inventory
if (auctionWinner.getPlayer().getInventory().firstEmpty() == -1) { if (auctionWinner.getPlayer().getInventory().firstEmpty() == -1) {
@ -157,7 +158,7 @@ public class TickAuctionsTask extends BukkitRunnable {
else else
PlayerUtils.giveItem(auctionWinner.getPlayer(), itemStack); PlayerUtils.giveItem(auctionWinner.getPlayer(), itemStack);
AuctionHouse.getInstance().getAuctionItemManager().sendToGarbage(auctionItem); instance.getAuctionItemManager().sendToGarbage(auctionItem);
continue; continue;
} }
} else { } else {
@ -166,7 +167,7 @@ public class TickAuctionsTask extends BukkitRunnable {
else else
PlayerUtils.giveItem(auctionWinner.getPlayer(), itemStack); PlayerUtils.giveItem(auctionWinner.getPlayer(), itemStack);
AuctionHouse.getInstance().getAuctionItemManager().sendToGarbage(auctionItem); instance.getAuctionItemManager().sendToGarbage(auctionItem);
continue; continue;
} }
} }