From 2ffdf01dd87c64a7b42a24e90b003f14bfc7e47c Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Sat, 12 Aug 2023 18:59:41 +0200 Subject: [PATCH] Changes and fixes to GUI system --- .../com/alttd/playershops/config/MessageConfig.java | 6 +++--- .../java/com/alttd/playershops/gui/AbstractGui.java | 2 +- src/main/java/com/alttd/playershops/gui/HomeGui.java | 4 ++++ .../com/alttd/playershops/gui/ListPlayersGui.java | 11 +++++------ .../java/com/alttd/playershops/gui/ListShopsGui.java | 11 +++++------ .../alttd/playershops/gui/ListTransactionsGui.java | 6 +----- .../com/alttd/playershops/gui/PlayerSettingsGui.java | 3 +++ .../com/alttd/playershops/gui/ShopManagementGui.java | 4 ++++ .../com/alttd/playershops/handler/ShopHandler.java | 5 +++++ 9 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/alttd/playershops/config/MessageConfig.java b/src/main/java/com/alttd/playershops/config/MessageConfig.java index 2aebca1..749d9eb 100644 --- a/src/main/java/com/alttd/playershops/config/MessageConfig.java +++ b/src/main/java/com/alttd/playershops/config/MessageConfig.java @@ -66,9 +66,9 @@ public class MessageConfig extends AbstractConfiguration { } public static String GUI_HOME_TITLE = "PlayerShops"; - public static String GUI_LIST_PLAYERS_TITLE = "Player shops /"; - public static String GUI_LIST_SHOPS_TITLE = "Players shops by /"; - public static String GUI_LIST_TRANSACTIONS_TITLE = "Shop Transactions /"; + public static String GUI_LIST_PLAYERS_TITLE = "Player shops"; + public static String GUI_LIST_SHOPS_TITLE = "Players shops by "; + public static String GUI_LIST_TRANSACTIONS_TITLE = "Shop Transactions"; public static String GUI_MANAGE_TITLE = "Shop Manager"; public static String GUI_PLAYER_SETTINGS_TITLE = "Shop Settings Manager"; private static void guiTitles() { diff --git a/src/main/java/com/alttd/playershops/gui/AbstractGui.java b/src/main/java/com/alttd/playershops/gui/AbstractGui.java index b649364..57b2842 100644 --- a/src/main/java/com/alttd/playershops/gui/AbstractGui.java +++ b/src/main/java/com/alttd/playershops/gui/AbstractGui.java @@ -68,7 +68,7 @@ public abstract class AbstractGui implements InventoryHolder { } protected boolean addItem(ItemStack icon) { - if (currentSlot == inventory.getSize()) + if (currentSlot == inventory.getSize() - 9) return false; inventory.setItem(currentSlot, icon); diff --git a/src/main/java/com/alttd/playershops/gui/HomeGui.java b/src/main/java/com/alttd/playershops/gui/HomeGui.java index 8262b67..529e61e 100644 --- a/src/main/java/com/alttd/playershops/gui/HomeGui.java +++ b/src/main/java/com/alttd/playershops/gui/HomeGui.java @@ -27,6 +27,10 @@ public class HomeGui extends AbstractGui { @Override public void onClick(int slot, ItemStack item) { super.onClick(slot, item); + + if (slot >= 45) + return; + if (slot == GuiIcon.HOME_LIST_OWN_SHOPS.getSlot() && GuiIcon.HOME_LIST_OWN_SHOPS.getItemStack().equals(item)) { ListShopsGui listShopsGui = new ListShopsGui(uuid, uuid); listShopsGui.setLastGui(this); diff --git a/src/main/java/com/alttd/playershops/gui/ListPlayersGui.java b/src/main/java/com/alttd/playershops/gui/ListPlayersGui.java index da2a5a1..312c12e 100644 --- a/src/main/java/com/alttd/playershops/gui/ListPlayersGui.java +++ b/src/main/java/com/alttd/playershops/gui/ListPlayersGui.java @@ -18,12 +18,8 @@ public class ListPlayersGui extends AbstractGui { private final List owners; public ListPlayersGui(UUID uuid) { super(uuid); - this.owners = PlayerShops.getInstance().getShopHandler().getShopOwners(); - TagResolver placeholders = TagResolver.resolver( - Placeholder.unparsed("page", Integer.toString(pageIndex + 1)), - Placeholder.unparsed("pages", Integer.toString((int) Math.ceil(owners.size() / 45))) - ); - this.inventory = Bukkit.createInventory(this, INV_SIZE, Util.parseMiniMessage(MessageConfig.GUI_LIST_PLAYERS_TITLE, placeholders)); + this.owners = PlayerShops.getInstance().getShopHandler().getShopOwnersForThisServer(); + this.inventory = Bukkit.createInventory(this, INV_SIZE, Util.parseMiniMessage(MessageConfig.GUI_LIST_PLAYERS_TITLE)); initInvContents(); makeMenuBar(); } @@ -51,6 +47,9 @@ public class ListPlayersGui extends AbstractGui { public void onClick(int slot, ItemStack item) { super.onClick(slot, item); + if (slot >= 45) + return; + if (item.getType() != Material.PLAYER_HEAD) return; diff --git a/src/main/java/com/alttd/playershops/gui/ListShopsGui.java b/src/main/java/com/alttd/playershops/gui/ListShopsGui.java index c438234..e66c6e6 100644 --- a/src/main/java/com/alttd/playershops/gui/ListShopsGui.java +++ b/src/main/java/com/alttd/playershops/gui/ListShopsGui.java @@ -18,19 +18,15 @@ import java.util.UUID; public class ListShopsGui extends AbstractGui { - private UUID playerToList; List shops; public ListShopsGui(UUID uuid, UUID playerToList) { super(uuid); - this.playerToList = playerToList; this.shops = PlayerShops.getInstance().getShopHandler().getShops(playerToList); OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(playerToList); TagResolver placeholders = TagResolver.resolver( - Placeholder.unparsed("playername", offlinePlayer.hasPlayedBefore() ? offlinePlayer.getName() : "error"), - Placeholder.unparsed("page", Integer.toString(pageIndex)), - Placeholder.unparsed("pages", Integer.toString((int) Math.ceil(shops.size() / 45))) + Placeholder.unparsed("playername", offlinePlayer.hasPlayedBefore() ? offlinePlayer.getName() : "error") ); this.inventory = Bukkit.createInventory(this, INV_SIZE, Util.parseMiniMessage(MessageConfig.GUI_LIST_SHOPS_TITLE, placeholders)); initInvContents(); @@ -50,7 +46,7 @@ public class ListShopsGui extends AbstractGui { if (!shop.isInitialized()) item = GuiIcon.EMPTY_SHOP.getItemStack(); - if (!this.addItem(item)) { + if (!addItem(item)) { addNextPageItem(); break; } @@ -65,6 +61,9 @@ public class ListShopsGui extends AbstractGui { public void onClick(int slot, ItemStack item) { super.onClick(slot, item); + if (slot >= 45) + return; + Player player = getPlayer(); if (player == null) return; diff --git a/src/main/java/com/alttd/playershops/gui/ListTransactionsGui.java b/src/main/java/com/alttd/playershops/gui/ListTransactionsGui.java index 417db30..01dc725 100644 --- a/src/main/java/com/alttd/playershops/gui/ListTransactionsGui.java +++ b/src/main/java/com/alttd/playershops/gui/ListTransactionsGui.java @@ -20,11 +20,7 @@ public class ListTransactionsGui extends AbstractGui { public ListTransactionsGui(UUID uuid, PlayerShop shop) { super(uuid); this.transactions = shop.getTransactions(); - TagResolver placeholders = TagResolver.resolver( - Placeholder.unparsed("page", Integer.toString(pageIndex + 1)), - Placeholder.unparsed("pages", Integer.toString((int) Math.ceil(transactions.size() / 45))) - ); - this.inventory = Bukkit.createInventory(this, INV_SIZE, Util.parseMiniMessage(MessageConfig.GUI_LIST_TRANSACTIONS_TITLE, placeholders)); + this.inventory = Bukkit.createInventory(this, INV_SIZE, Util.parseMiniMessage(MessageConfig.GUI_LIST_TRANSACTIONS_TITLE)); initInvContents(); makeMenuBar(); } diff --git a/src/main/java/com/alttd/playershops/gui/PlayerSettingsGui.java b/src/main/java/com/alttd/playershops/gui/PlayerSettingsGui.java index 0839693..18e560e 100644 --- a/src/main/java/com/alttd/playershops/gui/PlayerSettingsGui.java +++ b/src/main/java/com/alttd/playershops/gui/PlayerSettingsGui.java @@ -58,5 +58,8 @@ public class PlayerSettingsGui extends AbstractGui { @Override public void onClick(int slot, ItemStack item) { super.onClick(slot, item); + + if (slot >= 45) + return; } } diff --git a/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java b/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java index 11772aa..16754a8 100644 --- a/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java +++ b/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java @@ -74,6 +74,10 @@ public class ShopManagementGui extends AbstractGui { @Override public void onClick(int slot, ItemStack item) { super.onClick(slot, item); + + if (slot >= 45) + return; + if (slot == GuiIcon.MANAGE_SHOP.getSlot() && GuiIcon.MANAGE_SHOP.getItemStack().equals(item)) { } else if (slot == GuiIcon.MANAGE_SHOP_BALANCE_ADD.getSlot() && GuiIcon.MANAGE_SHOP_BALANCE_ADD.getItemStack().equals(item)) { diff --git a/src/main/java/com/alttd/playershops/handler/ShopHandler.java b/src/main/java/com/alttd/playershops/handler/ShopHandler.java index 7cd05aa..63a1feb 100644 --- a/src/main/java/com/alttd/playershops/handler/ShopHandler.java +++ b/src/main/java/com/alttd/playershops/handler/ShopHandler.java @@ -9,6 +9,7 @@ import com.alttd.playershops.utils.Logger; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import lombok.Getter; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -77,6 +78,10 @@ public class ShopHandler { return shopLocation.values().stream().map(PlayerShop::getOwnerUUID).distinct().toList(); } + public List getShopOwnersForThisServer() { + return shopLocation.values().stream().filter(playerShop -> playerShop.getServer().equalsIgnoreCase(Bukkit.getServerName())).map(PlayerShop::getOwnerUUID).distinct().toList(); + } + public void addPlayerLimit(UUID uuid, int limit) { shopBuildLimits.put(uuid, limit); }