Przeglądaj źródła

Move profile creation back to Login event, but only if the login is
allowed.

GJ 12 lat temu
rodzic
commit
80b7cc717f

+ 21 - 7
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -17,6 +17,8 @@ import org.bukkit.event.player.PlayerDropItemEvent;
 import org.bukkit.event.player.PlayerFishEvent;
 import org.bukkit.event.player.PlayerInteractEvent;
 import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.event.player.PlayerLoginEvent;
+import org.bukkit.event.player.PlayerLoginEvent.Result;
 import org.bukkit.event.player.PlayerPickupItemEvent;
 import org.bukkit.event.player.PlayerQuitEvent;
 import org.bukkit.event.player.PlayerRespawnEvent;
@@ -113,6 +115,25 @@ public class PlayerListener implements Listener {
         }
     }
 
+    /**
+     * Monitor PlayerLogin events.
+     *
+     * @param event The event to watch
+     */
+    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+    public void onPlayerLoginEvent(PlayerLoginEvent event) {
+        if (event.getResult() == Result.ALLOWED) {
+            Player player = event.getPlayer();
+
+            /* We can't use the other check here because a profile hasn't been created yet.*/
+            if (player == null || player.hasMetadata("NPC")) {
+                return;
+            }
+
+            Users.addUser(player).getProfile().actualizeRespawnATS();
+        }
+    }
+
     /**
      * Handle PlayerDropItem events that involve modifying the event.
      *
@@ -209,13 +230,6 @@ public class PlayerListener implements Listener {
     public void onPlayerJoin(PlayerJoinEvent event) {
         Player player = event.getPlayer();
 
-        /* We can't use the other check here because a profile hasn't been created yet.*/
-        if (player == null || player.hasMetadata("NPC")) {
-            return;
-        }
-
-        Users.addUser(player).getProfile().actualizeRespawnATS();
-
         if (Config.getInstance().getMOTDEnabled() && Permissions.motd(player)) {
             Motd.displayAll(player);
         }