From 55ac6c0977201459b2bb897b9c75e6968644b710 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Wed, 18 Mar 2015 21:09:49 +0100 Subject: [PATCH] Change /sudo command fixes #14 --- helpers.py | 5 +++-- misc.py | 31 +++++++++++++------------------ 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/helpers.py b/helpers.py index e72b19d..4748994 100644 --- a/helpers.py +++ b/helpers.py @@ -8,6 +8,7 @@ import org.bukkit.entity.Player as Player import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause as TeleportCause import org.bukkit.block as bblock import org.bukkit.event.entity as entity +import org.bukkit.command.ConsoleCommandSender from org.bukkit.entity import * @@ -110,10 +111,10 @@ def noperm(player): def runas(player, cmd): """ run a command as player - the cmd should no be prefixed with a / + the cmd should NOT be prefixed with a / """ player.chat("/" + cmd) - + def is_player(obj): """ diff --git a/misc.py b/misc.py index 7d379a2..e909946 100644 --- a/misc.py +++ b/misc.py @@ -43,28 +43,23 @@ def on_sudo_command(sender, args): execute command/chat *as* a player/console """ if sender.hasPermission("utils.sudo"): - plugin_header(sender, "Sudo") if not checkargs(sender, args, 2, -1): return True target = args[0] - - cmd = " ".join(args[1:]) - msg(sender, "Running '&e%s&r' as &3%s" % (cmd, target)) - if cmd[0] == "/": - cmd = cmd[1:] - if target.lower() == "server" or target.lower() == "console": - runas(server.getConsoleSender(), cmd) - elif server.getPlayer(target): - runas(server.getPlayer(target), cmd) - else: - msg(sender, "&cPlayer %s not found!" % target) + cmd = " ".join(args[1:]) + msg(sender, "&2[SUDO] &rRunning '&e%s&r' as &3%s" % (cmd, target)) + is_cmd = cmd[0] == "/" + is_console = target.lower() == "server" or target.lower() == "console" + if is_console: + if is_cmd: + cmd = cmd[1:] + server.dispatchCommand(server.getConsoleSender(), cmd) + return True + target_player = server.getPlayer(target) + if target_player: + target_player.chat(cmd) else: - if target.lower() == "server" or target.lower() == "console": - runas(server.getConsoleSender(), "say %s" % cmd) - elif server.getPlayer(target): - server.getPlayer(target).chat(cmd) - else: - msg(sender, "&cPlayer %s not found!" % target) + msg(sender, "&cPlayer %s not found!" % target) else: noperm(sender) return True