X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=roguelike-client;h=e0f8558789290a0f889eeeb0c520c623e8261e48;hb=3cfb2d131e570c546d8ed514b0930248a89db41b;hp=55fb9789d2a33585bc678b6e53eabf047566c7a5;hpb=0a56367e8396b2ece4c1bce8a25e93ceabd901c1;p=plomrogue diff --git a/roguelike-client b/roguelike-client index 55fb978..e0f8558 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,13 @@ def read_message_queue(): redraw_windows = True elif message == "WORLD_UPDATED": query_mapcell() + elif message == "PLUGIN": + str_plugin = message[7:] + if (str_plugin.replace("_", "").isalnum() + and os.access("plugins/client/" + str_plugin, os.F_OK)): + exec(open("plugins/client/" + str_plugin).read()) + return + raise SystemExit("Invalid plugin load path in message: " + message) read_message_queue.parse_thingshere = False