[trunk] Geoip: New permission essentials.geoip.show, that allow the player to see the location of other players.

git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1299 e251c2fe-e539-e718-e476-b85c1f46cddb
This commit is contained in:
snowleo 2011-05-01 19:38:25 +00:00
parent 200d79bcec
commit 03fd6249fc
2 changed files with 20 additions and 5 deletions

View File

@ -30,16 +30,24 @@ public class Commandwhois extends EssentialsCommand
{
User u = User.get(p);
String dn = ChatColor.stripColor(u.getNick());
if (!whois.equalsIgnoreCase(dn) && !whois.equalsIgnoreCase(dn.substring(prefixLength)) && !whois.equalsIgnoreCase(u.getName())) continue;
if (!whois.equalsIgnoreCase(dn) && !whois.equalsIgnoreCase(dn.substring(prefixLength)) && !whois.equalsIgnoreCase(u.getName()))
{
continue;
}
sender.sendMessage("");
sender.sendMessage(u.getDisplayName() + " is " + u.getName());
sender.sendMessage(ChatColor.BLUE + " - Health: " + u.getHealth() + "/20");
sender.sendMessage(ChatColor.BLUE + " - Location: (" + u.getLocation().getWorld().getName() + ", " + u.getLocation().getBlockX() + ", " + u.getLocation().getBlockY() + ", " + u.getLocation().getBlockZ() + ")");
if (!parent.getConfiguration().getBoolean("disable-eco", false)) sender.sendMessage(ChatColor.BLUE + " - Money: $" + u.getMoney());
if (!parent.getConfiguration().getBoolean("disable-eco", false))
{
sender.sendMessage(ChatColor.BLUE + " - Money: $" + u.getMoney());
}
sender.sendMessage(ChatColor.BLUE + " - Status: " + (parent.away.contains(u) ? "§cAway§f" : "Available"));
sender.sendMessage(ChatColor.BLUE + " - IP Address: " + u.getAddress().getAddress().toString());
Object location = u.getMetadata().get("location");
if (location != null && location instanceof String) {
if (location != null && location instanceof String
&& (sender instanceof Player ? User.get(sender).isAuthorized("essentials.geoip.show") : true))
{
sender.sendMessage(ChatColor.BLUE + " - Location: " + location.toString());
}
}

View File

@ -18,6 +18,7 @@ import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.GZIPInputStream;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
@ -72,11 +73,17 @@ public class EssentialsGeoIPPlayerListener extends PlayerListener implements ICo
}
if (config.getBoolean("show-on-whois", true))
{
User.get(event.getPlayer()).setMetadata("location", sb.toString());
u.setMetadata("location", sb.toString());
}
if (config.getBoolean("show-on-login", true))
{
event.getPlayer().getServer().broadcastMessage("Player " + event.getPlayer().getDisplayName() + " comes from " + sb.toString());
for (Player player : event.getPlayer().getServer().getOnlinePlayers())
{
User user = User.get(player);
if (user.isAuthorized("essentials.geoip.show")) {
user.sendMessage("Player " + u.getDisplayName() + " comes from " + sb.toString());
}
}
}
}