Skip to content

Commit

Permalink
more changes to custom inventories
Browse files Browse the repository at this point in the history
  • Loading branch information
steve4744 committed Jan 29, 2024
1 parent 834f09c commit 7f234c3
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 41 deletions.
14 changes: 7 additions & 7 deletions src/main/java/tntrun/eventhandler/MenuHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ public void onTrackerSelect(InventoryClickEvent e) {
if (inv == null) {
return;
}
if (!inv.equals(plugin.getMenus().getTrackerInv())) {
Player player = (Player) e.getWhoClicked();
if (!inv.equals(plugin.getMenus().getInv(player.getName()))) {
return;
}
if (!isValidClick(e)) {
Expand All @@ -59,7 +60,6 @@ public void onTrackerSelect(InventoryClickEvent e) {
return;
}

Player player = (Player) e.getWhoClicked();
String target = is.getItemMeta().getDisplayName();
Player targetPlayer = Bukkit.getPlayer(target);
Arena arena = plugin.amanager.getPlayerArena(player.getName());
Expand All @@ -79,7 +79,8 @@ public void onArenaSelect(InventoryClickEvent e) {
if (inv == null) {
return;
}
if (!inv.equals(plugin.getMenus().getArenaInv())) {
Player player = (Player) e.getWhoClicked();
if (!inv.equals(plugin.getMenus().getInv(player.getName()))) {
return;
}
if (!isValidClick(e)) {
Expand All @@ -94,7 +95,6 @@ public void onArenaSelect(InventoryClickEvent e) {
return;
}

Player player = (Player) e.getWhoClicked();
String arenaname = is.getItemMeta().getDisplayName();
String cmd = "tntrun join " + ChatColor.stripColor(arenaname);

Expand All @@ -108,7 +108,8 @@ public void onItemSelect(InventoryClickEvent e) {
if (inv == null) {
return;
}
if (!inv.equals(plugin.getMenus().getConfigInv())) {
Player player = (Player) e.getWhoClicked();
if (!inv.equals(plugin.getMenus().getInv(player.getName()))) {
return;
}
String title = e.getView().getTitle();
Expand All @@ -128,8 +129,7 @@ public void onItemSelect(InventoryClickEvent e) {
return;
}

inv.setMaxStackSize(256); // allow min and max players to go above 64
Player player = (Player) e.getWhoClicked();
inv.setMaxStackSize(256); // allow min and max players to go above 6
boolean leftclick = e.getClick().isLeftClick();
int page = Character.getNumericValue(title.charAt(title.indexOf("/") - 1));
int slot = e.getRawSlot();
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/tntrun/eventhandler/RestrictionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public void onPlayerInteract(PlayerInteractEvent e) {
}
plugin.getSound().ITEM_SELECT(player);
plugin.getShop().buildShopMenu(player);
player.openInventory(plugin.getShop().getShopInv());
player.openInventory(plugin.getShop().getInv(player.getName()));

} else if (e.getMaterial() == Material.getMaterial(plugin.getConfig().getString("items.info.material"))) {
e.setCancelled(true);
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/tntrun/eventhandler/ShopHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,16 @@ public ShopHandler(TNTRun plugin) {

@EventHandler
public void onClick(InventoryClickEvent e) {
if (!plugin.isGlobalShop() || !e.getClickedInventory().equals(plugin.getShop().getShopInv())) {
Player p = (Player) e.getWhoClicked();
if (!plugin.isGlobalShop() || !e.getClickedInventory().equals(plugin.getShop().getInv(p.getName()))) {
return;
}
e.setCancelled(true);

if (e.getRawSlot() == plugin.getShop().getInvsize() -1) {
return;
}
Player p = (Player) e.getWhoClicked();

Arena arena = plugin.amanager.getPlayerArena(p.getName());
if (arena == null) {
return;
Expand Down
47 changes: 21 additions & 26 deletions src/main/java/tntrun/menu/Menus.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Stream;

Expand All @@ -46,9 +48,7 @@ public class Menus {

private final TNTRun plugin;
private int keyPos;
private Inventory arenaInv;
private Inventory configInv;
private Inventory trackerInv;
private Map<String, Inventory> invMap = new HashMap<>();

public Menus(TNTRun plugin) {
this.plugin = plugin;
Expand All @@ -62,7 +62,8 @@ public Menus(TNTRun plugin) {
public void buildJoinMenu(Player player) {
TreeMap<String, Arena> arenas = getDisplayArenas();
int size = getJoinMenuSize(arenas.size());
arenaInv = Bukkit.createInventory(null, size, FormattingCodesParser.parseFormattingCodes(Messages.menutitle));
Inventory inv = Bukkit.createInventory(null, size, FormattingCodesParser.parseFormattingCodes(Messages.menutitle));
invMap.put(player.getName(), inv);

keyPos = 9;
//TODO provide permanent fix for > 28 arenas
Expand Down Expand Up @@ -93,11 +94,11 @@ public void buildJoinMenu(Player player) {
case 16, 25, 34, 43 -> keyPos+=3;
default -> keyPos++;
};
arenaInv.setItem(keyPos,is);
inv.setItem(keyPos,is);
});

fillEmptySlots(arenaInv, size);
player.openInventory(arenaInv);
fillEmptySlots(inv, size);
player.openInventory(inv);
}

/**
Expand All @@ -108,7 +109,8 @@ public void buildJoinMenu(Player player) {
*/
public void buildTrackerMenu(Player player, Arena arena) {
int size = getTrackerMenuSize(arena.getPlayersManager().getPlayersCount());
trackerInv = Bukkit.createInventory(null, size, FormattingCodesParser.parseFormattingCodes(Messages.menutracker));
Inventory inv = Bukkit.createInventory(null, size, FormattingCodesParser.parseFormattingCodes(Messages.menutracker));
invMap.put(player.getName(), inv);

for (Player p : arena.getPlayersManager().getPlayers()) {
ItemStack is = new ItemStack(Material.PLAYER_HEAD);
Expand All @@ -119,11 +121,11 @@ public void buildTrackerMenu(Player player, Arena arena) {
skullMeta.setOwningPlayer(p);
is.setItemMeta(skullMeta);

trackerInv.addItem(is);
inv.addItem(is);
}

fillEmptySlots(trackerInv, size);
player.openInventory(trackerInv);
fillEmptySlots(inv, size);
player.openInventory(inv);
}

/**
Expand All @@ -136,22 +138,23 @@ public void buildTrackerMenu(Player player, Arena arena) {
public void buildConfigMenu(Player player, Arena arena, int page) {
final int size = 36;
String title = "TNTRun setup {PAGE}/2 - ".replace("{PAGE}", String.valueOf(page)) + arena.getArenaName();
configInv = Bukkit.createInventory(null, size, title);
Inventory inv = Bukkit.createInventory(null, size, title);
invMap.put(player.getName(), inv);

if (page == 1) {
Stream.of(ConfigMenu.values()).forEach(item -> {
int slot = item.getSlot();
configInv.setItem(slot, createConfigItem(Material.getMaterial(String.valueOf(item)), slot, arena, page));
inv.setItem(slot, createConfigItem(Material.getMaterial(String.valueOf(item)), slot, arena, page));
});
} else {
Stream.of(ConfigMenu2.values()).forEach(item -> {
int slot = item.getSlot();
configInv.setItem(slot, createConfigItem(Material.getMaterial(String.valueOf(item)), slot, arena, page));
inv.setItem(slot, createConfigItem(Material.getMaterial(String.valueOf(item)), slot, arena, page));
});
}

fillEmptySlots(configInv, size);
player.openInventory(configInv);
fillEmptySlots(inv, size);
player.openInventory(inv);
}

/**
Expand Down Expand Up @@ -562,15 +565,7 @@ private int getTrackerMenuSize(int size) {
return invsize;
}

public Inventory getArenaInv() {
return arenaInv;
}

public Inventory getConfigInv() {
return configInv;
}

public Inventory getTrackerInv() {
return trackerInv;
public Inventory getInv(String playerName) {
return invMap.get(playerName);
}
}
11 changes: 6 additions & 5 deletions src/main/java/tntrun/utils/Shop.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public class Shop {
private Map<String, List<String>> commandMap = new HashMap<>(); // player-name -> commands
private boolean doublejumpPurchase;
private FileConfiguration cfg;
private Inventory shopInv;
private Map<String, Inventory> invMap = new HashMap<>();

public Shop(TNTRun plugin) {
this.plugin = plugin;
Expand All @@ -68,8 +68,9 @@ public Shop(TNTRun plugin) {
}

public void buildShopMenu(Player player) {
shopInv = Bukkit.createInventory(null, getInvsize(), getInvname());
setItems(shopInv, player);
Inventory inv = Bukkit.createInventory(null, getInvsize(), getInvname());
invMap.put(player.getName(), inv);
setItems(inv, player);
}

public void giveItem(int slot, Player player, String title) {
Expand Down Expand Up @@ -452,7 +453,7 @@ private int getEnchantmentAmplifier(String enchant) {
return (array.length > 2 && Utils.isNumber(array[2])) ? Integer.valueOf(array[2]) : 1;
}

public Inventory getShopInv() {
return shopInv;
public Inventory getInv(String playerName) {
return invMap.get(playerName);
}
}

0 comments on commit 7f234c3

Please sign in to comment.