container changes

This commit is contained in:
Kiran Hart 2021-05-11 13:44:36 -04:00
parent 765eb3903f
commit 5e2772a5f5
4 changed files with 37 additions and 67 deletions

View File

@ -2,6 +2,8 @@ package ca.tweetzy.auctionhouse.auction;
import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.api.AuctionAPI;
import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.auctionhouse.settings.Settings;
import ca.tweetzy.core.compatibility.ServerVersion;
import ca.tweetzy.core.compatibility.XMaterial;
import ca.tweetzy.core.utils.TextUtils; import ca.tweetzy.core.utils.TextUtils;
import ca.tweetzy.core.utils.nms.NBTEditor; import ca.tweetzy.core.utils.nms.NBTEditor;
import lombok.Getter; import lombok.Getter;
@ -10,6 +12,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.WordUtils; import org.apache.commons.lang.WordUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
@ -83,63 +86,28 @@ public class AuctionItem implements Serializable {
String currentPrice = (this.bidStartPrice <= 0 || this.bidIncPrice <= 0) ? "0" : Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.currentPrice) : String.format("%,.2f", this.currentPrice); String currentPrice = (this.bidStartPrice <= 0 || this.bidIncPrice <= 0) ? "0" : Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.currentPrice) : String.format("%,.2f", this.currentPrice);
long[] times = AuctionAPI.getInstance().getRemainingTimeValues(this.remainingTime); long[] times = AuctionAPI.getInstance().getRemainingTimeValues(this.remainingTime);
List<String> preLore = type == AuctionStackType.MAIN_AUCTION_HOUSE ? this.bidStartPrice <= 0 || this.bidIncPrice <= 0 ? Settings.AUCTION_ITEM_AUCTION_STACK.getStringList() : Settings.AUCTION_ITEM_AUCTION_STACK_WITH_BID.getStringList() : this.bidStartPrice <= 0 ? Settings.AUCTION_ITEM_LISTING_STACK.getStringList() : Settings.AUCTION_ITEM_LISTING_STACK_WITH_BID.getStringList();
lore.addAll(preLore.stream().map(line -> TextUtils.formatText(line
.replace("%seller%", theSeller != null ? theSeller : "&eUnknown Seller")
.replace("%buynowprice%", basePrice)
.replace("%currentprice%", currentPrice)
.replace("%bidincrement%", bidIncPrice)
.replace("%highestbidder%", highestBidder)
.replace("%remaining_days%", String.valueOf(times[0]))
.replace("%remaining_hours%", String.valueOf(times[1]))
.replace("%remaining_minutes%", String.valueOf(times[2]))
.replace("%remaining_seconds%", String.valueOf(times[3])))).collect(Collectors.toList()));
if (type == AuctionStackType.MAIN_AUCTION_HOUSE) { if (type == AuctionStackType.MAIN_AUCTION_HOUSE) {
if (this.bidStartPrice <= 0 || this.bidIncPrice <= 0) { lore.addAll(Settings.AUCTION_PURCHASE_CONTROL_HEADER.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()));
Settings.AUCTION_ITEM_AUCTION_STACK.getStringList().forEach(line -> { lore.addAll(this.bidStartPrice <= 0 || this.bidIncPrice <= 0 ? Settings.AUCTION_PURCHASE_CONTROLS_BID_OFF.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()) : Settings.AUCTION_PURCHASE_CONTROLS_BID_ON.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()));
lore.add(TextUtils.formatText(line
.replace("%seller%", theSeller != null ? theSeller : "&eUnknown Seller") if ((ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11) && itemStack.getType() == XMaterial.SHULKER_BOX.parseMaterial()) || (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_14) && itemStack.getType() == XMaterial.SHULKER_BOX.parseMaterial() || itemStack.getType() == XMaterial.BARREL.parseMaterial())) {
.replace("%buynowprice%", basePrice) lore.addAll(Settings.AUCTION_PURCHASE_CONTROLS_INSPECTION.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()));
.replace("%remaining_days%", String.valueOf(times[0]))
.replace("%remaining_hours%", String.valueOf(times[1]))
.replace("%remaining_minutes%", String.valueOf(times[2]))
.replace("%remaining_seconds%", String.valueOf(times[3]))
));
});
} else {
Settings.AUCTION_ITEM_AUCTION_STACK_WITH_BID.getStringList().forEach(line -> {
lore.add(TextUtils.formatText(line
.replace("%seller%", theSeller != null ? theSeller : "&eUnknown Seller")
.replace("%buynowprice%", basePrice)
.replace("%currentprice%", currentPrice)
.replace("%bidincrement%", bidIncPrice)
.replace("%highestbidder%", highestBidder)
.replace("%remaining_days%", String.valueOf(times[0]))
.replace("%remaining_hours%", String.valueOf(times[1]))
.replace("%remaining_minutes%", String.valueOf(times[2]))
.replace("%remaining_seconds%", String.valueOf(times[3]))
));
});
} }
lore.addAll(this.bidStartPrice <= 0 || this.bidIncPrice <= 0 ? Settings.AUCTION_PURCHASE_CONTROLS_BID_OFF.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()) : Settings.AUCTION_PURCHASE_CONTROLS_BID_ON.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList())); lore.addAll(Settings.AUCTION_PURCHASE_CONTROL_FOOTER.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()));
} else {
if (this.bidStartPrice <= 0) {
Settings.AUCTION_ITEM_LISTING_STACK.getStringList().forEach(line -> {
lore.add(TextUtils.formatText(line
.replace("%seller%", theSeller)
.replace("%buynowprice%", basePrice)
.replace("%remaining_days%", String.valueOf(times[0]))
.replace("%remaining_hours%", String.valueOf(times[1]))
.replace("%remaining_minutes%", String.valueOf(times[2]))
.replace("%remaining_seconds%", String.valueOf(times[3]))
));
});
} else {
Settings.AUCTION_ITEM_LISTING_STACK_WITH_BID.getStringList().forEach(line -> {
lore.add(TextUtils.formatText(line
.replace("%seller%", theSeller)
.replace("%buynowprice%", basePrice)
.replace("%currentprice%", currentPrice)
.replace("%bidincrement%", bidIncPrice)
.replace("%highestbidder%", highestBidder)
.replace("%remaining_days%", String.valueOf(times[0]))
.replace("%remaining_hours%", String.valueOf(times[1]))
.replace("%remaining_minutes%", String.valueOf(times[2]))
.replace("%remaining_seconds%", String.valueOf(times[3]))
));
});
}
} }
meta.setLore(lore); meta.setLore(lore);

