From f0ada788bfecd00c2d467f46bbc442af9ed1ecca Mon Sep 17 00:00:00 2001 From: Dico200 Date: Tue, 31 May 2016 16:39:54 +0200 Subject: Made serversigns force its commands into the command map (to replace the java plugin ServerSigns its commands) --- main.py | 2 +- serversigns.py | 21 ++++++++++++++++++++- 2 files changed, 21 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..d680acb 100644 --- a/serversigns.py +++ b/serversigns.py @@ -335,7 +335,26 @@ 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") + info(str(rsutils_cmd)) + map.put("svs", rsutils_cmd) + map.put("serversigns", rsutils_cmd) + map.put("signsmsg", rsutils_cmd) + + except: + error("[Serversigns] failed to force commands") + error(trace()) -- cgit v1.2.3 From 83e75055651eff3a7b1287adc61e92a35b6b03de Mon Sep 17 00:00:00 2001 From: Dico200 Date: Tue, 31 May 2016 16:41:13 +0200 Subject: Remove debug I forgot to remove in prior commit --- serversigns.py | 1 - 1 file changed, 1 deletion(-) diff --git a/serversigns.py b/serversigns.py index d680acb..722edf8 100644 --- a/serversigns.py +++ b/serversigns.py @@ -350,7 +350,6 @@ def check_all_signs_and_force_commands(): map = commands_field.get(command_map) rsutils_cmd = map.get("redstonerutils:serversigns") - info(str(rsutils_cmd)) map.put("svs", rsutils_cmd) map.put("serversigns", rsutils_cmd) map.put("signsmsg", rsutils_cmd) -- cgit v1.2.3