Advertisement
Lokha

Untitled

Mar 20th, 2020
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. package ua.govnojon.libs.modules.bukkitfix;
  2.  
  3. import org.bukkit.event.EventHandler;
  4. import org.bukkit.event.EventPriority;
  5. import org.bukkit.event.Listener;
  6. import org.bukkit.event.player.PlayerJoinEvent;
  7. import org.bukkit.event.player.PlayerLoginEvent;
  8. import org.bukkit.event.player.PlayerTeleportEvent;
  9. import ua.govnojon.libs.bukkitutil.schedule.Schedule;
  10. import ua.govnojon.libs.modules.user.User;
  11.  
  12. public class JoinChangeWorldEvents implements Listener {
  13.  
  14. /**
  15. * Баг на зависание при входе
  16. * @param event event
  17. */
  18. @EventHandler(priority = EventPriority.LOW)
  19. private void onLOWEST(PlayerLoginEvent event) {
  20. if(event.getResult().equals(PlayerLoginEvent.Result.ALLOWED)) {
  21. User.getUser(event.getPlayer()).setMetadata("join_teleport", true);
  22. }
  23. }
  24.  
  25. /**
  26. * Баг на зависание при входе
  27. * @param event event
  28. */
  29. @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
  30. private void onHIGHEST(PlayerTeleportEvent event) {
  31. if(event.getCause().equals(PlayerTeleportEvent.TeleportCause.PLUGIN)) {
  32. User user = User.getUser(event.getPlayer());
  33. if(user.hasMetadata("join_teleport")) {
  34. user.setMetadata("join_teleport_event", event);
  35. event.setCancelled(true);
  36. }
  37. }
  38. }
  39.  
  40. /**
  41. * Баг на зависание при входе
  42. * @param event event
  43. */
  44. @EventHandler(priority = EventPriority.MONITOR)
  45. private void onLOWEST(PlayerJoinEvent event) {
  46. User user = User.getUser(event.getPlayer());
  47. user.removeMetadata("join_teleport");
  48. PlayerTeleportEvent teleportEvent = user.removeMetadata("join_teleport_event");
  49. if(teleportEvent != null) {
  50. Schedule.run(() -> {
  51. if(user.isActive()) {
  52. user.getPlayer().teleport(teleportEvent.getTo(), teleportEvent.getCause());
  53. }
  54. });
  55. }
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement