package eu.univento.lobby.story.events; import eu.univento.core.api.entity.EntityModifier; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.story.StoryMission; import eu.univento.lobby.Lobby; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.Giant; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; /** * @author joethei * @version 0.1 */ public class StartMissionEvents implements Listener{ private StoryMission mission; public StartMissionEvents(StoryMission mission) { this.mission = mission; mission.registerEvent(this); } @EventHandler public void onSneak(PlayerToggleSneakEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(p == mission.getPlayer()) { p.sendMessage("Hallo du da"); p.setItemInHand(new ItemStack(Material.DIAMOND_SWORD)); EntityModifier.Builder crepper = new EntityModifier(p.getWorld().spawnEntity(p.getLocation(), EntityType.CREEPER)).modify(); crepper.setNoAI(true).followPlayer(p, 1.0F); Giant giant = p.getWorld().spawn(p.getLocation(), Giant.class); giant.getEquipment().setItemInMainHand(p.getItemInHand()); giant.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 999)); giant.setAI(false); giant.setGravity(false); Bukkit.getScheduler().scheduleSyncDelayedTask(Lobby.getInstance(), () -> { crepper.die(); giant.remove(); }, 20 * 20L); } } @EventHandler public void onDamage(EntityDamageEvent e) { if(e.getEntity() instanceof Giant) e.setCancelled(true); } }