Handle invalid meta values when getting item names

A warning is emitted and a placeholder name is returned.
This commit is contained in:
David Vierra 2015-09-16 20:53:30 -10:00
parent bfeb5c7e94
commit 779c84af74

View File

@ -4,6 +4,7 @@
from __future__ import absolute_import, division, print_function from __future__ import absolute_import, division, print_function
import collections import collections
import logging import logging
import warnings
from mceditlib.blocktypes.json_resources import getJsonFile from mceditlib.blocktypes.json_resources import getJsonFile
@ -78,9 +79,13 @@ class ItemTypeSet(object):
assert itemType.meta is not None, "ItemType %s: Got a list %s for attr %s but meta is None" % ( assert itemType.meta is not None, "ItemType %s: Got a list %s for attr %s but meta is None" % (
itemType.internalName, retval, attr itemType.internalName, retval, attr
) )
assert itemType.meta < len(retval), "ItemType %s: Got meta %d but no item in list %s" % ( if itemType.meta >= len(retval):
itemType.internalName, itemType.meta, retval warnings.warn(
) "ItemType %s: Got meta %d but no item in list %s" % (
itemType.internalName, itemType.meta, retval
))
return retval[0] + ("(Unknown meta)")
return retval[itemType.meta] return retval[itemType.meta]
if retval is None: if retval is None: