UltimateStacker/src/main/java/com/songoda/ultimatestacker/listeners/DeathListeners.java

48 lines
1.5 KiB
Java
Raw Normal View History

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;
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;
}
@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
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
}
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
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
}
}