Properly scope exceptions

This commit is contained in:
Tux 2014-05-28 18:29:44 -04:00
parent bb71dd674f
commit 92971fce96
1 changed files with 39 additions and 23 deletions

View File

@ -15,6 +15,7 @@ import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import net.md_5.bungee.api.ProxyServer;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.exceptions.JedisException;
import java.util.Collections;
import java.util.Map;
@ -54,6 +55,7 @@ public class UUIDTranslator {
// Okay, it wasn't locally cached. Let's try Redis.
Jedis jedis = plugin.getPool().getResource();
try {
try {
String stored = jedis.hget("uuids", player.toLowerCase());
if (stored != null && UUID_PATTERN.matcher(stored).find()) {
@ -65,21 +67,30 @@ public class UUIDTranslator {
}
// That didn't work. Let's ask Mojang.
for (Map.Entry<String, UUID> entry : new UUIDFetcher(Collections.singletonList(player)).call().entrySet()) {
Map<String, UUID> uuidMap1;
try {
uuidMap1 = new UUIDFetcher(Collections.singletonList(player)).call();
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE, "Unable to fetch UUID from Mojang for " + player, e);
return null;
}
for (Map.Entry<String, UUID> entry : uuidMap1.entrySet()) {
if (entry.getKey().equalsIgnoreCase(player)) {
uuidMap.put(player, entry.getValue());
storeInfo(player, entry.getValue(), jedis);
return entry.getValue();
}
}
return null;
} catch (Exception e) {
} catch (JedisException e) {
plugin.getLogger().log(Level.SEVERE, "Unable to fetch UUID for " + player, e);
return null;
// Go ahead and give them what we have.
return uuid;
}
} finally {
plugin.getPool().returnResource(jedis);
}
return null; // Nope, game over!
}
public String getNameFromUuid(@NonNull UUID player) {
@ -102,7 +113,12 @@ public class UUIDTranslator {
}
// That didn't work. Let's ask Mojang.
try {
name = new NameFetcher(Collections.singletonList(player)).call().get(player);
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE, "Unable to fetch name from Mojang for " + player, e);
return null;
}
if (name != null) {
storeInfo(name, player, jedis);
@ -110,9 +126,9 @@ public class UUIDTranslator {
}
return null;
} catch (Exception e) {
} catch (JedisException e) {
plugin.getLogger().log(Level.SEVERE, "Unable to fetch name for " + player, e);
return null;
return name;
} finally {
plugin.getPool().returnResource(jedis);
}