3
0
Mirror von https://github.com/TheSilentPro/HeadDB.git synchronisiert 2024-12-27 11:20:05 +01:00

Redesigned the GUI & added main menu to categories

Dieser Commit ist enthalten in:
Silent 2020-11-19 22:11:06 +01:00
Ursprung 8ae2b7fecf
Commit 25283705f6
3 geänderte Dateien mit 39 neuen und 29 gelöschten Zeilen

Datei anzeigen

@ -22,9 +22,9 @@ public class LocalHead {
ItemStack item = new ItemStack(Material.PLAYER_HEAD);
SkullMeta meta = (SkullMeta) item.getItemMeta();
meta.setOwningPlayer(Bukkit.getOfflinePlayer(uuid));
meta.setDisplayName(Utils.colorize("&8" + name));
meta.setDisplayName(Utils.colorize("&e" + name));
List<String> lore = new ArrayList<>();
lore.add(Utils.colorize("&aUUID: " + uuid.toString()));
lore.add(Utils.colorize("&7UUID: " + uuid.toString()));
meta.setLore(lore);
item.setItemMeta(meta);

Datei anzeigen

@ -1,6 +1,7 @@
package tsp.headdb.inventory;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory;
@ -62,7 +63,7 @@ public class InventoryUtils {
if (e.getClick() == ClickType.RIGHT) {
HeadAPI.removeFavoriteHead(player.getUniqueId(), head.getId());
openFavoritesMenu(player);
Utils.sendMessage(player, "Removed &e" + head.getName() + " &8from favorites.");
Utils.sendMessage(player, "Removed &e" + head.getName() + " &7from favorites.");
}
}));
}
@ -87,7 +88,7 @@ public class InventoryUtils {
}
if (e.getClick() == ClickType.RIGHT) {
HeadAPI.addFavoriteHead(player.getUniqueId(), head.getId());
Utils.sendMessage(player, "Added &e" + head.getName() + " &8to favorites.");
Utils.sendMessage(player, "Added &e" + head.getName() + " &7to favorites.");
}
}));
}
@ -123,7 +124,7 @@ public class InventoryUtils {
public static void openDatabase(Player player) {
Inventory inventory = Bukkit.createInventory(null, 54, Utils.colorize("&c&lHeadDB &8(" + HeadAPI.getHeads().size() + ")"));
fillBorder(inventory, XMaterial.BLACK_STAINED_GLASS_PANE.parseItem());
fill(inventory, XMaterial.BLACK_STAINED_GLASS_PANE.parseItem());
for (Category category : Category.getCategories()) {
ItemStack item = category.getItem();
ItemMeta meta = item.getItemMeta();
@ -135,14 +136,14 @@ public class InventoryUtils {
inventory.addItem(item);
}
inventory.setItem(37, buildButton(
inventory.setItem(39, buildButton(
XMaterial.BOOK.parseItem(),
"&eFavorites",
"",
"&8Click to view your favorites")
);
inventory.setItem(43, buildButton(
inventory.setItem(41, buildButton(
XMaterial.COMPASS.parseItem(),
"&aLocal",
"",
@ -152,26 +153,29 @@ public class InventoryUtils {
player.openInventory(inventory);
}
public static void fillBorder(Inventory inv, ItemStack item) {
public static void fill(Inventory inv, ItemStack item) {
int size = inv.getSize();
int rows = (size + 1) / 9;
int[] ignored = new int[]{20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 39, 41};
// Fill top
for (int i = 0; i < 9; i++) {
inv.setItem(i, item);
// Fill
for (int i = 0; i < size; i++) {
if (!contains(i, ignored)) {
ItemStack slotItem = inv.getItem(i);
if (slotItem == null || slotItem.getType() == Material.AIR) {
inv.setItem(i, item);
}
}
}
}
private static boolean contains(int n, int... array) {
for (int i : array) {
if (i == n) {
return true;
}
}
// Fill bottom
for (int i = size - 9; i < size; i++) {
inv.setItem(i, item);
}
// Fill sides
for (int i = 2; i <= rows - 1; i++) {
int[] slots = new int[]{i * 9 - 1, (i - 1) * 9};
inv.setItem(slots[0], item);
inv.setItem(slots[1], item);
}
return false;
}
private static ItemStack buildButton(ItemStack item, String name, String... lore) {

Datei anzeigen

@ -33,6 +33,8 @@ public class PagedPane implements InventoryHolder {
protected Button controlBack;
@SuppressWarnings("WeakerAccess")
protected Button controlNext;
@SuppressWarnings("WeakerAccess")
protected Button controlMain;
/**
* @param pageSize The page size. inventory rows - 2
@ -145,6 +147,7 @@ public class PagedPane implements InventoryHolder {
controlBack = null;
controlNext = null;
controlMain = null;
createControls(inventory);
}
@ -169,6 +172,12 @@ public class PagedPane implements InventoryHolder {
}
return;
}
else if (event.getSlot() == inventory.getSize()- 5) {
if (controlMain != null){
controlMain.onClick(event);
}
return;
}
pages.get(currentIndex).handleClick(event);
@ -236,12 +245,9 @@ public class PagedPane implements InventoryHolder {
"&3&lPage &a&l%d &7/ &c&l%d",
getCurrentPage(), getPageAmount()
);
String lore = String.format(
Locale.ROOT,
"&7Current: &a%d",
getCurrentPage()
);
String lore = "&7Click to go to the &cMain Menu";
ItemStack itemStack = setMeta(HeadAPI.getHeadByValue("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q5MWY1MTI2NmVkZGM2MjA3ZjEyYWU4ZDdhNDljNWRiMDQxNWFkYTA0ZGFiOTJiYjc2ODZhZmRiMTdmNGQ0ZSJ9fX0=").getItemStack(), name, lore);
controlMain = new Button(itemStack, event -> InventoryUtils.openDatabase((Player) event.getWhoClicked()));
inventory.setItem(inventory.getSize() - 5, itemStack);
}
}
@ -250,7 +256,7 @@ public class PagedPane implements InventoryHolder {
int yMod = rowIndex * 9;
for (int i = 0; i < 9; i++) {
int slot = yMod + i;
inventory.setItem(slot, itemStack);
inventory.setItem(slot, setMeta(itemStack, ""));
}
}