From 1ebd54b2821ed3d095ddef11c891190c979f1f32 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Sun, 29 Jan 2017 00:27:45 -0800 Subject: [PATCH] Wrap getting attribute data in a try/except Useful for when we try to get an sub-attribute on an object where the attribute doesn't exist. Now returns the default value. --- eos/gamedata.py | 9 ++++++--- eos/modifiedAttributeDict.py | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eos/gamedata.py b/eos/gamedata.py index 10317dab2..fca14263a 100644 --- a/eos/gamedata.py +++ b/eos/gamedata.py @@ -244,9 +244,12 @@ class Item(EqBase): return self.__attributes def getAttribute(self, key, default=None): - if key in self.attributes: - return self.attributes[key].value - else: + try: + if key in self.attributes: + return self.attributes[key].value + else: + return default + except AttributeError: return default def isType(self, type): diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py index e558dc64d..417a459c2 100644 --- a/eos/modifiedAttributeDict.py +++ b/eos/modifiedAttributeDict.py @@ -26,17 +26,23 @@ cappingAttrKeyCache = {} class ItemAttrShortcut(object): def getModifiedItemAttr(self, key, default=None): - if key in self.itemModifiedAttributes: - return self.itemModifiedAttributes[key] - else: + try: + if key in self.itemModifiedAttributes: + return self.itemModifiedAttributes[key] + else: + return default + except AttributeError: return default class ChargeAttrShortcut(object): def getModifiedChargeAttr(self, key, default=None): - if key in self.chargeModifiedAttributes: - return self.chargeModifiedAttributes[key] - else: + try: + if key in self.chargeModifiedAttributes: + return self.chargeModifiedAttributes[key] + else: + return default + except AttributeError: return default