View File

@ -216,7 +216,7 @@ public class GUIAuctionHouse extends Gui {
break; break;
case SHIFT_RIGHT: case SHIFT_RIGHT:
if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11)) return; if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11)) return;
if (e.player.isOp() || e.player.hasPermission("auctionhouse.admin") || e.player.hasPermission("auctionhouse.inspectcontainer")) { if (e.player.isOp() || e.player.hasPermission("auctionhouse.admin") || e.player.hasPermission("auctionhouse.inspectshulker")) {
ItemStack clicked = e.clickedItem; ItemStack clicked = e.clickedItem;
if (!(clicked.getItemMeta() instanceof BlockStateMeta)) return; if (!(clicked.getItemMeta() instanceof BlockStateMeta)) return;

View File

@ -20,15 +20,15 @@ import java.util.Arrays;
public class GUIContainerInspect extends Gui { public class GUIContainerInspect extends Gui {
final int[] fillSlots = {0, 1, 2, 3, 4, 5, 6, 7, 8, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 50, 51, 52, 53}; final int[] fillSlots = {0, 1, 2, 3, 4, 5, 6, 7, 8, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 50, 51, 52, 53};
final ItemStack container; final ItemStack shulker;
/** /**
* Used to inspect a shulker box from it's item stack. * Used to inspect a shulker box from it's item stack.
* *
* @param container is the shulker box * @param shulker is the shulker box
*/ */
public GUIContainerInspect(ItemStack container) { public GUIContainerInspect(ItemStack shulker) {
this.container = container; this.shulker = shulker;
setTitle(TextUtils.formatText(Settings.GUI_SHULKER_INSPECT_TITLE.getString())); setTitle(TextUtils.formatText(Settings.GUI_SHULKER_INSPECT_TITLE.getString()));
setDefaultItem(Settings.GUI_SHULKER_INSPECT_BG_ITEM.getMaterial().parseItem()); setDefaultItem(Settings.GUI_SHULKER_INSPECT_BG_ITEM.getMaterial().parseItem());
setUseLockedCells(false); setUseLockedCells(false);
@ -45,7 +45,7 @@ public class GUIContainerInspect extends Gui {
for (int i : fillSlots) setItem(i, getDefaultItem()); for (int i : fillSlots) setItem(i, getDefaultItem());
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 -> e.manager.showGUI(e.player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(e.player.getUniqueId())))); 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 -> e.manager.showGUI(e.player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(e.player.getUniqueId()))));
BlockStateMeta meta = (BlockStateMeta) this.container.getItemMeta(); BlockStateMeta meta = (BlockStateMeta) this.shulker.getItemMeta();
ShulkerBox skulkerBox = (ShulkerBox) meta.getBlockState(); ShulkerBox skulkerBox = (ShulkerBox) meta.getBlockState();
int slot = 9; int slot = 9;

View File

@ -341,11 +341,12 @@ public class Settings {
)); ));
/* =============================== /* ===============================
* MAIN AUCTION GUI * INSPECTION GUI
* ===============================*/ * ===============================*/
public static final ConfigSetting GUI_SHULKER_INSPECT_TITLE = new ConfigSetting(config, "gui.shulker inspect.title", "&7&LInspecting Shulker Box"); public static final ConfigSetting GUI_SHULKER_INSPECT_TITLE = new ConfigSetting(config, "gui.shulker inspect.title", "&7&LInspecting Shulker Box");
public static final ConfigSetting GUI_SHULKER_INSPECT_BG_ITEM = new ConfigSetting(config, "gui.shulker inspect.bg item", XMaterial.BLACK_STAINED_GLASS_PANE.name()); public static final ConfigSetting GUI_SHULKER_INSPECT_BG_ITEM = new ConfigSetting(config, "gui.shulker inspect.bg item", XMaterial.BLACK_STAINED_GLASS_PANE.name());
/* =============================== /* ===============================
* AUCTION STACKS * AUCTION STACKS
* ===============================*/ * ===============================*/
@ -385,19 +386,20 @@ public class Settings {
"&eTime Left: &b%remaining_days%&fd &b%remaining_hours%&fh &b%remaining_minutes%&fm &b%remaining_seconds%s" "&eTime Left: &b%remaining_days%&fd &b%remaining_hours%&fh &b%remaining_minutes%&fm &b%remaining_seconds%s"
), "This the item stack lore that will be appended to", "auction items in /ah listings (lore will be applied first, then these)"); ), "This the item stack lore that will be appended to", "auction items in /ah listings (lore will be applied first, then these)");
public static final ConfigSetting AUCTION_PURCHASE_CONTROL_HEADER = new ConfigSetting(config, "auction items.controls.header", Collections.singletonList("&7-------------------------"));
public static final ConfigSetting AUCTION_PURCHASE_CONTROL_FOOTER = new ConfigSetting(config, "auction items.controls.footer", Collections.singletonList("&7-------------------------"));
public static final ConfigSetting AUCTION_PURCHASE_CONTROLS_BID_ON = new ConfigSetting(config, "auction items.controls.using bid", Arrays.asList( public static final ConfigSetting AUCTION_PURCHASE_CONTROLS_BID_ON = new ConfigSetting(config, "auction items.controls.using bid", Arrays.asList(
"&7-------------------------",
"&eLeft-Click&f: &bBid", "&eLeft-Click&f: &bBid",
"&eRight-Click&f: &bBuy Now", "&eRight-Click&f: &bBuy Now"
"&7-------------------------"
), "This will be appended at the end of the lore", "If the auction item is using a bid, this will show"); ), "This will be appended at the end of the lore", "If the auction item is using a bid, this will show");
public static final ConfigSetting AUCTION_PURCHASE_CONTROLS_BID_OFF = new ConfigSetting(config, "auction items.controls.not using bid", Arrays.asList( public static final ConfigSetting AUCTION_PURCHASE_CONTROLS_BID_OFF = new ConfigSetting(config, "auction items.controls.not using bid", Collections.singletonList(
"&7-------------------------", "&eLeft-Click&f: &bBuy Now"
"&eLeft-Click&f: &bBuy Now",
"&7-------------------------"
), "This will be appended at the end of the lore", "If the auction item is not using a bid, this will show"); ), "This will be appended at the end of the lore", "If the auction item is not using a bid, this will show");
public static final ConfigSetting AUCTION_PURCHASE_CONTROLS_INSPECTION = new ConfigSetting(config, "auction items.controls.inspection", Collections.singletonList("&eShift Right-Click to inspect"), "This will only be added to the control lore if the item can be inspected (skulker box or barrel)");
/* =============================== /* ===============================
* AUCTION STACKS * AUCTION STACKS
* ===============================*/ * ===============================*/