#!/usr/bin/python3
+# This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
+# or any later version. For details on its copyright, license, and warranties,
+# see the file NOTICE in the root directory of the PlomRogue source package.
+
+
import curses
import os
import signal
import time
-
from client.config.world_data import world_data
from client.config.io import io
from client.config.commands import commands
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"]:
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