Solved Make Special Drop can't die

Discussion in 'Plugin Development' started by AlexanderL123, Nov 23, 2015.

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

    AlexanderL123

    Okay I created some code to spawn a paper when a Villager dies. This worked but when the Villager dies in Lava the paper will be burnt. Bad.
    Then I used the DamageEvent and yeah, I won't work and I dont know why. There are no errors.

    Code:
        @EventHandler
        public void onVillagerDeath(EntityDeathEvent event){
            if(event.getEntity() instanceof Villager){
                Villager e = (Villager) event.getEntity();
                Location l = event.getEntity().getLocation();
                ItemStack stack = new ItemStack(Material.PAPER, 1);
                ItemMeta meta = stack.getItemMeta();
                meta.setDisplayName(ZRPGTAG + "Villager Death Paper");
                List<String> lore = new ArrayList<String>();
                lore.add("Mob: Villager");
                lore.add("Type: " + e.getProfession().name());
                lore.add("Death by: " + e.getLastDamageCause().getCause().name());
                meta.setLore(lore);
                stack.setItemMeta(meta);
                Item d = l.getWorld().dropItemNaturally(l, stack);
                d.setCustomName(ZRPGTAG + "Villager Death Paper");
                d.setCustomNameVisible(true);
                d.setVelocity(new Vector(0, 0.5, 0));
                d.setFireTicks(0);
                return;
            }
        }
       
        @EventHandler
        public void onDeathBookDamage(EntityDamageEvent event){
            if(event.getEntity() instanceof Item){
                Item e = (Item) event.getEntity();
                if(e.getCustomName()!=null){
                    if(e.getCustomName().contains("Villager Death Book")){
                        event.setCancelled(true);
                        return;
                    }
                }
            }
        }
     
  2. Offline

    RoboticPlayer

    I wonder why it's not working...
     
  3. Offline

    AlexanderL123

    @henderry2019
    Wait lol.. Bukkit didn't paste all of my code -_-
    Code:
        @EventHandler
        public void onVillagerDeath(EntityDeathEvent event){
            if(event.getEntity() instanceof Villager){
                Villager e = (Villager) event.getEntity();
                Location l = event.getEntity().getLocation();
                ItemStack stack = new ItemStack(Material.PAPER, 1);
                ItemMeta meta = stack.getItemMeta();
                meta.setDisplayName(ZRPGTAG + "Villager Death Paper");
                List<String> lore = new ArrayList<String>();
                lore.add("Mob: Villager");
                lore.add("Type: " + e.getProfession().name());
                lore.add("Death by: " + e.getLastDamageCause().getCause().name());
                meta.setLore(lore);
                stack.setItemMeta(meta);
                Item d = l.getWorld().dropItemNaturally(l, stack);
                d.setCustomName(ZRPGTAG + "Villager Death Paper");
                d.setCustomNameVisible(true);
                d.setVelocity(new Vector(0, 0.5, 0));
                d.setFireTicks(0);
                return;
            }
        }
    Code:
        @EventHandler
        public void onPaperDamageBlock(EntityDamageByBlockEvent event){
            if(event.getEntity() instanceof Item){
                Item e = (Item) event.getEntity();
                if(e.getCustomName()!=null){
                        e.setFireTicks(0);
                        event.setCancelled(true);
                        return;
                }
            }
        }
      
        @EventHandler
        public void onPaperDamageEntity(EntityDamageByEntityEvent event){
            if(event.getEntity() instanceof Item){
                Item e = (Item) event.getEntity();
                if(e.getCustomName()!=null){
                        e.setFireTicks(0);
                        event.setCancelled(true);
                        return;
                }
            }
        }
    //INFO: The Item Death is by Lava
     
  4. Offline

    DannyDog

Thread Status:
Not open for further replies.

Share This Page