mirror of
https://github.com/kiranhart/Auction-House.git
synced 2025-02-08 18:02:10 +01:00
2.19.0 Iteration changes + inspection of containers from the purchase menu
This commit is contained in:
parent
2623277ef4
commit
64bd512322
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ca.tweetzy</groupId>
|
||||
<artifactId>auctionhouse</artifactId>
|
||||
<version>2.18.4</version>
|
||||
<version>2.19.0</version>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
@ -167,6 +167,7 @@ public class GUIAuctionHouse extends Gui {
|
||||
|
||||
cleanup();
|
||||
e.manager.showGUI(e.player, new GUIConfirmPurchase(this.auctionPlayer, auctionItem, false));
|
||||
AuctionHouse.getInstance().getTransactionManager().addPrePurchase(e.player, auctionItem.getKey());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -2,6 +2,9 @@ package ca.tweetzy.auctionhouse.guis;
|
||||
|
||||
import ca.tweetzy.auctionhouse.AuctionHouse;
|
||||
import ca.tweetzy.auctionhouse.api.AuctionAPI;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionItem;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionPlayer;
|
||||
import ca.tweetzy.auctionhouse.guis.confirmation.GUIConfirmPurchase;
|
||||
import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper;
|
||||
import ca.tweetzy.auctionhouse.settings.Settings;
|
||||
import ca.tweetzy.core.gui.Gui;
|
||||
@ -26,9 +29,14 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
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 ItemStack container;
|
||||
List<ItemStack> items;
|
||||
private 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};
|
||||
private final ItemStack container;
|
||||
private List<ItemStack> items;
|
||||
|
||||
private AuctionPlayer auctionPlayer;
|
||||
private AuctionItem auctionItem;
|
||||
private boolean buyingSpecificQuantity;
|
||||
private boolean fromPurchaseGUI;
|
||||
|
||||
/**
|
||||
* Used to inspect a shulker box from it's item stack.
|
||||
@ -37,6 +45,7 @@ public class GUIContainerInspect extends Gui {
|
||||
*/
|
||||
public GUIContainerInspect(ItemStack container) {
|
||||
this.container = container;
|
||||
this.fromPurchaseGUI = false;
|
||||
setTitle(TextUtils.formatText(Settings.GUI_INSPECT_TITLE.getString()));
|
||||
setDefaultItem(Settings.GUI_INSPECT_BG_ITEM.getMaterial().parseItem());
|
||||
setUseLockedCells(false);
|
||||
@ -64,6 +73,20 @@ public class GUIContainerInspect extends Gui {
|
||||
setOnClose(close -> close.manager.showGUI(close.player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(close.player.getUniqueId()))));
|
||||
}
|
||||
|
||||
public GUIContainerInspect(ItemStack container, AuctionPlayer auctionPlayer, AuctionItem auctionItem, boolean buyingSpecificQuantity) {
|
||||
this(container);
|
||||
this.auctionPlayer = auctionPlayer;
|
||||
this.auctionItem = auctionItem;
|
||||
this.buyingSpecificQuantity = buyingSpecificQuantity;
|
||||
this.fromPurchaseGUI = true;
|
||||
|
||||
// Overwrite the default close, since they are accessing the inspection from the purchase screen
|
||||
setOnClose(close -> {
|
||||
AuctionHouse.getInstance().getTransactionManager().addPrePurchase(close.player, auctionItem.getKey());
|
||||
close.manager.showGUI(close.player, new GUIConfirmPurchase(this.auctionPlayer, this.auctionItem, this.buyingSpecificQuantity));
|
||||
});
|
||||
}
|
||||
|
||||
private void draw() {
|
||||
reset();
|
||||
pages = (int) Math.max(1, Math.ceil(this.items.size() / (double) 27L));
|
||||
@ -71,7 +94,14 @@ public class GUIContainerInspect extends Gui {
|
||||
for (int i : fillSlots) setItem(i, getDefaultItem());
|
||||
|
||||
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());
|
||||
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 -> {
|
||||
if (fromPurchaseGUI) {
|
||||
AuctionHouse.getInstance().getTransactionManager().addPrePurchase(e.player, auctionItem.getKey());
|
||||
e.manager.showGUI(e.player, new GUIConfirmPurchase(this.auctionPlayer, this.auctionItem, this.buyingSpecificQuantity));
|
||||
} else {
|
||||
e.manager.showGUI(e.player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(e.player.getUniqueId())));
|
||||
}
|
||||
});
|
||||
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());
|
||||
|
||||
|
@ -8,6 +8,7 @@ import ca.tweetzy.auctionhouse.auction.AuctionPlayer;
|
||||
import ca.tweetzy.auctionhouse.auction.AuctionSaleType;
|
||||
import ca.tweetzy.auctionhouse.exception.ItemNotFoundException;
|
||||
import ca.tweetzy.auctionhouse.guis.GUIAuctionHouse;
|
||||
import ca.tweetzy.auctionhouse.guis.GUIContainerInspect;
|
||||
import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper;
|
||||
import ca.tweetzy.auctionhouse.managers.SoundManager;
|
||||
import ca.tweetzy.auctionhouse.settings.Settings;
|
||||
@ -18,9 +19,11 @@ import ca.tweetzy.core.utils.TextUtils;
|
||||
import ca.tweetzy.core.utils.items.TItemBuilder;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.ShulkerBox;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Objects;
|
||||
@ -73,10 +76,21 @@ public class GUIConfirmPurchase extends Gui {
|
||||
}
|
||||
|
||||
private void draw() {
|
||||
ItemStack deserializeItem = AuctionAPI.getInstance().deserializeItem(this.auctionItem.getRawItem());
|
||||
|
||||
setItems(this.buyingSpecificQuantity ? 9 : 0, this.buyingSpecificQuantity ? 12 : 3, new TItemBuilder(Objects.requireNonNull(Settings.GUI_CONFIRM_BUY_YES_ITEM.getMaterial().parseMaterial())).setName(Settings.GUI_CONFIRM_BUY_YES_NAME.getString()).setLore(Settings.GUI_CONFIRM_BUY_YES_LORE.getStringList()).toItemStack());
|
||||
setItem(this.buyingSpecificQuantity ? 1 : 0, 4, AuctionAPI.getInstance().deserializeItem(this.auctionItem.getRawItem()));
|
||||
setItem(this.buyingSpecificQuantity ? 1 : 0, 4, deserializeItem);
|
||||
setItems(this.buyingSpecificQuantity ? 14 : 5, this.buyingSpecificQuantity ? 17 : 8, new TItemBuilder(Objects.requireNonNull(Settings.GUI_CONFIRM_BUY_NO_ITEM.getMaterial().parseMaterial())).setName(Settings.GUI_CONFIRM_BUY_NO_NAME.getString()).setLore(Settings.GUI_CONFIRM_BUY_NO_LORE.getStringList()).toItemStack());
|
||||
|
||||
setAction(this.buyingSpecificQuantity ? 1 : 0, 4, ClickType.LEFT, e -> {
|
||||
if (deserializeItem.getItemMeta() instanceof BlockStateMeta) {
|
||||
if (((BlockStateMeta) deserializeItem.getItemMeta()).getBlockState() instanceof ShulkerBox) {
|
||||
AuctionHouse.getInstance().getTransactionManager().getPrePurchaseHolding().remove(e.player);
|
||||
e.manager.showGUI(e.player, new GUIContainerInspect(e.clickedItem, this.auctionPlayer, this.auctionItem, this.buyingSpecificQuantity));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setActionForRange(this.buyingSpecificQuantity ? 14 : 5, this.buyingSpecificQuantity ? 17 : 8, ClickType.LEFT, e -> {
|
||||
e.gui.close();
|
||||
});
|
||||
|
@ -7,10 +7,7 @@ import ca.tweetzy.core.utils.TextUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -23,7 +20,7 @@ import java.util.stream.Collectors;
|
||||
public class TransactionManager {
|
||||
|
||||
private final ConcurrentHashMap<UUID, Transaction> transactions = new ConcurrentHashMap<>();
|
||||
private final HashMap<Player, UUID> prePurchaseHolding = new HashMap<>();
|
||||
private final ConcurrentHashMap<Player, UUID> prePurchaseHolding = new ConcurrentHashMap<>();
|
||||
|
||||
public void addTransaction(Transaction transaction) {
|
||||
if (transaction == null) return;
|
||||
@ -43,11 +40,27 @@ public class TransactionManager {
|
||||
}
|
||||
|
||||
public int getTotalItemsBought(UUID buyer) {
|
||||
return (int) this.transactions.entrySet().stream().filter(set -> set.getValue().getBuyer().equals(buyer)).count();
|
||||
int total = 0;
|
||||
Iterator<Map.Entry<UUID, Transaction>> iterator = this.transactions.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<UUID, Transaction> entry = iterator.next();
|
||||
if (entry.getValue().getBuyer().equals(buyer)) {
|
||||
total++;
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
public int getTotalItemsSold(UUID seller) {
|
||||
return (int) this.transactions.entrySet().stream().filter(set -> set.getValue().getSeller().equals(seller)).count();
|
||||
int total = 0;
|
||||
Iterator<Map.Entry<UUID, Transaction>> iterator = this.transactions.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<UUID, Transaction> entry = iterator.next();
|
||||
if (entry.getValue().getSeller().equals(seller)) {
|
||||
total++;
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
public void addPrePurchase(Player player, UUID uuid) {
|
||||
@ -58,8 +71,8 @@ public class TransactionManager {
|
||||
this.prePurchaseHolding.keySet().removeIf(p -> this.prePurchaseHolding.get(p).equals(uuid));
|
||||
}
|
||||
|
||||
public HashMap<Player, UUID> getPrePurchaseHolding() {
|
||||
return prePurchaseHolding;
|
||||
public ConcurrentHashMap<Player, UUID> getPrePurchaseHolding() {
|
||||
return this.prePurchaseHolding;
|
||||
}
|
||||
|
||||
public List<Player> getPrePurchasePlayers(UUID uuid) {
|
||||
|
Loading…
Reference in New Issue
Block a user