From 3cfb2d131e570c546d8ed514b0930248a89db41b Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Sat, 20 Feb 2016 10:13:17 +0100
Subject: [PATCH] Add client plugin infrastructure.

---
 roguelike-client   | 7 +++++++
 server/commands.py | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/roguelike-client b/roguelike-client
index 629d4dc..e0f8558 100755
--- a/roguelike-client
+++ b/roguelike-client
@@ -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
 
 
diff --git a/server/commands.py b/server/commands.py
index 346661a..a3b68bc 100644
--- a/server/commands.py
+++ b/server/commands.py
@@ -15,8 +15,8 @@ def command_plugin(str_plugin):
     """Run code in plugins/[str_plugin]."""
     import os
     if (str_plugin.replace("_", "").isalnum()
-        and os.access("plugins/" + str_plugin, os.F_OK)):
-        exec(open("plugins/" + str_plugin).read())
+        and os.access("plugins/server/" + str_plugin, os.F_OK)):
+        exec(open("plugins/server/" + str_plugin).read())
         return
     print("Bad plugin name:", str_plugin)
 
-- 
2.30.2