summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelSergey <sergey.ichtchenko@gmail.com>2016-05-31 17:54:16 +0300
committerPixelSergey <sergey.ichtchenko@gmail.com>2016-05-31 17:54:16 +0300
commit57603725d20c384008c8b17978393ca23799697a (patch)
treed3dd964c6f479f3b1f0fa802bc583306d8102a5b
parentf0f32abbfa5cf0c3c710e5816785fd742587b5ab (diff)
parent83e75055651eff3a7b1287adc61e92a35b6b03de (diff)
Merge branch 'dev' of https://github.com/RedstonerServer/redstoner-utils into dev
-rw-r--r--main.py2
-rw-r--r--serversigns.py20
2 files changed, 20 insertions, 2 deletions
diff --git a/main.py b/main.py
index ffea209..1b9e3f4 100644
--- a/main.py
+++ b/main.py
@@ -24,7 +24,7 @@ def on_enable():
if "imbusy" in shared["modules"]:
shared["modules"]["imbusy"].replace_ess_commands()
if "serversigns" in shared["modules"]:
- shared["modules"]["serversigns"].check_all_signs()
+ shared["modules"]["serversigns"].check_all_signs_and_force_commands()
info("RedstonerUtils enabled!")
diff --git a/serversigns.py b/serversigns.py
index c5238e1..722edf8 100644
--- a/serversigns.py
+++ b/serversigns.py
@@ -335,7 +335,25 @@ def can_build2(player, block):
return not event.isCancelled()
-def check_all_signs():
+def check_all_signs_and_force_commands():
for loc in signs:
if server.getWorld(loc[0]).getBlockAt(loc[1], loc[2], loc[3]).getType() not in (Material.WALL_SIGN, Material.SIGN_POST):
del signs[loc]
+
+ try:
+ map_field = server.getPluginManager().getClass().getDeclaredField("commandMap")
+ map_field.setAccessible(True)
+ command_map = map_field.get(server.getPluginManager())
+
+ commands_field = command_map.getClass().getDeclaredField("knownCommands")
+ commands_field.setAccessible(True)
+ map = commands_field.get(command_map)
+
+ rsutils_cmd = map.get("redstonerutils:serversigns")
+ map.put("svs", rsutils_cmd)
+ map.put("serversigns", rsutils_cmd)
+ map.put("signsmsg", rsutils_cmd)
+
+ except:
+ error("[Serversigns] failed to force commands")
+ error(trace())