Added TFM_UuidManager to cache UUIDs. Resolves #255

All methods related to UUIDs in TFM_Util have been moved to TFM_UuidManager
This commit is contained in:
JeromSar
2014-08-27 11:40:25 +02:00
parent 0c99862793
commit 9c976b381b
17 changed files with 212 additions and 100 deletions

View File

@ -117,71 +117,6 @@ public class TFM_Util
throw new AssertionError();
}
public static boolean isUniqueId(String uuid)
{
try
{
UUID.fromString(uuid);
}
catch (IllegalArgumentException ex)
{
return false;
}
return true;
}
public static UUID getUniqueId(OfflinePlayer offlinePlayer)
{
if (offlinePlayer instanceof Player)
{
return TFM_PlayerData.getPlayerData((Player) offlinePlayer).getUniqueId();
}
return getUniqueId(offlinePlayer.getName());
}
public static UUID getUniqueId(String offlineplayer)
{
final UUID uuid = TFM_UuidResolver.getUUIDOf(offlineplayer);
if (uuid == null)
{
return generateUuidForName(offlineplayer);
}
return uuid;
}
public static UUID generateUuidForName(String name)
{
TFM_Log.info("Generating spoof UUID for " + name);
name = name.toLowerCase();
try
{
final MessageDigest mDigest = MessageDigest.getInstance("SHA1");
byte[] result = mDigest.digest(name.getBytes());
final StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.length; i++)
{
sb.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));
}
return UUID.fromString(
sb.substring(0, 8)
+ "-" + sb.substring(8, 12)
+ "-" + sb.substring(12, 16)
+ "-" + sb.substring(16, 20)
+ "-" + sb.substring(20, 32));
}
catch (NoSuchAlgorithmException ex)
{
TFM_Log.severe(ex);
}
return UUID.randomUUID();
}
public static void bcastMsg(String message, ChatColor color)
{
TFM_Log.info(message, true);
@ -221,7 +156,7 @@ public class TFM_Util
return player.getPlayer().getAddress().getAddress().getHostAddress().trim();
}
final UUID uuid = getUniqueId(player);
final UUID uuid = TFM_UuidManager.getUniqueId(player);
final TFM_Player entry = TFM_PlayerList.getEntry(uuid);
@ -244,7 +179,7 @@ public class TFM_Util
public static String formatPlayer(OfflinePlayer player)
{
return player.getName() + " (" + TFM_Util.getUniqueId(player) + ")";
return player.getName() + " (" + TFM_UuidManager.getUniqueId(player) + ")";
}
/**
@ -546,7 +481,7 @@ public class TFM_Util
TFM_Util.bcastMsg(ChatColor.RED + player.getName() + " has been banned for 1 minute.");
TFM_BanManager.addIpBan(new TFM_Ban(ip, player.getName(), "AutoEject", expires, kickMessage));
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_Util.getUniqueId(player), player.getName(), "AutoEject", expires, kickMessage));
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_UuidManager.getUniqueId(player), player.getName(), "AutoEject", expires, kickMessage));
player.kickPlayer(kickMessage);
break;
@ -560,7 +495,7 @@ public class TFM_Util
TFM_Util.bcastMsg(ChatColor.RED + player.getName() + " has been banned for 3 minutes.");
TFM_BanManager.addIpBan(new TFM_Ban(ip, player.getName(), "AutoEject", expires, kickMessage));
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_Util.getUniqueId(player), player.getName(), "AutoEject", expires, kickMessage));
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_UuidManager.getUniqueId(player), player.getName(), "AutoEject", expires, kickMessage));
player.kickPlayer(kickMessage);
break;
}
@ -570,7 +505,7 @@ public class TFM_Util
TFM_BanManager.addIpBan(new TFM_Ban(ip, player.getName(), "AutoEject", null, kickMessage));
TFM_BanManager.addIpBan(new TFM_Ban(ipAddressParts[0] + "." + ipAddressParts[1] + ".*.*", player.getName(), "AutoEject", null, kickMessage));
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_Util.getUniqueId(player), player.getName(), "AutoEject", null, kickMessage));
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_UuidManager.getUniqueId(player), player.getName(), "AutoEject", null, kickMessage));
TFM_Util.bcastMsg(ChatColor.RED + player.getName() + " has been banned.");