Staff online

Discussion in 'Plugin Development' started by bronzzze, Mar 4, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    bronzzze

    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!");
          
          
          
          
         }
        
        
        
    
     
  2. Offline

    Skionz

    @bronzzze Remove them from the list when they leave.
     
  3. Offline

    bronzzze

    oh yes

    so on playerleaveevnet right
     
    Last edited by a moderator: Mar 4, 2015
  4. Offline

    zDubsCrazy

    @bronzzze
    if(onl == null) {
    // the player is not online
    }
     
  5. Offline

    bronzzze

    zdubscrazy i tried this too but didnt work
     
  6. Offline

    1Rogue

    Player references don't magically disappear.
     
  7. @bronzzze You know you open the inventory every time it loops through a player right?
     
  8. Offline

    bronzzze

    ok i realized this plugin whole not working.

    Any suggestions what should i do?
     
    Last edited by a moderator: Mar 4, 2015
  9. Offline

    mythbusterma

    @bronzzze

    Change it to simply iterate through all the online players and check for a permission that specifies what they should be listed as.
     
  10. Offline

    bronzzze

    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");
                       
           
                        }
                           
           
           
       
               
                       
            }
           
                    }
            
     
  11. Offline

    mythbusterma

    @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.
     
  12. Offline

    bronzzze

    what do you mean with
    indenting the code into a readable format
     
  13. Offline

    Zombie_Striker

    If you're using a program such as Eclipse, you could use Control-Shift-F to format.
     
  14. Offline

    bronzzze

    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
     
Thread Status:
Not open for further replies.

Share This Page