mirror of
https://github.com/Crazy-Crew/CrazyAuctions.git
synced 2024-11-24 12:15:38 +01:00
make proper use of the auction cache in 2 of the menus
This commit is contained in:
parent
d205cdb500
commit
578b8076c2
@ -3,23 +3,19 @@ package com.badbones69.crazyauctions.api.guis.types;
|
||||
import com.badbones69.crazyauctions.Methods;
|
||||
import com.badbones69.crazyauctions.api.builders.ItemBuilder;
|
||||
import com.badbones69.crazyauctions.api.enums.Category;
|
||||
import com.badbones69.crazyauctions.api.enums.Messages;
|
||||
import com.badbones69.crazyauctions.api.enums.Reasons;
|
||||
import com.badbones69.crazyauctions.api.enums.ShopType;
|
||||
import com.badbones69.crazyauctions.api.enums.misc.Files;
|
||||
import com.badbones69.crazyauctions.api.enums.misc.Keys;
|
||||
import com.badbones69.crazyauctions.api.events.AuctionCancelledEvent;
|
||||
import com.badbones69.crazyauctions.api.guis.Holder;
|
||||
import com.badbones69.crazyauctions.api.guis.HolderManager;
|
||||
import com.badbones69.crazyauctions.api.GuiManager;
|
||||
import com.badbones69.crazyauctions.currency.VaultSupport;
|
||||
import com.badbones69.crazyauctions.tasks.InventoryManager;
|
||||
import com.badbones69.crazyauctions.tasks.objects.Auction;
|
||||
import com.ryderbelserion.vital.paper.util.scheduler.FoliaRunnable;
|
||||
import io.papermc.paper.persistence.PersistentDataContainerView;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryAction;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -30,7 +26,7 @@ import java.util.UUID;
|
||||
|
||||
public class AuctionsMenu extends Holder {
|
||||
|
||||
private List<ItemStack> items;
|
||||
private List<Auction> items;
|
||||
private List<String> options;
|
||||
private int maxPages;
|
||||
|
||||
@ -71,8 +67,6 @@ public class AuctionsMenu extends Holder {
|
||||
|
||||
@Override
|
||||
public final Holder build() {
|
||||
Methods.updateAuction();
|
||||
|
||||
if (this.target != null) {
|
||||
this.options.add("WhatIsThis.Viewing");
|
||||
} else {
|
||||
@ -144,10 +138,10 @@ public class AuctionsMenu extends Holder {
|
||||
}
|
||||
}
|
||||
|
||||
for (final ItemStack item : getPageItems(this.items, getPage(), getSize())) {
|
||||
for (final Auction item : getPageItems(this.items, getPage(), getSize())) {
|
||||
int slot = this.inventory.firstEmpty();
|
||||
|
||||
this.inventory.setItem(slot, item);
|
||||
this.inventory.setItem(slot, item.getItemBuilder(this.shopType).build());
|
||||
}
|
||||
|
||||
this.player.openInventory(this.inventory);
|
||||
@ -178,7 +172,6 @@ public class AuctionsMenu extends Holder {
|
||||
final Player player = (Player) event.getWhoClicked();
|
||||
|
||||
FileConfiguration config = Files.config.getConfiguration();
|
||||
FileConfiguration data = Files.data.getConfiguration();
|
||||
|
||||
if (container.has(Keys.auction_button.getNamespacedKey())) {
|
||||
String type = container.getOrDefault(Keys.auction_button.getNamespacedKey(), PersistentDataType.STRING, menu.target == null ? "Refresh" : "");
|
||||
@ -272,59 +265,13 @@ public class AuctionsMenu extends Holder {
|
||||
}
|
||||
}
|
||||
|
||||
final UUID uuid = player.getUniqueId();
|
||||
|
||||
|
||||
/*if (!data.contains("Items")) return;
|
||||
|
||||
final ConfigurationSection section = data.getConfigurationSection("Items");
|
||||
|
||||
if (section == null) return;
|
||||
|
||||
final String auction_id = container.getOrDefault(Keys.auction_item.getNamespacedKey(), PersistentDataType.STRING, "");
|
||||
|
||||
final ConfigurationSection auction = section.getConfigurationSection(auction_id);
|
||||
final Auction auction = this.userManager.getAuctionById(uuid, container.getOrDefault(Keys.auction_store_id.getNamespacedKey(), PersistentDataType.STRING, ""));
|
||||
|
||||
if (auction == null) return;
|
||||
|
||||
final UUID uuid = player.getUniqueId();
|
||||
|
||||
if (player.hasPermission("crazyauctions.admin") || player.hasPermission("crazyauctions.force-end")) {
|
||||
if (event.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY) {
|
||||
int num = 1;
|
||||
|
||||
for (;data.contains("OutOfTime/Cancelled." + num); num++);
|
||||
|
||||
String seller = auction.getString("Seller");
|
||||
|
||||
Player sellerPlayer = Methods.getPlayer(seller);
|
||||
|
||||
if (Methods.isOnline(seller) && sellerPlayer != null) {
|
||||
sellerPlayer.sendMessage(Messages.ADMIN_FORCE_CANCELLED_TO_PLAYER.getMessage(player));
|
||||
}
|
||||
|
||||
AuctionCancelledEvent auctionCancelledEvent = new AuctionCancelledEvent((sellerPlayer != null ? sellerPlayer : Methods.getOfflinePlayer(seller)), Methods.fromBase64(auction.getString("Item")), Reasons.ADMIN_FORCE_CANCEL);
|
||||
this.server.getPluginManager().callEvent(auctionCancelledEvent);
|
||||
|
||||
data.set("OutOfTime/Cancelled." + num + ".Seller", section.getString("Seller"));
|
||||
data.set("OutOfTime/Cancelled." + num + ".Name", section.getString("Name"));
|
||||
data.set("OutOfTime/Cancelled." + num + ".Full-Time", section.getLong("Full-Time"));
|
||||
data.set("OutOfTime/Cancelled." + num + ".StoreID", section.getInt("StoreID"));
|
||||
data.set("OutOfTime/Cancelled." + num + ".Item", auction.getString("Item"));
|
||||
data.set("Items." + auction_id, null);
|
||||
|
||||
Files.data.save();
|
||||
|
||||
player.sendMessage(Messages.ADMIN_FORCE_CANCELLED.getMessage(player));
|
||||
|
||||
menu.click(player);
|
||||
|
||||
GuiManager.openShop(player, HolderManager.getShopType(player), HolderManager.getShopCategory(player), menu.getPage());
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (auction.getString("Seller", "").equalsIgnoreCase(uuid.toString())) {
|
||||
if (uuid.toString().equalsIgnoreCase(auction.getUuid().toString())) {
|
||||
String itemName = config.getString("Settings.GUISettings.OtherSettings.Your-Item.Item");
|
||||
String name = config.getString("Settings.GUISettings.OtherSettings.Your-Item.Name");
|
||||
|
||||
@ -348,9 +295,13 @@ public class AuctionsMenu extends Holder {
|
||||
return;
|
||||
}
|
||||
|
||||
long cost = auction.getLong("Price");
|
||||
final long price = auction.getPrice();
|
||||
|
||||
if (this.plugin.getSupport().getMoney(player) < cost) {
|
||||
if (price == 0L) return;
|
||||
|
||||
final VaultSupport support = this.plugin.getSupport();
|
||||
|
||||
if (support.getMoney(player) < price) {
|
||||
String itemName = config.getString("Settings.GUISettings.OtherSettings.Cant-Afford.Item");
|
||||
String name = config.getString("Settings.GUISettings.OtherSettings.Cant-Afford.Name");
|
||||
|
||||
@ -373,8 +324,10 @@ public class AuctionsMenu extends Holder {
|
||||
return;
|
||||
}
|
||||
|
||||
if (auction.getBoolean("Biddable")) {
|
||||
if (uuid.toString().equalsIgnoreCase(auction.getString("TopBidder"))) {
|
||||
final String auction_id = auction.getId();
|
||||
|
||||
if (auction.isBiddable()) {
|
||||
if (uuid.toString().equalsIgnoreCase(auction.getUuid().toString())) {
|
||||
String itemName = config.getString("Settings.GUISettings.OtherSettings.Top-Bidder.Item");
|
||||
String name = config.getString("Settings.GUISettings.OtherSettings.Top-Bidder.Name");
|
||||
|
||||
@ -401,24 +354,26 @@ public class AuctionsMenu extends Holder {
|
||||
menu.click(player);
|
||||
|
||||
GuiManager.openBidding(player, auction_id);
|
||||
} else {
|
||||
menu.click(player);
|
||||
|
||||
GuiManager.openBuying(player, auction_id);
|
||||
}*/
|
||||
return;
|
||||
}
|
||||
|
||||
menu.click(player);
|
||||
|
||||
GuiManager.openBuying(player, auction_id);
|
||||
}
|
||||
|
||||
private void getItems() {
|
||||
final List<Auction> auctions = this.plugin.getUserManager().getAuctions();
|
||||
this.userManager.getAuctions().forEach(((uuid, auctions) -> {
|
||||
auctions.forEach(auction -> {
|
||||
final ItemBuilder itemBuilder = auction.getItemBuilder(this.shopType);
|
||||
|
||||
auctions.forEach(auction -> {
|
||||
final ItemBuilder itemBuilder = auction.getItemBuilder(this.shopType);
|
||||
if (this.category != null && this.category != Category.NONE && !this.category.getItems().contains(itemBuilder.getMaterial())) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.category != null && this.category != Category.NONE && !this.category.getItems().contains(itemBuilder.getMaterial())) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.items.add(itemBuilder.build());
|
||||
});
|
||||
this.items.add(auction);
|
||||
});
|
||||
}));
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@ import com.badbones69.crazyauctions.api.events.AuctionCancelledEvent;
|
||||
import com.badbones69.crazyauctions.api.guis.Holder;
|
||||
import com.badbones69.crazyauctions.api.guis.HolderManager;
|
||||
import com.badbones69.crazyauctions.api.GuiManager;
|
||||
import com.badbones69.crazyauctions.tasks.objects.Auction;
|
||||
import io.papermc.paper.persistence.PersistentDataContainerView;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
@ -20,40 +21,28 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CurrentMenu extends Holder {
|
||||
|
||||
private List<ItemStack> items;
|
||||
private List<String> options;
|
||||
|
||||
private FileConfiguration config;
|
||||
private FileConfiguration data;
|
||||
private List<String> options;
|
||||
|
||||
public CurrentMenu(final Player player, final String title, final int size, final int page) {
|
||||
super(player, title, size, page);
|
||||
|
||||
this.items = new ArrayList<>();
|
||||
this.options = new ArrayList<>();
|
||||
|
||||
this.config = Files.config.getConfiguration();
|
||||
this.data = Files.data.getConfiguration();
|
||||
this.options = new ArrayList<>();
|
||||
}
|
||||
|
||||
public CurrentMenu() {}
|
||||
|
||||
@Override
|
||||
public final Holder build() {
|
||||
Methods.updateAuction();
|
||||
|
||||
this.options.addAll(List.of(
|
||||
"Back",
|
||||
"WhatIsThis.CurrentItems"
|
||||
));
|
||||
|
||||
getItems();
|
||||
|
||||
for (final String key : this.options) {
|
||||
if (!this.config.contains("Settings.GUISettings.OtherSettings." + key)) {
|
||||
continue;
|
||||
@ -76,10 +65,10 @@ public class CurrentMenu extends Holder {
|
||||
this.inventory.setItem(slot - 1, itemBuilder.build());
|
||||
}
|
||||
|
||||
for (final ItemStack item : getPageItems(this.items, getPage(), getSize())) {
|
||||
for (final Auction item : getPageItems(this.userManager.getAuctions().get(this.player.getUniqueId()), getPage(), getSize())) {
|
||||
int slot = this.inventory.firstEmpty();
|
||||
|
||||
this.inventory.setItem(slot, item);
|
||||
this.inventory.setItem(slot, item.getItemBuilder().build());
|
||||
}
|
||||
|
||||
this.player.openInventory(this.inventory);
|
||||
@ -125,7 +114,7 @@ public class CurrentMenu extends Holder {
|
||||
return;
|
||||
}
|
||||
|
||||
String id = container.getOrDefault(Keys.auction_item.getNamespacedKey(), PersistentDataType.STRING, "");
|
||||
String id = container.getOrDefault(Keys.auction_number.getNamespacedKey(), PersistentDataType.STRING, "");
|
||||
|
||||
final FileConfiguration data = Files.data.getConfiguration();
|
||||
|
||||
@ -176,57 +165,4 @@ public class CurrentMenu extends Holder {
|
||||
|
||||
GuiManager.openPlayersCurrentList(player, 1);
|
||||
}
|
||||
|
||||
private void getItems() {
|
||||
final ConfigurationSection section = this.data.getConfigurationSection("Items");
|
||||
|
||||
if (section == null) return;
|
||||
|
||||
final UUID uuid = this.player.getUniqueId();
|
||||
|
||||
for (String key : section.getKeys(false)) {
|
||||
final ConfigurationSection auction = section.getConfigurationSection(key);
|
||||
|
||||
if (auction == null) continue;
|
||||
|
||||
final String seller = auction.getString("Seller", "");
|
||||
|
||||
if (seller.isEmpty()) continue;
|
||||
|
||||
if (!seller.equalsIgnoreCase(uuid.toString())) continue;
|
||||
|
||||
final String item = auction.getString("Item", "");
|
||||
|
||||
if (item.isEmpty()) continue;
|
||||
|
||||
final ItemBuilder itemBuilder = ItemBuilder.convertItemStack(item);
|
||||
|
||||
if (itemBuilder == null) {
|
||||
this.plugin.getLogger().warning("The item with store id " + auction.getString("StoreID", "current_menu") + " obtained from your data.yml could not be converted!");
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
final long price = auction.getLong("Price");
|
||||
|
||||
final String priceFormat = String.format(Locale.ENGLISH, "%,d", price);
|
||||
|
||||
final String time = Methods.convertToTime(auction.getLong("Time-Till-Expire"));
|
||||
|
||||
final List<String> lore = new ArrayList<>(itemBuilder.getUpdatedLore());
|
||||
|
||||
lore.add(" ");
|
||||
|
||||
for (final String line : this.config.getStringList("Settings.GUISettings.CurrentLore")) {
|
||||
lore.add(line.replace("%Time%", time).replace("%time%", time).replace("%price%", priceFormat).replace("%Price%", priceFormat));
|
||||
}
|
||||
|
||||
itemBuilder.setLore(lore);
|
||||
|
||||
itemBuilder.addInteger(auction.getInt("StoreID"), Keys.auction_id.getNamespacedKey());
|
||||
itemBuilder.addString(auction.getName(), Keys.auction_item.getNamespacedKey());
|
||||
|
||||
this.items.add(itemBuilder.build());
|
||||
}
|
||||
}
|
||||
}
|
@ -9,13 +9,17 @@ import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class UserManager {
|
||||
|
||||
private final CrazyAuctions plugin = CrazyAuctions.getPlugin();
|
||||
|
||||
private final Map<UUID, List<Auction>> auctions = new HashMap<>();
|
||||
|
||||
public void addAuction(final Player player, final ItemStack itemStack, final long price, final boolean isBiddable) {
|
||||
final FileConfiguration data = Files.data.getConfiguration();
|
||||
final FileConfiguration config = Files.config.getConfiguration();
|
||||
@ -31,7 +35,7 @@ public class UserManager {
|
||||
|
||||
if (section == null) return;
|
||||
|
||||
addItem(itemStack, price, isBiddable, config, section);
|
||||
addItem(itemStack, uuid, price, isBiddable, config, section);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -44,17 +48,17 @@ public class UserManager {
|
||||
|
||||
if (section == null) return;
|
||||
|
||||
addItem(itemStack, price, isBiddable, config, section);
|
||||
addItem(itemStack, uuid, price, isBiddable, config, section);
|
||||
}
|
||||
|
||||
public final List<Auction> getAuctions() {
|
||||
final List<Auction> auctions = new ArrayList<>();
|
||||
public final void updateAuctionsCache() {
|
||||
this.auctions.clear();
|
||||
|
||||
final FileConfiguration data = Files.data.getConfiguration();
|
||||
|
||||
final ConfigurationSection section = data.getConfigurationSection("active_auctions");
|
||||
|
||||
if (section == null) return auctions;
|
||||
if (section == null) return;
|
||||
|
||||
for (String key : section.getKeys(false)) {
|
||||
final ConfigurationSection player = section.getConfigurationSection(key);
|
||||
@ -66,20 +70,27 @@ public class UserManager {
|
||||
|
||||
if (auction == null) continue;
|
||||
|
||||
auctions.add(new Auction(key, auction.getString("name"),
|
||||
number,
|
||||
auction.getString("item"),
|
||||
auction.getString("store_id"),
|
||||
auction.getLong("price"),
|
||||
auction.getLong("time.expire"),
|
||||
auction.getLong("time.full"),
|
||||
auction.getString("status.top_bidder.uuid", "None"),
|
||||
auction.getString("status.top_bidder.name", "None"),
|
||||
auction.getBoolean("status.biddable", false)));
|
||||
addCache(key, auction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return auctions;
|
||||
public final Map<UUID, List<Auction>> getAuctions() {
|
||||
return this.auctions;
|
||||
}
|
||||
|
||||
public final Auction getAuctionById(final UUID uuid, final String store_id) {
|
||||
Auction key = null;
|
||||
|
||||
for (final Auction auction : this.auctions.get(uuid)) {
|
||||
if (!auction.getStoreID().equals(store_id)) continue;
|
||||
|
||||
key = auction;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
public void migrateAuctions() {
|
||||
@ -148,7 +159,7 @@ public class UserManager {
|
||||
* @param config the config.yml
|
||||
* @param section the section in the data.yml
|
||||
*/
|
||||
private void addItem(final ItemStack itemStack, final long price, final boolean isBiddable, final FileConfiguration config, final ConfigurationSection section) {
|
||||
private void addItem(final ItemStack itemStack, final String uuid, final long price, final boolean isBiddable, final FileConfiguration config, final ConfigurationSection section) {
|
||||
section.set("item", Methods.toBase64(itemStack));
|
||||
section.set("store_id", UUID.randomUUID().toString().replace("-", "").substring(0, 8));
|
||||
section.set("price", price);
|
||||
@ -165,6 +176,36 @@ public class UserManager {
|
||||
section.set("status.top_bidder.name", "None");
|
||||
section.set("status.biddable", isBiddable);
|
||||
|
||||
addCache(uuid, section);
|
||||
|
||||
Files.data.save();
|
||||
}
|
||||
|
||||
private void addCache(final String uuid, final ConfigurationSection section) {
|
||||
final Auction new_auction = new Auction(uuid, section.getString("name"),
|
||||
section.getName(),
|
||||
section.getString("item"),
|
||||
section.getString("store_id"),
|
||||
section.getLong("price"),
|
||||
section.getLong("time.expire"),
|
||||
section.getLong("time.full"),
|
||||
section.getString("status.top_bidder.uuid", "None"),
|
||||
section.getString("status.top_bidder.name", "None"),
|
||||
section.getBoolean("status.biddable")
|
||||
);
|
||||
|
||||
final UUID fromString = UUID.fromString(uuid);
|
||||
|
||||
if (this.auctions.containsKey(fromString)) {
|
||||
final List<Auction> auctions = this.auctions.get(fromString);
|
||||
|
||||
auctions.add(new_auction);
|
||||
|
||||
this.auctions.put(fromString, auctions);
|
||||
} else {
|
||||
this.auctions.put(fromString, new ArrayList<>() {{
|
||||
add(new_auction);
|
||||
}});
|
||||
}
|
||||
}
|
||||
}
|
@ -91,7 +91,7 @@ public class Auction {
|
||||
public final ItemBuilder getItemBuilder(final ShopType shopType) {
|
||||
final FileConfiguration configuration = Files.config.getConfiguration();
|
||||
|
||||
final ItemBuilder itemBuilder = ItemBuilder.convertItemStack(this.itemStack);
|
||||
final ItemBuilder itemBuilder = ItemBuilder.convertItemStack(this.itemStack.clone());
|
||||
|
||||
final String priceFormat = String.format(Locale.ENGLISH, "%,d", this.price);
|
||||
|
||||
@ -103,29 +103,59 @@ public class Auction {
|
||||
|
||||
if (shopType == ShopType.BID && isBiddable()) {
|
||||
for (final String line : configuration.getStringList("Settings.GUISettings.Bidding")) {
|
||||
String newLine = line.replace("%TopBid%", priceFormat).replace("%topbid%", priceFormat);
|
||||
String newLine = line.replace("%TopBid%", priceFormat)
|
||||
.replace("%topbid%", priceFormat);
|
||||
|
||||
newLine = line.replace("%Seller%", getName()).replace("%seller%", getName());
|
||||
newLine = line.replace("%Seller%", getName())
|
||||
.replace("%seller%", getName());
|
||||
|
||||
newLine = line.replace("%TopBidder%", getBidderName()).replace("%topbid%", getBidderName());
|
||||
newLine = line.replace("%TopBidder%", getBidderName())
|
||||
.replace("%topbid%", getBidderName());
|
||||
|
||||
lore.add(newLine.replace("%Time%", time).replace("%time%", time));
|
||||
lore.add(newLine.replace("%Time%", time)
|
||||
.replace("%time%", time));
|
||||
}
|
||||
} else {
|
||||
for (final String line : configuration.getStringList("Settings.GUISettings.SellingItemLore")) {
|
||||
String newLine = line.replace("%TopBid%", priceFormat).replace("%topbid%", priceFormat);
|
||||
String newLine = line.replace("%TopBid%", priceFormat)
|
||||
.replace("%topbid%", priceFormat);
|
||||
|
||||
newLine = line.replace("%Seller%", getName()).replace("%seller%", getName());
|
||||
newLine = line.replace("%Seller%", getName())
|
||||
.replace("%seller%", getName());
|
||||
|
||||
lore.add(newLine.replace("%Time%", time).replace("%time%", time).replace("%price%", priceFormat).replace("%Price%", priceFormat));
|
||||
lore.add(newLine.replace("%Time%", time)
|
||||
.replace("%time%", time)
|
||||
.replace("%price%", priceFormat).replace("%Price%", priceFormat));
|
||||
}
|
||||
}
|
||||
|
||||
itemBuilder.setLore(lore);
|
||||
itemBuilder.setLore(lore)
|
||||
.addString(getStoreID(), Keys.auction_store_id.getNamespacedKey());
|
||||
|
||||
itemBuilder.addString(getStoreID(), Keys.auction_id.getNamespacedKey());
|
||||
itemBuilder.addString(String.valueOf(getUuid()), Keys.auction_uuid.getNamespacedKey());
|
||||
itemBuilder.addString(getId(), Keys.auction_item.getNamespacedKey());
|
||||
return itemBuilder;
|
||||
}
|
||||
|
||||
public final ItemBuilder getItemBuilder() {
|
||||
final FileConfiguration configuration = Files.config.getConfiguration();
|
||||
|
||||
final ItemBuilder itemBuilder = ItemBuilder.convertItemStack(this.itemStack.clone());
|
||||
|
||||
final String priceFormat = String.format(Locale.ENGLISH, "%,d", this.price);
|
||||
|
||||
final String time = Methods.convertToTime(getTimeTillExpire());
|
||||
|
||||
final List<String> lore = new ArrayList<>(itemBuilder.getUpdatedLore());
|
||||
|
||||
lore.add(" ");
|
||||
|
||||
for (final String line : configuration.getStringList("Settings.GUISettings.CurrentLore")) {
|
||||
lore.add(line.replace("%Time%", time).replace("%time%", time)
|
||||
.replace("%price%", priceFormat)
|
||||
.replace("%Price%", priceFormat));
|
||||
}
|
||||
|
||||
itemBuilder.setLore(lore)
|
||||
.addString(getStoreID(), Keys.auction_store_id.getNamespacedKey());;
|
||||
|
||||
return itemBuilder;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user