X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=roguelike-client;h=d527a904f061e1552210a196286d73dc4c56cd19;hb=273682ce18f635f121da5903272c366652470533;hp=629d4dc4e448243b0842720c0d8de67af09110b7;hpb=778a1f997e42e4a5a9cbe60140b4ebe8c0b1c37f;p=plomrogue
diff --git a/roguelike-client b/roguelike-client
index 629d4dc..d527a90 100755
--- a/roguelike-client
+++ b/roguelike-client
@@ -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
@@ -123,10 +131,13 @@ def cursed_main(stdscr):
if new_open_end:
message_queue["open_end"] = True
+ def set_and_redraw_windows(*ignore):
+ set_windows()
+ draw_screen()
+
curses.noecho()
curses.curs_set(False)
- signal.signal(signal.SIGWINCH,
- lambda ignore_1, ignore_2: set_windows())
+ signal.signal(signal.SIGWINCH, set_and_redraw_windows)
set_windows()
delay = 1
while True: