82 lines
2.4 KiB
Java
82 lines
2.4 KiB
Java
package eu.univento.lobby.listeners;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.Effect;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.Sound;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
import org.bukkit.event.inventory.InventoryType.SlotType;
|
|
import org.bukkit.util.Vector;
|
|
|
|
import eu.univento.core.api.Config;
|
|
import eu.univento.core.api.CustomPlayer;
|
|
import eu.univento.lobby.Lobby;
|
|
|
|
/**
|
|
* handles teleport menus
|
|
* @author joethei
|
|
* @version 1.0
|
|
*/
|
|
public class Teleport implements Listener {
|
|
|
|
/**
|
|
* clicking items
|
|
* @param e InventoryClickEvent
|
|
*/
|
|
@EventHandler
|
|
public void onClick(InventoryClickEvent e) {
|
|
if (e.getWhoClicked() instanceof Player) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(e.getWhoClicked().getName());
|
|
if(e.getInventory().getName() == "§6Server-Menü") {
|
|
if(!e.getSlotType().equals(SlotType.OUTSIDE)) {
|
|
if(e.getCurrentItem().getType() == Material.GOLD_BLOCK) {
|
|
teleport(p, "TheBlock");
|
|
p.closeInventory();
|
|
}
|
|
if(e.getCurrentItem().getType() == Material.SNOW_BALL) {
|
|
teleport(p, "FlagAttack");
|
|
p.closeInventory();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* teleports player with effects to location
|
|
* @param p CustomPlayer
|
|
* @param location String
|
|
*/
|
|
@SuppressWarnings("deprecation")
|
|
private void teleport(CustomPlayer p, String location) {
|
|
Vector v = p.getLocation().getDirection().multiply(0D).setY(4D);
|
|
p.setVelocity(v);
|
|
p.playSound(p.getEyeLocation(), Sound.EXPLODE, 5.0F, 1.0F);
|
|
p.playEffect(p.getEyeLocation(), Effect.EXPLOSION_HUGE, 20);
|
|
Location loc = Config.readLocation("Lobby.Locs." + location);
|
|
Lobby.getOpenInventorys().add(p);
|
|
Bukkit.getScheduler().scheduleAsyncDelayedTask(Lobby.getInstance(), new Runnable() {
|
|
|
|
@Override
|
|
public void run() {
|
|
for (Player players : Bukkit.getOnlinePlayers()) {
|
|
players.playSound(p.getEyeLocation(), Sound.EXPLODE, 5.0F, 1.0F);
|
|
players.playEffect(p.getEyeLocation(), Effect.EXPLOSION_HUGE, 20);
|
|
}
|
|
p.teleport(loc);
|
|
for (Player players : Bukkit.getOnlinePlayers()) {
|
|
players.playSound(p.getEyeLocation(), Sound.EXPLODE, 5.0F, 1.0F);
|
|
players.playEffect(p.getEyeLocation(), Effect.EXPLOSION_HUGE, 20);
|
|
}
|
|
Lobby.getOpenInventorys().remove(p);
|
|
|
|
}
|
|
|
|
}, 80L);
|
|
}
|
|
|
|
} |