59 lines
2.0 KiB
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);
|
|
}
|
|
} |