package de.Keyle.MyPet.util.hooks;
import de.Keyle.MyPet.MyPetApi;
import de.Keyle.MyPet.api.entity.MyPet;
import de.Keyle.MyPet.api.event.MyPetCallEvent;
import de.Keyle.MyPet.api.player.MyPetPlayer;
import de.Keyle.MyPet.api.util.hooks.PluginHookName;
import de.Keyle.MyPet.util.PluginHook;
import de.myzelyam.api.vanish.PlayerHideEvent;
import de.myzelyam.api.vanish.PlayerShowEvent;
import de.myzelyam.api.vanish.VanishAPI;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
@PluginHookName("SuperVanish")
public class SuperVanish extends PluginHook implements Listener {
@Override
public boolean onEnable() {
Bukkit.getPluginManager().registerEvents(this, MyPetApi.getPlugin());
return true;
}
@Override
public void onDisable() {
HandlerList.unregisterAll(this);
}
@EventHandler
public void on(MyPetCallEvent e) {
if (VanishAPI.isInvisible(e.getOwner().getPlayer())) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void on(PlayerHideEvent e) {
if (MyPetApi.getPlayerManager().isMyPetPlayer(e.getPlayer())) {
MyPetPlayer player = MyPetApi.getPlayerManager().getMyPetPlayer(e.getPlayer());
if (player.hasMyPet() && player.getMyPet().getStatus() == MyPet.PetState.Here) {
player.getMyPet().removePet(true);
}
}
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void on(PlayerShowEvent e) {
if (MyPetApi.getPlayerManager().isMyPetPlayer(e.getPlayer())) {
MyPetPlayer player = MyPetApi.getPlayerManager().getMyPetPlayer(e.getPlayer());
if (player.hasMyPet() && player.getMyPet().getStatus() == MyPet.PetState.Despawned && player.getMyPet().wantsToRespawn()) {
player.getMyPet().createEntity();
}
}
}
}