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(); } } } }