0

Merge PR #1079 -- Handle UUID player files semi-nicely in POIgen

This commit is contained in:
Andrew Chin
2014-04-10 19:44:24 -04:00

View File

@@ -19,6 +19,7 @@ import logging
import json
import sys
import re
import urllib2
import Queue
import multiprocessing
@@ -30,6 +31,8 @@ from overviewer_core import logger
from overviewer_core import nbt
from overviewer_core import configParser, world
UUID_LOOKUP_URL = 'https://sessionserver.mojang.com/session/minecraft/profile/'
def replaceBads(s):
"Replaces bad characters with good characters!"
bads = [" ", "(", ")"]
@@ -132,7 +135,12 @@ def handlePlayers(rset, render, worldpath):
dimension = int(mystdim.group(1))
else:
raise
playerdir = os.path.join(worldpath, "players")
playerdir = os.path.join(worldpath, "playerdata")
useUUIDs = True
if not os.path.isdir(playerdir):
playerdir = os.path.join(worldpath, "players")
useUUIDs = False
if os.path.isdir(playerdir):
playerfiles = os.listdir(playerdir)
playerfiles = [x for x in playerfiles if x.endswith(".dat")]
@@ -152,6 +160,13 @@ def handlePlayers(rset, render, worldpath):
logging.warning("Skipping bad player dat file %r", playerfile)
continue
playername = playerfile.split(".")[0]
if useUUIDs:
try:
profile = json.loads(urllib2.urlopen(UUID_LOOKUP_URL + playername.replace('-','')).read())
if 'name' in profile:
playername = profile['name']
except ValueError:
logging.warning("Unable to get player name for UUID %s", playername)
if isSinglePlayer:
playername = 'Player'
if data['Dimension'] == dimension: