Give user chance to get display name set before displaying geoip.

This commit is contained in:
KHobbits 2012-09-08 14:40:19 +01:00
parent acf4d0bcf5
commit e502a7e6fd

View file

@ -40,16 +40,28 @@ public class EssentialsGeoIPPlayerListener implements Listener, IConf
config.setTemplateName("/config.yml", EssentialsGeoIP.class); config.setTemplateName("/config.yml", EssentialsGeoIP.class);
reloadConfig(); reloadConfig();
} }
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(PlayerJoinEvent event) public void onPlayerJoin(final PlayerJoinEvent event)
{ {
User u = ess.getUser(event.getPlayer()); ess.scheduleAsyncDelayedTask(new Runnable()
if (u.isAuthorized("essentials.geoip.hide") || event.getPlayer().getAddress() == null) {
@Override
public void run()
{
delayedJoin(event.getPlayer());
}
});
}
public void delayedJoin(Player player)
{
User u = ess.getUser(player);
if (u.isAuthorized("essentials.geoip.hide") || player.getAddress() == null)
{ {
return; return;
} }
InetAddress address = event.getPlayer().getAddress().getAddress(); InetAddress address = player.getAddress().getAddress();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (config.getBoolean("database.show-cities", false)) if (config.getBoolean("database.show-cities", false))
{ {
@ -79,9 +91,9 @@ public class EssentialsGeoIPPlayerListener implements Listener, IConf
} }
if (config.getBoolean("show-on-login", true) && !u.isHidden()) if (config.getBoolean("show-on-login", true) && !u.isHidden())
{ {
for (Player player : event.getPlayer().getServer().getOnlinePlayers()) for (Player onlinePlayer : player.getServer().getOnlinePlayers())
{ {
User user = ess.getUser(player); User user = ess.getUser(onlinePlayer);
if (user.isAuthorized("essentials.geoip.show")) if (user.isAuthorized("essentials.geoip.show"))
{ {
user.sendMessage(_("geoipJoinFormat", u.getDisplayName(), sb.toString())); user.sendMessage(_("geoipJoinFormat", u.getDisplayName(), sb.toString()));