mirror of
https://github.com/kiranhart/Auction-House.git
synced 2025-02-02 17:01:23 +01:00
individual transaction viewer
This commit is contained in:
parent
e24b871804
commit
7e1d0af147
@ -3,8 +3,10 @@ package ca.tweetzy.auctionhouse.api;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionItem;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionSaleType;
|
||||
import ca.tweetzy.auctionhouse.settings.Settings;
|
||||
import ca.tweetzy.core.compatibility.XMaterial;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import org.bukkit.util.io.BukkitObjectInputStream;
|
||||
import org.bukkit.util.io.BukkitObjectOutputStream;
|
||||
|
||||
@ -159,6 +161,20 @@ public class AuctionAPI {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to create a player head
|
||||
*
|
||||
* @param name is the name of the player
|
||||
* @return the player skull
|
||||
*/
|
||||
public ItemStack getPlayerHead(String name) {
|
||||
ItemStack stack = XMaterial.PLAYER_HEAD.parseItem();
|
||||
SkullMeta meta = (SkullMeta) stack.getItemMeta();
|
||||
meta.setOwner(name);
|
||||
stack.setItemMeta(meta);
|
||||
return stack;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to send a discord message to a webhook link
|
||||
*
|
||||
|
@ -1,8 +1,18 @@
|
||||
package ca.tweetzy.auctionhouse.guis.transaction;
|
||||
|
||||
import ca.tweetzy.auctionhouse.api.AuctionAPI;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionItem;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionPlayer;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionSaleType;
|
||||
import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper;
|
||||
import ca.tweetzy.auctionhouse.settings.Settings;
|
||||
import ca.tweetzy.auctionhouse.transaction.Transaction;
|
||||
import ca.tweetzy.core.gui.Gui;
|
||||
import ca.tweetzy.core.gui.GuiUtils;
|
||||
import ca.tweetzy.core.utils.TextUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* The current file has been created by Kiran Hart
|
||||
@ -12,11 +22,22 @@ import ca.tweetzy.core.gui.Gui;
|
||||
*/
|
||||
public class GUITransactionView extends Gui {
|
||||
|
||||
final AuctionPlayer auctionPlayer;
|
||||
final Transaction transaction;
|
||||
|
||||
public GUITransactionView(AuctionPlayer auctionPlayer, Transaction transaction) {
|
||||
this.auctionPlayer = auctionPlayer;
|
||||
this.transaction = transaction;
|
||||
setTitle(TextUtils.formatText(Settings.GUI_TRANSACTION_VIEW_TITLE.getString()));
|
||||
setRows(6);
|
||||
setAcceptsItems(false);
|
||||
setDefaultItem(Settings.GUI_TRANSACTION_VIEW_BACKGROUND_ITEM.getMaterial().parseItem());
|
||||
setUseLockedCells(Settings.GUI_TRANSACTION_VIEW_BACKGROUND_FILL.getBoolean());
|
||||
|
||||
setButton(5, 0, 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 GUITransactionList(auctionPlayer)));
|
||||
setItem(1, 4, AuctionAPI.getInstance().deserializeItem(transaction.getAuctionItem().getRawItem()));
|
||||
setItem(3, 2, GuiUtils.createButtonItem(AuctionAPI.getInstance().getPlayerHead(Bukkit.getOfflinePlayer(transaction.getSeller()).getName()), Settings.GUI_TRANSACTION_VIEW_ITEM_SELLER_NAME.getString(), Settings.GUI_TRANSACTION_VIEW_ITEM_SELLER_LORE.getStringList()));
|
||||
setItem(3, 6, GuiUtils.createButtonItem(AuctionAPI.getInstance().getPlayerHead(Bukkit.getOfflinePlayer(transaction.getBuyer()).getName()), Settings.GUI_TRANSACTION_VIEW_ITEM_BUYER_NAME.getString(), Settings.GUI_TRANSACTION_VIEW_ITEM_BUYER_LORE.getStringList()));
|
||||
setItem(3,4, ConfigurationItemHelper.createConfigurationItem(Settings.GUI_TRANSACTION_VIEW_ITEM_INFO_ITEM.getString(), Settings.GUI_TRANSACTION_VIEW_ITEM_INFO_NAME.getString(), Settings.GUI_TRANSACTION_VIEW_ITEM_INFO_LORE.getStringList(), new HashMap<String, Object>(){{
|
||||
put("%transaction_id%", transaction.getId().toString());
|
||||
put("%sale_type%", transaction.getAuctionSaleType() == AuctionSaleType.USED_BIDDING_SYSTEM ? "Won Auction" : "Bought Immediately");
|
||||
put("%transaction_date%", AuctionAPI.getInstance().convertMillisToDate(transaction.getTransactionTime()));
|
||||
put("%final_price%", String.format("%,.2f", transaction.getFinalPrice()));
|
||||
}}));
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package ca.tweetzy.auctionhouse.settings;
|
||||
|
||||
import ca.tweetzy.auctionhouse.AuctionHouse;
|
||||
import ca.tweetzy.core.compatibility.XMaterial;
|
||||
import ca.tweetzy.core.compatibility.XSound;
|
||||
import ca.tweetzy.core.configuration.Config;
|
||||
import ca.tweetzy.core.configuration.ConfigSetting;
|
||||
@ -229,7 +230,7 @@ public class Settings {
|
||||
/* ===============================
|
||||
* TRANSACTIONS LIST GUI
|
||||
* ===============================*/
|
||||
public static final ConfigSetting GUI_TRANSACTIONS_TITLE = new ConfigSetting(config, "gui.transactions.title", "&7Transaction History");
|
||||
public static final ConfigSetting GUI_TRANSACTIONS_TITLE = new ConfigSetting(config, "gui.transactions.title", "&7<ransaction History");
|
||||
|
||||
public static final ConfigSetting GUI_TRANSACTIONS_ITEM_TOGGLE_OWN_ITEM = new ConfigSetting(config, "gui.transactions.items.toggle own.item", "NETHER_STAR");
|
||||
public static final ConfigSetting GUI_TRANSACTIONS_ITEM_TOGGLE_OWN_NAME = new ConfigSetting(config, "gui.transactions.items.toggle own.name", "&e<oggle Your Transactions");
|
||||
@ -249,6 +250,33 @@ public class Settings {
|
||||
"&7Click to view more details"
|
||||
));
|
||||
|
||||
/* ===============================
|
||||
* TRANSACTIONS VIEW GUI
|
||||
* ===============================*/
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_TITLE = new ConfigSetting(config, "gui.transaction view.title", "&7&LViewing Transaction");
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_BACKGROUND_FILL = new ConfigSetting(config, "gui.transaction view.background.fill", true);
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_BACKGROUND_ITEM = new ConfigSetting(config, "gui.transaction view.background.item", "BLACK_STAINED_GLASS_PANE");
|
||||
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_SELLER_NAME = new ConfigSetting(config, "gui.transaction view.items.seller.name", "&e%seller_name%");
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_SELLER_LORE = new ConfigSetting(config, "gui.transaction view.items.seller.lore", Arrays.asList(
|
||||
"&7This is the player who sold the item.",
|
||||
"&7ID&F: &e%seller_id%"
|
||||
));
|
||||
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_BUYER_NAME = new ConfigSetting(config, "gui.transaction view.items.buyer.name", "&e%buyer_name%");
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_BUYER_LORE = new ConfigSetting(config, "gui.transaction view.items.buyer.lore", Arrays.asList(
|
||||
"&7This is the player who bought the item.",
|
||||
"&7ID&F: &e%buyer_id%"
|
||||
));
|
||||
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_INFO_ITEM = new ConfigSetting(config, "gui.transaction view.items.information.item", "PAPER");
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_INFO_NAME = new ConfigSetting(config, "gui.transaction view.items.information.name", "&e%seller_name%");
|
||||
public static final ConfigSetting GUI_TRANSACTION_VIEW_ITEM_INFO_LORE = new ConfigSetting(config, "gui.transaction view.items.information.lore", Arrays.asList(
|
||||
"&7ID&f: &e%transaction_id%",
|
||||
"&7Sale Type&f: &e%sale_type%",
|
||||
"&7Date&f: &e%transaction_date%",
|
||||
"&7Final Price&f: &e%final_price%"
|
||||
));
|
||||
|
||||
/* ===============================
|
||||
* AUCTION STACKS
|
||||
|
@ -25,6 +25,7 @@ public class Transaction implements Serializable {
|
||||
private final long transactionTime;
|
||||
private final AuctionItem auctionItem;
|
||||
private final AuctionSaleType auctionSaleType;
|
||||
private final double finalPrice;
|
||||
|
||||
public Transaction(UUID id, UUID seller, UUID buyer, long transactionTime, AuctionItem auctionItem, AuctionSaleType auctionSaleType) {
|
||||
this.id = id;
|
||||
@ -33,5 +34,6 @@ public class Transaction implements Serializable {
|
||||
this.transactionTime = transactionTime;
|
||||
this.auctionItem = auctionItem;
|
||||
this.auctionSaleType = auctionSaleType;
|
||||
this.finalPrice = auctionSaleType == AuctionSaleType.USED_BIDDING_SYSTEM ? auctionItem.getCurrentPrice() : auctionItem.getBasePrice();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user