Everything is working only that i dont know how to do if nobody is online that if(onl.getname... I know is wrong but i have no idea Code: public void openInventory(Player p) { Inventory inv = Bukkit.getServer().createInventory( null, 27, ("" + ChatColor.DARK_RED + ChatColor.BOLD + "Owners Online")); if (p.hasPermission("staff.owner")) { List<String> owner = new ArrayList<>(); for(Player onl : Bukkit.getOnlinePlayers()){ owner.add(onl.getName()); for(int z = 0; z< owner.size(); z++){ ItemStack owner1 = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal()); SkullMeta owner1m = (SkullMeta) owner1.getItemMeta(); owner1m.setDisplayName("" + ChatColor.AQUA + ChatColor.BOLD + (String) owner.get(z)); owner1.setItemMeta(owner1m); inv.setItem(z, owner1); p.openInventory(inv); if(onl.getName() == null){ p.sendMessage("" + ChatColor.DARK_RED + ChatColor.BOLD + "No Owners Online!"); }
@bronzzze Change it to simply iterate through all the online players and check for a permission that specifies what they should be listed as.
this is my code now. almsot nothing changed:/. I rly dont know what should i do. Code: public void openInventory(Player p) { Inventory inv = Bukkit.getServer().createInventory( null, 27, ("" + ChatColor.DARK_RED + ChatColor.BOLD + "Owners Online")); List<String> owner = new ArrayList<>(); for(Player onl : Bukkit.getOnlinePlayers()){ if(p.hasPermission("staff.owner")){ owner.add(onl.getName()); for(int z = 0; z< owner.size(); z++){ ItemStack owner1 = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal()); SkullMeta owner1m = (SkullMeta) owner1.getItemMeta(); owner1m.setOwner((String) owner.get(z)); owner1m.setDisplayName("" + ChatColor.AQUA + ChatColor.BOLD + (String) owner.get(z)); owner1.setItemMeta(owner1m); inv.setItem(z, owner1); p.openInventory(inv); if(onl == null); p.sendMessage("no staff online"); } } }
@bronzzze Well, you could try indenting the code into a readable format so we can see what's going on. Although I can tell you right now that a nested for-loop is not the answer.
Code: package me.bronzzze.staff; import java.util.ArrayList; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.SkullType; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; public class OwnerGUI { private OwnerGUI() { } private static OwnerGUI instance = new OwnerGUI(); public static OwnerGUI getInstance() { return instance; } Commands i = Commands.getInstance(); public void openInventory(Player p) { Inventory inv = Bukkit.getServer().createInventory(null, 27, ("" + ChatColor.DARK_RED + ChatColor.BOLD + "Owners Online")); List<String> owner = new ArrayList<>(); for (Player onl : Bukkit.getOnlinePlayers()) { if (p.hasPermission("staff.owner")) { owner.add(onl.getName()); for (int z = 0; z < owner.size(); z++) { ItemStack owner1 = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal()); SkullMeta owner1m = (SkullMeta) owner1.getItemMeta(); owner1m.setOwner((String) owner.get(z)); owner1m.setDisplayName("" + ChatColor.AQUA + ChatColor.BOLD + (String) owner.get(z)); owner1.setItemMeta(owner1m); inv.setItem(z, owner1); p.openInventory(inv); if (onl == null) ; p.sendMessage("no staff online"); } } } } Ok i format it