package com.rsscripting.rswarehouse.adminmenu; import com.rsscripting.rswarehouse.dao.admin.WarehouseStatisticsDAO; import com.rsscripting.rswarehouse.menuholder.RSMenuHolder; import com.rsscripting.rswarehouse.utils.RSMenuUtils; import com.rsscripting.rswarehouse.utils.VersionUtils; import com.rsscripting.rswarehouse.updatechecker.GitHubUpdateChecker; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import net.kyori.adventure.text.Component; import java.util.List; public class AdminMenu { public static final String MENU_TITLE = "Admin"; public static void open( Player player ) { Inventory menu = Bukkit.createInventory( new RSMenuHolder( "ADMIN" ), 18, Component.text( MENU_TITLE ).color( NamedTextColor.GOLD ) ); /* |-------------------------------------------------------------------------- | FILLER |-------------------------------------------------------------------------- */ ItemStack filler = RSMenuUtils.createFillerPane(); for (int i = 0; i < menu.getSize(); i++) { menu.setItem(i, filler); } /* |-------------------------------------------------------------------------- | BACK |-------------------------------------------------------------------------- */ menu.setItem( 4, RSMenuUtils.createMenuItem( Material.OAK_DOOR, "§eBack" ) ); /* |-------------------------------------------------------------------------- | RELOAD |-------------------------------------------------------------------------- */ menu.setItem( 6, RSMenuUtils.createMenuItem( Material.ENCHANTED_BOOK, "§cReload Plugin" ) ); /* |-------------------------------------------------------------------------- | VERSION |-------------------------------------------------------------------------- */ menu.setItem( 8, RSMenuUtils.createMenuItemWithLore( Material.BOOK, "§ePlugin Version", List.of( "§7Installed: §f" + VersionUtils.getVersion(), "", "§7Status: §f" + GitHubUpdateChecker.getUpdateStatus(), "", "§7Latest: §f" + ( GitHubUpdateChecker.getLatestVersion() == null ? "Unknown" : GitHubUpdateChecker.getLatestVersion() ) ) ) ); menu.setItem( 0, RSMenuUtils.createMenuItemWithLore( Material.BOOKSHELF, "§aCreate Category", List.of( "§7Create a new warehouse category." ) ) ); menu.setItem( 2, RSMenuUtils.createMenuItemWithLore( Material.WRITABLE_BOOK, "§aWarehouse Statistics", List.of( "§7Total Unique Items: §f" + String.format( "%,d", WarehouseStatisticsDAO.getTotalUniqueItems() ), "§7Total Items: §f" + String.format( "%,d", WarehouseStatisticsDAO.getTotalInventory() ), "", "§7Unique Enchanted Variants: §f" + String.format( "%,d", WarehouseStatisticsDAO.getTotalEnchantedVariants() ), "§7Unique Damaged Variants: §f" + String.format( "%,d", WarehouseStatisticsDAO.getTotalDamagedVariants() ), "§7Unique Partially Filled Variants: §f" + String.format( "%,d", WarehouseStatisticsDAO.getTotalPartiallyFilledVariants() ) ) ) ); menu.setItem( 12, RSMenuUtils.createMenuItemWithLore( Material.COMMAND_BLOCK, "§aCreate Server Command", List.of( "§7Create a server command entry." ) ) ); player.openInventory(menu); } }