44 lines
1.7 KiB
Java
44 lines
1.7 KiB
Java
package com.songoda.ultimatestacker.listeners.entity;
|
|
|
|
import com.songoda.ultimatestacker.UltimateStacker;
|
|
import com.songoda.ultimatestacker.settings.Settings;
|
|
import com.songoda.ultimatestacker.stackable.entity.EntityStack;
|
|
import com.songoda.ultimatestacker.stackable.entity.EntityStackManager;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Entity;
|
|
import org.bukkit.entity.LivingEntity;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.entity.EntityDeathEvent;
|
|
import org.bukkit.event.entity.EntityTransformEvent;
|
|
import org.bukkit.event.world.EntitiesLoadEvent;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class EntityCurrentListener implements Listener {
|
|
|
|
private final UltimateStacker plugin;
|
|
|
|
public EntityCurrentListener(UltimateStacker plugin) {
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
|
public void onSpawn(EntityTransformEvent event) {
|
|
EntityStackManager stackManager = plugin.getEntityStackManager();
|
|
if (stackManager.isStackedEntity(event.getEntity())
|
|
&& event.getEntity() instanceof LivingEntity
|
|
&& event.getTransformedEntity() instanceof LivingEntity) {
|
|
if (event.getTransformReason().equals(EntityTransformEvent.TransformReason.SPLIT)) {
|
|
event.setCancelled(true);
|
|
return;
|
|
}
|
|
EntityStack stack = stackManager.updateStack((LivingEntity) event.getEntity(), (LivingEntity) event.getTransformedEntity());
|
|
if (stack == null) return;
|
|
stack.releaseHost();
|
|
}
|
|
}
|
|
}
|