2020-09-09 16:12:32 +02:00
|
|
|
package com.songoda.ultimatestacker.listeners.entity;
|
|
|
|
|
|
|
|
import com.songoda.ultimatestacker.UltimateStacker;
|
|
|
|
import com.songoda.ultimatestacker.stackable.entity.EntityStack;
|
|
|
|
import com.songoda.ultimatestacker.stackable.entity.EntityStackManager;
|
|
|
|
import org.bukkit.entity.LivingEntity;
|
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.Listener;
|
|
|
|
import org.bukkit.event.entity.EntityTransformEvent;
|
|
|
|
|
|
|
|
public class EntityCurrentListener implements Listener {
|
|
|
|
|
|
|
|
private final UltimateStacker plugin;
|
|
|
|
|
|
|
|
public EntityCurrentListener(UltimateStacker plugin) {
|
|
|
|
this.plugin = plugin;
|
|
|
|
}
|
|
|
|
|
2023-05-05 10:57:17 +02:00
|
|
|
@EventHandler
|
2020-09-09 16:12:32 +02:00
|
|
|
public void onSpawn(EntityTransformEvent event) {
|
|
|
|
EntityStackManager stackManager = plugin.getEntityStackManager();
|
2023-02-04 14:48:13 +01:00
|
|
|
if (stackManager.isStackedEntity(event.getEntity())
|
2020-09-09 16:12:32 +02:00
|
|
|
&& event.getEntity() instanceof LivingEntity
|
|
|
|
&& event.getTransformedEntity() instanceof LivingEntity) {
|
2023-02-05 13:14:44 +01:00
|
|
|
if (event.getTransformReason().equals(EntityTransformEvent.TransformReason.SPLIT)) {
|
|
|
|
event.setCancelled(true);
|
|
|
|
return;
|
|
|
|
}
|
2023-02-04 14:48:13 +01:00
|
|
|
EntityStack stack = stackManager.updateStack((LivingEntity) event.getEntity(), (LivingEntity) event.getTransformedEntity());
|
2023-03-29 21:21:00 +02:00
|
|
|
if (stack == null) return;
|
2020-09-09 16:12:32 +02:00
|
|
|
stack.releaseHost();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|