RankGUI help

Discussion in 'Plugin Development' started by ChucknorisSR, Jul 5, 2015.

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

    ChucknorisSR

    So I am coding a rank GUI for my server. I want to see if args[0] is an online player. If so I want to be able to reference it in the case statements below. Please help.

    Code:
    package skits.commands;
    
    import java.util.ArrayList;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.Sound;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.inventory.meta.SkullMeta;
    
    import skits.util.BuyGUIArcher;
    import skits.util.CurrencyAPI;
    import skits.util.KitsAPI;
    import skits.util.RanksAPI;
    import skits.util.Util;
    
    public class GiveRankCommand implements CommandExecutor, Listener {
       
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 
            Player player = (Player)sender;  
           
    
           
            Inventory RankGUI = Bukkit.createInventory(player, 45, ChatColor.BLUE + "Rank GUI");
               
                ItemStack Head = new ItemStack (Material.SKULL_ITEM);
                SkullMeta headMeta = (SkullMeta)Head.getItemMeta();
                ItemStack Default = new ItemStack (Material.WOOD);
                ItemMeta defaultMeta = Default.getItemMeta();
                ItemStack Pro = new ItemStack (Material.PORTAL);
                ItemMeta proMeta = Pro.getItemMeta();
                ItemStack Helper = new ItemStack (Material.EMERALD);
                ItemMeta helperMeta = Helper.getItemMeta();
                ItemStack Mod = new ItemStack (Material.DIAMOND);
                ItemMeta modMeta = Mod.getItemMeta();
                ItemStack Dev = new ItemStack (Material.DIAMOND_PICKAXE);
                ItemMeta devMeta = Dev.getItemMeta();
                ItemStack VIP = new ItemStack (Material.RED_ROSE);
                ItemMeta vipMeta = VIP.getItemMeta();
                ItemStack Admin = new ItemStack (Material.REDSTONE);
                ItemMeta adminMeta = Admin.getItemMeta();
                ItemStack Owner = new ItemStack (Material.RECORD_4);
                ItemMeta ownerMeta = Owner.getItemMeta();
               
               
                headMeta.setOwner(args[0]);
                headMeta.setDisplayName(ChatColor.GREEN + args[0]);
                Head.setItemMeta(headMeta);
                defaultMeta.setDisplayName(ChatColor.WHITE + "Default");
                Default.setItemMeta(defaultMeta);
                proMeta.setDisplayName(ChatColor.DARK_PURPLE + "Pro");
                Pro.setItemMeta(proMeta);
                helperMeta.setDisplayName(ChatColor.GREEN + "Helper");
                Helper.setItemMeta(helperMeta);
                modMeta.setDisplayName(ChatColor.BLUE + "Mod");
                Mod.setItemMeta(modMeta);
                devMeta.setDisplayName(ChatColor.DARK_BLUE + "Dev");
                Dev.setItemMeta(devMeta);
                vipMeta.setDisplayName(ChatColor.GOLD + "VIP");
                VIP.setItemMeta(vipMeta);
                adminMeta.setDisplayName(ChatColor.RED + "Admin");
                Admin.setItemMeta(adminMeta);
                ownerMeta.setDisplayName(ChatColor.DARK_RED + "Owner");
                Owner.setItemMeta(ownerMeta);
           
               
                RankGUI.setItem(4, Head); 
                RankGUI.setItem(21, Default);
                RankGUI.setItem(33, Pro);
                RankGUI.setItem(34, Helper);
                RankGUI.setItem(35, Mod);
                RankGUI.setItem(36, Dev);
                RankGUI.setItem(37, VIP);
                RankGUI.setItem(38, Admin);
                RankGUI.setItem(39, Owner);
               
                player.openInventory(RankGUI); 
            return true;
                }
       
            @EventHandler
            public void onInventoryClick(InventoryClickEvent e) {
                if(!ChatColor.stripColor(e.getInventory().getName())
                        .equalsIgnoreCase("Rank GUI"))
                    return;
                Player player = (Player) e.getWhoClicked(); 
                e.setCancelled(true);
               
                if(e.getCurrentItem()==null
                        || e.getCurrentItem().getType()==Material.AIR
                        || !e.getCurrentItem().hasItemMeta()) { 
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.ANVIL_LAND, 1, 1);
                    return;
                }
               
                switch(e.getCurrentItem().getType()) {
                case SKULL_ITEM:
                    player.playSound(player.getLocation(), Sound.ANVIL_LAND, 1, 1);
                    break;
                case WOOD:
                    RanksAPI.giveRankDefault(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1);
                    break;   
                case PORTAL:
                    RanksAPI.giveRankPro(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1);
                    break;
                case EMERALD:
                    RanksAPI.giveRankHelper(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1);
                    break;
                case DIAMOND:
                    RanksAPI.giveRankMod(name, true); 
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1); 
                    break;
                case DIAMOND_PICKAXE:
                    RanksAPI.giveRankDev(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1); 
                    break;
                case RED_ROSE:
                    RanksAPI.giveRankVIP(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1); 
                    break;
                case REDSTONE:
                    RanksAPI.giveRankAdmin(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1); 
                    break;
                case RECORD_3:
                    RanksAPI.giveRankOwner(name, true);
                    player.closeInventory();
                    player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1);
                default:
                    player.closeInventory();
                    break;
    
                    }
                }  
        } 
    
    
       
    
    
    
    
           
           
    
     
  2. Offline

    WesJD

    @ChucknorisSR Just check if Bukkit#getPlayer(args[0]) isn't null.
     
  3. Offline

    ChucknorisSR

    That still doesn't allow me to get the player so I can give them a rank with my methods.
     
  4. Offline

    AzureDev

    @ChucknorisSR
    Code:
    Player target = Bukkit.getPlayer(args[0]);
    
    if(target == null) {
      //Player is offline
    } else {
      //Player is online, do whatever
    }
     
    WesJD likes this.
  5. Offline

    ChucknorisSR

    I still need away to use the variable "target" down is my case statements. That is how I am giving the player the rank.

    Bump still need responses!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
  6. Offline

    BagduFagdu

    @ChucknorisSR this worked for me back when in the days:

    Code:
    Player p = Bukkit.getServer().getPlayer(args[0]);
    if(p == null || !p.isOnline()) {
     return true;
    }
     
Thread Status:
Not open for further replies.

Share This Page