diff options
author | snowleo <schneeleo@gmail.com> | 2011-06-12 02:47:50 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-06-12 02:59:34 +0200 |
commit | 96b0f27c5117c189a2686f6d1fc534a462e433c2 (patch) | |
tree | c7a719b348dab2034a4a441aebacbf0ffd4c25a1 | |
parent | 4051a377c3166768a7c00bb76ecc3a04db87e168 (diff) | |
download | Essentials-96b0f27c5117c189a2686f6d1fc534a462e433c2.tar Essentials-96b0f27c5117c189a2686f6d1fc534a462e433c2.tar.gz Essentials-96b0f27c5117c189a2686f6d1fc534a462e433c2.tar.lz Essentials-96b0f27c5117c189a2686f6d1fc534a462e433c2.tar.xz Essentials-96b0f27c5117c189a2686f6d1fc534a462e433c2.zip |
Fix for Craftbukkit Bug 912stable-2.3.3
-rw-r--r-- | EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index e1e804e58..96915bd89 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -15,7 +15,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; public class EssentialsSpawnPlayerListener extends PlayerListener { @Override - public void onPlayerRespawn(PlayerRespawnEvent event) + public void onPlayerRespawn(final PlayerRespawnEvent event) { final IEssentials ess = Essentials.getStatic(); final User user = ess.getUser(event.getPlayer()); @@ -25,7 +25,8 @@ public class EssentialsSpawnPlayerListener extends PlayerListener if (ess.getSettings().getRespawnAtHome()) { Location home = user.getHome(user.getLocation()); - if (home == null) { + if (home == null) + { throw new Exception(); } event.setRespawnLocation(home); @@ -36,28 +37,38 @@ public class EssentialsSpawnPlayerListener extends PlayerListener { } Location spawn = ess.getSpawn().getSpawn(user.getGroup()); - if (spawn == null) { + if (spawn == null) + { return; } event.setRespawnLocation(spawn); } @Override - public void onPlayerJoin(PlayerJoinEvent event) + public void onPlayerJoin(final PlayerJoinEvent event) { final IEssentials ess = Essentials.getStatic(); final User user = ess.getUser(event.getPlayer()); - + if (!user.isNew()) { return; } user.setNew(false); - try { - user.getTeleport().now(ess.getSpawn().getSpawn(ess.getSettings().getNewbieSpawn())); - } catch (Exception ex) { - Logger.getLogger("Minecraft").log(Level.WARNING, Util.i18n("teleportNewPlayerError"), ex); - } + ess.scheduleSyncDelayedTask(new Runnable() + { + public void run() + { + try + { + user.getTeleport().now(ess.getSpawn().getSpawn(ess.getSettings().getNewbieSpawn())); + } + catch (Exception ex) + { + Logger.getLogger("Minecraft").log(Level.WARNING, Util.i18n("teleportNewPlayerError"), ex); + } + } + }); if (ess.getSettings().getAnnounceNewPlayers()) { |