Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package games.coob.skywars.event;
- import games.coob.skywars.model.ArenaJoinMode;
- import games.coob.skywars.model.ArenaPlayer;
- import org.bukkit.Material;
- import org.bukkit.SoundGroup;
- import org.bukkit.block.Block;
- import org.bukkit.block.BlockFace;
- import org.bukkit.block.data.BlockData;
- import org.bukkit.block.data.type.RespawnAnchor;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.event.player.PlayerTeleportEvent;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.potion.PotionEffectType;
- import org.jetbrains.annotations.NotNull;
- import org.jetbrains.annotations.Nullable;
- import org.mineacademy.fo.Common;
- import org.mineacademy.fo.Messenger;
- import org.mineacademy.fo.remain.CompSound;
- import java.util.Scanner;
- public class PortalListener implements Listener {
- public RespawnAnchor respawnAnchor = new RespawnAnchor() {
- @EventHandler
- public void onPlayerMoveEvent(final PlayerMoveEvent event) {
- final Player player = event.getPlayer();
- final ArenaPlayer cache = ArenaPlayer.getCache(player);
- final ArenaJoinMode mode = cache.getMode();
- final Block portal = event.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN);
- if (portal.getType() == Material.RESPAWN_ANCHOR) {
- // TODO Run onPlayerTeleportEvent 5 seconds later
- Common.runLater(() -> {
- });
- CompSound.PORTAL_TRAVEL.play(player);
- player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 100, 1, false, false, false));
- /**
- * Cancel the event if the player is in spectate mode, moves away or is standing on an uncharged respawn anchor
- **/
- if (mode == ArenaJoinMode.SPECTATING) {
- Messenger.error(player, "You cannot enter portals while spectating!");
- if (portal.getType() != Material.RESPAWN_ANCHOR)
- Messenger.error(player, "Teleport cancelled, you have left the portal!");
- event.setCancelled(true);
- }
- }
- }
- @EventHandler
- private void onPlayerTeleport(final PlayerTeleportEvent event) {
- final Player player = event.getPlayer();
- final Block portal = event.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN);
- // TODO Find a random respawn anchor and teleport player to that respawn anchor
- Common.tell(player, "&dTeleport success!");
- }
- }
- }
Add Comment
Please, Sign In to add comment