Lobby/src/main/java/eu/univento/lobby/story/events/StartMissionEvents.java

59 lines
2.0 KiB
Java

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