JackOUT

Untitled

Jan 29th, 2021
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. package games.coob.skywars.event;
  2.  
  3. import games.coob.skywars.model.ArenaJoinMode;
  4. import games.coob.skywars.model.ArenaPlayer;
  5. import org.bukkit.Material;
  6. import org.bukkit.SoundGroup;
  7. import org.bukkit.block.Block;
  8. import org.bukkit.block.BlockFace;
  9. import org.bukkit.block.data.BlockData;
  10. import org.bukkit.block.data.type.RespawnAnchor;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.player.PlayerMoveEvent;
  15. import org.bukkit.event.player.PlayerTeleportEvent;
  16. import org.bukkit.potion.PotionEffect;
  17. import org.bukkit.potion.PotionEffectType;
  18. import org.jetbrains.annotations.NotNull;
  19. import org.jetbrains.annotations.Nullable;
  20. import org.mineacademy.fo.Common;
  21. import org.mineacademy.fo.Messenger;
  22. import org.mineacademy.fo.remain.CompSound;
  23.  
  24. import java.util.Scanner;
  25.  
  26. public class PortalListener implements Listener {
  27.  
  28. public RespawnAnchor respawnAnchor = new RespawnAnchor() {
  29.  
  30. @EventHandler
  31. public void onPlayerMoveEvent(final PlayerMoveEvent event) {
  32.  
  33. final Player player = event.getPlayer();
  34. final ArenaPlayer cache = ArenaPlayer.getCache(player);
  35. final ArenaJoinMode mode = cache.getMode();
  36. final Block portal = event.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN);
  37.  
  38. if (portal.getType() == Material.RESPAWN_ANCHOR) {
  39.  
  40. // TODO Run onPlayerTeleportEvent 5 seconds later
  41. Common.runLater(() -> {
  42.  
  43. });
  44.  
  45. CompSound.PORTAL_TRAVEL.play(player);
  46. player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 100, 1, false, false, false));
  47.  
  48. /**
  49. * Cancel the event if the player is in spectate mode, moves away or is standing on an uncharged respawn anchor
  50. **/
  51. if (mode == ArenaJoinMode.SPECTATING) {
  52. Messenger.error(player, "You cannot enter portals while spectating!");
  53.  
  54. if (portal.getType() != Material.RESPAWN_ANCHOR)
  55. Messenger.error(player, "Teleport cancelled, you have left the portal!");
  56.  
  57. event.setCancelled(true);
  58. }
  59. }
  60. }
  61.  
  62. @EventHandler
  63. private void onPlayerTeleport(final PlayerTeleportEvent event) {
  64.  
  65. final Player player = event.getPlayer();
  66. final Block portal = event.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN);
  67.  
  68. // TODO Find a random respawn anchor and teleport player to that respawn anchor
  69.  
  70. Common.tell(player, "&dTeleport success!");
  71. }
  72. }
  73. }
Add Comment
Please, Sign In to add comment