Implement API for dealing with player UUIDs. Adds BUKKIT-5071

This commit is contained in:
Travis Watkins
2014-03-28 23:48:15 -05:00
parent acc9f20b00
commit 21e7ba8d22
3 changed files with 101 additions and 2 deletions

View File

@@ -14,7 +14,6 @@ import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
import java.util.logging.Level;
@@ -22,7 +21,6 @@ import java.util.logging.Logger;
import javax.imageio.ImageIO;
import net.minecraft.server.BanEntry;
import net.minecraft.server.ChunkCoordinates;
import net.minecraft.server.CommandAchievement;
import net.minecraft.server.CommandBan;
@@ -141,6 +139,7 @@ import org.bukkit.craftbukkit.updater.BukkitDLUpdaterService;
import org.bukkit.craftbukkit.util.CraftIconCache;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.craftbukkit.util.DatFileFilter;
import org.bukkit.craftbukkit.util.MojangNameLookup;
import org.bukkit.craftbukkit.util.Versioning;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
@@ -514,6 +513,17 @@ public final class CraftServer implements Server {
return null;
}
// TODO: In 1.7.6+ this should use the server's UUID->EntityPlayer map
public Player getPlayer(UUID id) {
for (Player player : getOnlinePlayers()) {
if (player.getUniqueId().equals(id)) {
return player;
}
}
return null;
}
public int broadcastMessage(String message) {
return broadcast(message, BROADCAST_CHANNEL_USERS);
}
@@ -1282,6 +1292,17 @@ public final class CraftServer implements Server {
return result;
}
// TODO: In 1.7.6+ this should just lookup the UUID-based player data filename
public OfflinePlayer getOfflinePlayer(UUID id) {
String name = MojangNameLookup.lookupName(id);
if (name == null) {
// This is completely wrong
name = "InvalidUUID";
}
return getOfflinePlayer(name);
}
@SuppressWarnings("unchecked")
public Set<String> getIPBans() {
return new HashSet<String>(playerList.getIPBans().getEntries().keySet());