From 329a13bf8a7ba697926dd7bd6829e6525b8075e4 Mon Sep 17 00:00:00 2001 From: Griatch Date: Wed, 9 Nov 2011 00:12:55 +0100 Subject: [PATCH] Added more error checking to the oob function launch code. --- src/server/serversession.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/serversession.py b/src/server/serversession.py index f2c2c8c294..51191ea108 100644 --- a/src/server/serversession.py +++ b/src/server/serversession.py @@ -232,11 +232,20 @@ class ServerSession(Session): print "server: " outdata = {} + entity = self.get_character() + if not entity: + entity = self.get_player() + if not entity: + entity = self + for funcname, argtuple in data.items(): # loop through the data, calling available functions. func = OOB_FUNC_MODULE.__dict__.get(funcname, None) if func: - outdata[funcname] = func(*argtuple[0], **argtuple[1]) + try: + outdata[funcname] = func(entity, *argtuple[0], **argtuple[1]) + except Exception: + logger.log_trace() else: logger.log_errmsg("oob_data_in error: funcname '%s' not found in OOB_FUNC_MODULE." % funcname) if outdata: