diff options
author | Dico200 <dico.karssiens@gmail.com> | 2015-03-25 00:38:56 +0100 |
---|---|---|
committer | Dico200 <dico.karssiens@gmail.com> | 2015-03-25 00:38:56 +0100 |
commit | 75c9a86ba3f5a2ed454220c8d689a35d0454428f (patch) | |
tree | 697bd470c5c76fd3acef2b9f7a380a896a1c2498 /misc.py | |
parent | d160bbd91a3a56a35a5b90e174a7eb236c6ba92e (diff) |
Replaced /sudo and /me with @simplecommand hook
Also improved simplecommand a little bit.
Don't ask me why it doesn't work in its own file as I have no clue, it
wasn't tracing the errors.
Diffstat (limited to 'misc.py')
-rw-r--r-- | misc.py | 56 |
1 files changed, 35 insertions, 21 deletions
@@ -37,13 +37,13 @@ def on_join(event): msg(player, "&6You can use /back if you &nreally&6 want to go back") player.teleport(player.getWorld().getSpawnLocation()) - +""" @hook.command("sudo") def on_sudo_command(sender, command, label, args): - """ + " /sudo execute command/chat *as* a player/console - """ + " if sender.hasPermission("utils.sudo"): if not checkargs(sender, args, 2, -1): return True @@ -65,24 +65,38 @@ def on_sudo_command(sender, command, label, args): else: noperm(sender) return True - -#Temporary solution for /me -@hook.command("me") -def on_me_command(sender, command, label, args): - if not sender.hasPermission("essentials.me"): - noperm(sender) - return True - if not is_player(sender): - return True - sender = server.getPlayer(sender.getName()) - if not checkargs(sender, args, 1, -1): - return True - msg = " ".join(args) - event = PlayerChatEvent(sender, msg) - server.getPluginManager().callEvent(event) - if not event.isCancelled(): - broadcast("essentials.me", "&7- %s &7%s %s" % (sender.getDisplayName(), u"\u21E6", msg)) - return True +""" + +@simplecommand("sudo", + permission = "utils.sudo", + usage = "<player> [cmd..]", + description = "Makes <player> write [cmd..] in chat", + min_args = 2, + help_noargs = True) +def on_sudo_command(sender, command, label, args, help_msg): + target = args[0] + 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: + server.dispatchCommand(server.getConsoleSender(), cmd[1:] if is_cmd else cmd) + return None + target_player = server.getPlayer(target) + if target_player: + target_player.chat(cmd) + return None + return "&cPlayer %s not found!" % target + + +@simplecommand("me", + permission = "utils.me", + usage = "[message..]", + description = "Sends a message in third person", + help_noargs = True) +def on_me_command(sender, command, label, args, help_msg): + broadcast("utils.me", "&7- %s &7%s %s" % (sender.getDisplayName() if isinstance(sender, Player) else "&9CONSOLE", u"\u21E6", " ".join(args))) + return None #@hook.command("gm") |