Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ua.govnojon.libs.modules.bukkitfix;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.event.player.PlayerTeleportEvent;
- import ua.govnojon.libs.bukkitutil.schedule.Schedule;
- import ua.govnojon.libs.modules.user.User;
- public class JoinChangeWorldEvents implements Listener {
- /**
- * Баг на зависание при входе
- * @param event event
- */
- @EventHandler(priority = EventPriority.LOW)
- private void onLOWEST(PlayerLoginEvent event) {
- if(event.getResult().equals(PlayerLoginEvent.Result.ALLOWED)) {
- User.getUser(event.getPlayer()).setMetadata("join_teleport", true);
- }
- }
- /**
- * Баг на зависание при входе
- * @param event event
- */
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- private void onHIGHEST(PlayerTeleportEvent event) {
- if(event.getCause().equals(PlayerTeleportEvent.TeleportCause.PLUGIN)) {
- User user = User.getUser(event.getPlayer());
- if(user.hasMetadata("join_teleport")) {
- user.setMetadata("join_teleport_event", event);
- event.setCancelled(true);
- }
- }
- }
- /**
- * Баг на зависание при входе
- * @param event event
- */
- @EventHandler(priority = EventPriority.MONITOR)
- private void onLOWEST(PlayerJoinEvent event) {
- User user = User.getUser(event.getPlayer());
- user.removeMetadata("join_teleport");
- PlayerTeleportEvent teleportEvent = user.removeMetadata("join_teleport_event");
- if(teleportEvent != null) {
- Schedule.run(() -> {
- if(user.isActive()) {
- user.getPlayer().teleport(teleportEvent.getTo(), teleportEvent.getCause());
- }
- });
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement