summaryrefslogtreecommitdiff
path: root/src/python
diff options
context:
space:
mode:
authorLieuwe <lieuwemo@gmail.com>2011-03-06 14:39:50 (GMT)
committer Lieuwe <lieuwemo@gmail.com>2011-03-06 14:39:50 (GMT)
commitf599959efed6cb87d25382f54c6657094603dcc5 (patch)
treedb7a736c96a907178d9eaccc5b1255a33ea3efc8 /src/python
parentd619204d589281b824c8e689ad35429a56a9cd47 (diff)
downloadpowder-f599959efed6cb87d25382f54c6657094603dcc5.zip
powder-f599959efed6cb87d25382f54c6657094603dcc5.tar.gz
more work on the chat client, it now supports nick changes
Diffstat (limited to 'src/python')
-rw-r--r--src/python/tpt_console.py35
1 files changed, 26 insertions, 9 deletions
diff --git a/src/python/tpt_console.py b/src/python/tpt_console.py
index 620307b..491faf5 100644
--- a/src/python/tpt_console.py
+++ b/src/python/tpt_console.py
@@ -42,6 +42,7 @@ element={"none":0,"dust":1,"watr":2,"oil":3,"fire":4,"stne":5,"lava":6,"gunp":7,
def fork_unblock():
pass#i need to implement this some day.
def error(ex):
+ traceback.print_exc()
err=traceback.format_exc()
sys.stdout.write(err)
@@ -78,18 +79,34 @@ def _handle(txt):
_extensions=[]
def loadext(fname):
- _extensions.append(__import__(fname))
+ ext=__import__(fname)
+ ext.init()
+ _extensions.append(ext)
def keypress(key):
- try:
- for item in _extensions:
+ unload=[]
+ for item in _extensions:
+ try:
item.key(key)
- except Exception as ex:
- error(ex)
+ except Exception as ex:
+ error(ex)
+ unload.append(item)
+ for item in unload:
+ item.exit()
+ _extensions.remove(item)
+
def step():
- try:
- for item in _extensions:
+ unload=[]
+ for item in _extensions:
+ try:
item.step()
- except Exception as ex:
- error(ex)
+ except Exception as ex:
+ error(ex)
+ unload.append(item)
+ for item in unload:
+ try:
+ item.exit()
+ except Exception as ex:
+ error(ex)
+ _extensions.remove(item)