2019-05-23 22:15:04 +02:00
|
|
|
package com.songoda.ultimatestacker.listeners;
|
2018-11-06 04:33:10 +01:00
|
|
|
|
2019-07-23 16:55:49 +02:00
|
|
|
import com.songoda.lootables.loot.Drop;
|
2018-11-06 04:33:10 +01:00
|
|
|
import com.songoda.ultimatestacker.UltimateStacker;
|
2019-07-09 22:10:41 +02:00
|
|
|
import com.songoda.ultimatestacker.utils.Methods;
|
2019-07-08 18:39:57 +02:00
|
|
|
import com.songoda.ultimatestacker.utils.settings.Setting;
|
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 21:42:19 +02:00
|
|
|
import java.util.ArrayList;
|
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-23 16:55:49 +02:00
|
|
|
List<Drop> drops = instance.getLootablesManager().getDrops(event.getEntity());
|
2019-07-08 18:39:57 +02:00
|
|
|
|
2019-07-09 21:35:29 +02:00
|
|
|
boolean custom = false;
|
2019-07-23 16:55:49 +02:00
|
|
|
if (Setting.CUSTOM_DROPS.getBoolean()) {
|
2019-07-08 18:39:57 +02:00
|
|
|
event.getDrops().clear();
|
2019-07-08 21:42:19 +02:00
|
|
|
|
2019-07-09 22:10:41 +02:00
|
|
|
for (Drop drop : drops) {
|
|
|
|
if (drop == null) continue;
|
|
|
|
Methods.processDrop(event.getEntity(), drop);
|
2019-07-08 21:42:19 +02:00
|
|
|
}
|
2019-07-09 21:35:29 +02:00
|
|
|
custom = true;
|
2019-07-09 22:10:41 +02:00
|
|
|
} else {
|
|
|
|
for (ItemStack item : event.getDrops())
|
|
|
|
drops.add(new Drop(item));
|
|
|
|
}
|
2019-07-08 18:39:57 +02:00
|
|
|
|
|
|
|
|
2019-06-10 02:47:29 +02:00
|
|
|
if (instance.getEntityStackManager().isStacked(event.getEntity()))
|
|
|
|
instance.getEntityStackManager().getStack(event.getEntity())
|
2019-07-09 22:10:41 +02:00
|
|
|
.onDeath(event.getEntity(), drops, custom, event.getDroppedExp());
|
2018-11-06 04:33:10 +01:00
|
|
|
}
|
|
|
|
}
|