0

Update JonnyJD's pullrequest to work with the new POI codes

Also:
only parse players in a regionset once
ignore corrupt player.dat files
This commit is contained in:
Andrew Chin
2012-04-14 23:36:52 -04:00
parent 5f1bf1851d
commit c583a94d7d

View File

@@ -45,6 +45,10 @@ def handleSigns(rset, outputdir, render, rname):
def handlePlayers(rset, render, worldpath):
if not hasattr(rset, "_pois"):
rset._pois = dict(TileEntities=[], Entities=[])
# only handle this region set once
if 'Players' in rset._pois:
return
dimension = {'overworld': 0,
'nether': -1,
'end': 1,
@@ -52,7 +56,11 @@ def handlePlayers(rset, render, worldpath):
playerdir = os.path.join(worldpath, "players")
rset._pois['Players'] = []
for playerfile in os.listdir(playerdir):
data = nbt.load(os.path.join(playerdir, playerfile))[1]
try:
data = nbt.load(os.path.join(playerdir, playerfile))[1]
except IOError:
logging.warning("Skipping bad player dat file %r", playerfile)
continue
playername = playerfile.split(".")[0]
if data['Dimension'] == dimension:
# Position at last logout
@@ -158,7 +166,7 @@ def main():
for poi in rset._pois['Players']:
result = filter_function(poi)
if result:
markerSetDict[name]['raw'].append(poi)
markerSetDict[name]['raw'].append(dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result, createInfoWindow=True))
#print markerSetDict
with open(os.path.join(destdir, "markersDB.js"), "w") as output: