X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=roguelike-client;h=4514946f7da145f44b4cae9680f289e34e7dc9a2;hb=a30d43cc0aba8898c7ea07d445243ee20d009e67;hp=55fb9789d2a33585bc678b6e53eabf047566c7a5;hpb=0a56367e8396b2ece4c1bce8a25e93ceabd901c1;p=plomrogue
diff --git a/roguelike-client b/roguelike-client
index 55fb978..4514946 100755
--- a/roguelike-client
+++ b/roguelike-client
@@ -40,7 +40,7 @@ def read_worldstate():
read_worldstate.last_checked_mtime = mtime
read_anew = True
if read_anew:
- # TODO: Hardcore order of necessary fields, ensure dependency order.
+ # TODO: Hardcode order of necessary fields, ensure order dependencies.
redraw_windows = True
world_data["turn"] = int(turn_string)
for entry in io["worldstate_read_order"]:
@@ -89,6 +89,14 @@ def read_message_queue():
redraw_windows = True
elif message == "WORLD_UPDATED":
query_mapcell()
+ elif message[:6] == "PLUGIN":
+ str_plugin = message[7:]
+ if (str_plugin.replace("_", "").isalnum()
+ and os.access("plugins/client/" + str_plugin + ".py",
+ os.F_OK)):
+ exec(open("plugins/client/" + str_plugin + ".py").read())
+ return
+ raise SystemExit("Invalid plugin load path in message: " + message)
read_message_queue.parse_thingshere = False