2019-05-23 22:15:04 +02:00
|
|
|
package com.songoda.ultimatestacker.listeners;
|
2018-11-06 04:33:10 +01:00
|
|
|
|
|
|
|
import com.songoda.ultimatestacker.UltimateStacker;
|
2019-07-08 18:39:57 +02:00
|
|
|
import com.songoda.ultimatestacker.utils.settings.Setting;
|
|
|
|
import org.bukkit.Material;
|
|
|
|
import org.bukkit.entity.Pig;
|
2018-11-06 04:33:10 +01:00
|
|
|
import org.bukkit.event.EventHandler;
|
2019-07-05 19:47:29 +02:00
|
|
|
import org.bukkit.event.EventPriority;
|
2018-11-06 04:33:10 +01:00
|
|
|
import org.bukkit.event.Listener;
|
|
|
|
import org.bukkit.event.entity.EntityDeathEvent;
|
2019-07-08 18:39:57 +02:00
|
|
|
import org.bukkit.inventory.ItemStack;
|
2018-11-06 04:33:10 +01:00
|
|
|
|
2019-07-08 18:39:57 +02:00
|
|
|
import java.util.List;
|
2019-02-25 15:23:41 +01:00
|
|
|
|
2018-11-06 04:33:10 +01:00
|
|
|
public class DeathListeners implements Listener {
|
|
|
|
|
|
|
|
private final UltimateStacker instance;
|
|
|
|
|
|
|
|
public DeathListeners(UltimateStacker instance) {
|
|
|
|
this.instance = instance;
|
|
|
|
}
|
|
|
|
|
2019-07-05 19:47:29 +02:00
|
|
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
2018-11-06 04:33:10 +01:00
|
|
|
public void onEntityDeath(EntityDeathEvent event) {
|
2019-07-08 18:39:57 +02:00
|
|
|
List<ItemStack> items = Setting.CUSTOM_DROPS.getBoolean()
|
|
|
|
? instance.getLootManager().getDrops(event.getEntity()) : event.getDrops();
|
|
|
|
|
|
|
|
if (items.size() != 0) {
|
|
|
|
if (event.getEntity() instanceof Pig && ((Pig) event.getEntity()).hasSaddle())
|
|
|
|
event.getEntity().getWorld().dropItemNaturally(event.getEntity().getLocation(),
|
|
|
|
new ItemStack(Material.SADDLE));
|
|
|
|
|
|
|
|
event.getDrops().clear();
|
|
|
|
} else
|
|
|
|
items = event.getDrops();
|
|
|
|
|
|
|
|
for (ItemStack item : items) {
|
|
|
|
if (item == null) continue;
|
|
|
|
event.getEntity().getWorld().dropItemNaturally(event.getEntity().getLocation(), item);
|
|
|
|
}
|
|
|
|
|
2019-06-10 02:47:29 +02:00
|
|
|
if (instance.getEntityStackManager().isStacked(event.getEntity()))
|
|
|
|
instance.getEntityStackManager().getStack(event.getEntity())
|
2019-07-08 18:39:57 +02:00
|
|
|
.onDeath(event.getEntity(), items, event.getDroppedExp());
|
2018-11-06 04:33:10 +01:00
|
|
|
}
|
|
|
|
}
|