getting dropped items around a player

Discussion in 'Plugin Development' started by Rick221, Mar 5, 2015.

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

    Rick221

    I need help getting the dropped items around a player for a plugin I am making called donator staff, the staff in particular is a mangetism staff that if this is in your inventory it adds any dropped items around you to your inv

    Code:
    
    import java.util.List;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class Premium2 implements Listener {
       
    
        @EventHandler
        public void onClick(PlayerMoveEvent e) throws Exception{
       
            final Player p = e.getPlayer();
           
            if(!p.hasPermission("donatorstaff.premium.use")) return;
           
                  if (p.getItemInHand().hasItemMeta() == false) return;
                  if (p.getItemInHand().getItemMeta().hasDisplayName() == false) return;
                 
                  ItemStack  mstaff = new ItemStack(Material.BLAZE_ROD);
                  ItemMeta msm = mstaff.getItemMeta();
                  msm.setDisplayName(ChatColor.GREEN + "Magnetism Staff");
                  mstaff.setItemMeta(msm);
                         
                  if(!p.getInventory().contains(mstaff)) return;
    
                  if(p.getInventory().contains(mstaff)){
                     
                      if(p.getNearbyEntities(8, 8, 8) != null) return;
                          List<Entity> en = p.getNearbyEntities(8, 8, 8);
                      }
                                           
                         
                      }
                 
    }
     
  2. Offline

    pie_flavor

    @Rick221 You have posted perfectly valid code that will return no errors. Which part are you actually having trouble with?
     
  3. Offline

    Skionz

    @Rick221 You may want to remove the redundant boolean checks.
     
  4. Offline

    BaconStripzMan

    You don't need == false/true btw. for false do if(!thing.hasDisplayName()){ then for true if(thing.hashufhwueghu){
     
  5. Offline

    Rick221

    package me.horseflames.Staffs;


    Code:
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Item;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class Premium2 implements Listener {
     
    
        @EventHandler
        public void onClick(PlayerMoveEvent e) throws Exception{
     
            final Player p = e.getPlayer();
         
            if(!p.hasPermission("donatorstaff.premium.use")) return;
         
                if (p.getItemInHand().hasItemMeta() == false) return;
                if (p.getItemInHand().getItemMeta().hasDisplayName() == false) return;
               
                ItemStack  mstaff = new ItemStack(Material.BLAZE_ROD);
                ItemMeta msm = mstaff.getItemMeta();
                msm.setDisplayName(ChatColor.GREEN + "Magnetism Staff");
                mstaff.setItemMeta(msm);
                       
                if(!p.getInventory().contains(mstaff)) return;
    
                if(p.getInventory().contains(mstaff)){
                   
                    if(p.getNearbyEntities(8, 8, 8) != null) return;
                            Item entity = (Item) p.getNearbyEntities(8, 8, 8);
                            Bukkit.broadcastMessage("1");
                            if(entity instanceof Item) {
                                Bukkit.broadcastMessage("2");
    
                               ItemStack droppedItems = ((Item) entity).getItemStack();
                                Bukkit.broadcastMessage("3");
    
                                  p.getInventory().addItem(droppedItems);
                                    Bukkit.broadcastMessage("4");
    
                             
                        }
                }
               
                                       
                       
                    }
               
    }
    @pie_flavor I can not see what i am doing wrong
     
    Last edited: Mar 5, 2015
  6. Offline

    pie_flavor

  7. Offline

    Rick221

  8. Offline

    pie_flavor

    @Rick221 um dude it's not one single entity, it's a List<Entity>. Second of all, your code makes no sense anyway. First of all, for some reason you start by casting it to an Item, then check if the item object is an instanceof Item. That will throw an exception no matter what goes in. Second, you are exiting the code if the list of entities is not null, aka if they are existent. Not only will the method in question never return null, this would not work.
    Here is your new class coded (and indented) correctly.
    Code:
    import java.util.List;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Item;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    public class Premium2 implements Listener {
        @EventHandler
        public void onClick(PlayerMoveEvent e) throws Exception{
            final Player p = e.getPlayer();
        
            if(!p.hasPermission("donatorstaff.premium.use")) return;
        
            if (!p.getItemInHand().hasItemMeta()) return;
            if (!p.getItemInHand().getItemMeta().hasDisplayName()) return;
            if (!p.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.GREEN+"Magnetism Staff")) return;
            if (!p.getItemInHand().getType().equals(Material.BLAZE_ROD)) return;
            for (Entity entity : p.getNearbyEntities(8,8,8) {
                Bukkit.broadcastMessage("1");
                if(entity instanceof Item) {
                Bukkit.broadcastMessage("2");
                ItemStack droppedItem = ((Item) entity).getItemStack();
                Bukkit.broadcastMessage("3");
                p.getInventory().addItem(droppedItems);
                Bukkit.broadcastMessage("4");
                            
            }
        }
    }
     
Thread Status:
Not open for further replies.

Share This Page