From cf532089896d8c6eabc2573b9956c782017e697d Mon Sep 17 00:00:00 2001 From: Nicolas F Date: Sun, 18 Nov 2018 09:29:48 +0100 Subject: [PATCH] genpoi: fix uncaught KeyErrors on some MC data Apparently TileEntities can just not even exist now, and the same goes for the player Dimension key. For the latter, I'm not sure whether the fallback is correct, but it's a guess I suppose. Hopefully addresses #1480. --- overviewer_core/aux_files/genPOI.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/overviewer_core/aux_files/genPOI.py b/overviewer_core/aux_files/genPOI.py index 2f99757..2632d80 100755 --- a/overviewer_core/aux_files/genPOI.py +++ b/overviewer_core/aux_files/genPOI.py @@ -165,7 +165,7 @@ def handleEntities(rset, config, config_path, filters, markers): for (x, z, mtime) in rset.iterate_chunks(): try: data = rset.get_chunk(x, z) - for poi in itertools.chain(data['TileEntities'], data['Entities']): + for poi in itertools.chain(data.get('TileEntities', []), data.get('Entities', [])): if poi['id'] == 'Sign' or poi['id'] == 'minecraft:sign': # kill me poi = signWrangler(poi) for name, __, filter_function, __, __, __ in filters: @@ -346,7 +346,7 @@ def handlePlayers(worldpath, filters, markers): else: dimension = 0 - if data['Dimension'] == dimension: + if data.get('Dimension', 0) == dimension: result = filter_function(data) if result: d = create_marker_from_filter_result(data, result)