summaryrefslogtreecommitdiff
path: root/helpers.py
diff options
context:
space:
mode:
authorDico200 <dico.karssiens@gmail.com>2015-03-26 16:44:21 +0100
committerDico200 <dico.karssiens@gmail.com>2015-03-26 16:44:21 +0100
commit75823ed0427ff48983c83a9510d1e1715056e1bf (patch)
tree8f858426b6d5541f1d094ea80a5bb5e6fc11cb2c /helpers.py
parent9855f62e7bb702729c4e939421d650f390040ed2 (diff)
Added basecommands.py
Contains @simplecommand and @basecommand Slightly alterred simplecommand, made both display the command's required permission when displaying help if the sender has the permission "utils.showpermission". Also a small tweak in misc.py's join listener.
Diffstat (limited to 'helpers.py')
-rw-r--r--helpers.py103
1 files changed, 0 insertions, 103 deletions
diff --git a/helpers.py b/helpers.py
index 4357715..6cd0ea9 100644
--- a/helpers.py
+++ b/helpers.py
@@ -217,106 +217,3 @@ def toggle(player, ls, name = "Toggle", add = None):
msg(player, "&a%s turned on!" % name)
-
-
-
-
-"""
-Use this instead of @hook.command for your command methods. (@simplecommand(things...))
-
-It will take care of the following things:
-- Basic permission check. The default permission is utils.<cmd_name>
-- Sender type check. You can pass whether the sender must be a player, a consolesender, or both. (see sender_limit below)
-- Minimum and maximum args. Works with checkargs from helpers.py.
-- A '/<cmd> help' message containing the description, usage and aliases of the command.
-
-Information about some arguments:
-- cmd_name: The command you type in chat.
-- usage: For example "<player> <other_player" and is part of the help message.
-- description: A brief description of what the command does. (also part of the help message)
-- aliases: A list of aliases for the command
-- permission: The basic permission for the command. Defaults to utils.<cmd>
-- sender_limit: Defines what sendertype can use the command. Leave blank for console & player, 0 for player only, 1 for console only.
-- min_args: The least arguments for the command.
-- max_args: You guessed it right. Defaults to infinity (-1).
-- help_noargs: Whether to send help if no arguments are given
-- help_subcmd: Whether to send help upon '/<cmd> help'
-
-*** DISCLAIMER ***
-
-Your command function must take four arguments: sender, command, label, args and help_msg.
-help_msg is a function which can be called like 'return help_msg(sender)' to send them information about the command.
-
-Your function must also not return a boolean like before, but a String instead. The string returned will be sent to the player (&-codes supported).
-Use None or "" for no message.
-
-Feel free to edit or give suggestions (but don't break existing commands)
-
-See below for an example command.
-"""
-
-def simplecommand(cmd_name, aliases = [], permission = None, usage = "[args...]", description = None, sender_limit = -1, min_args = 0, max_args = -1, help_noargs = False, help_subcmd = False):
- cmd_name = cmd_name.lower()
- if not permission:
- permission = "utils." + cmd_name
- if not description:
- description = "Handles " + cmd_name
-
- def actualDecorator(function):
-
- @hook.command(cmd_name, aliases = aliases)
- def __call_func__(sender, command, label, args):
- try:
- message = __run__(sender, command, label, args)
- if message:
- msg(sender, message)
- except:
- error(trace())
-
- def __run__(sender, command, label, args):
- isplayer = is_player(sender)
- if not is_sender_valid(isplayer):
- return "&cThis command can only be run from the console" if isplayer else "&cThis command can only be run by players"
- if not sender.hasPermission(permission):
- return "&cYou do not have permission to use this command"
- if ((not args) and help_noargs) or (help_subcmd and args and args[0].lower() == "help"):
- return help_message(sender)
- if not checkargs(sender, args, min_args, max_args):
- return None
- return function(sender, command, label, args, help_message)
-
- return __call_func__
-
- def is_sender_valid(isplayer):
- return True if sender_limit == -1 else sender_limit != isplayer
-
- def help_message(sender):
- """
- Information about command /<cmd>: #Light green
- description... #Blue
- description... #Blue
-
- Syntax: /<cmd> <usage> #Light green
- Aliases: alias1, alias2, alias3 #Gold
- """
- try:
- help_msg = "&aInformation about command /%s:\n &9%s" % (cmd_name, description.replace("\n", "\n "))
- help_msg += "\n \n&aSyntax: /%s %s" % (cmd_name, usage)
- if aliases:
- help_msg += ("\n&6Aliases: " + "".join([(alias + ", ") for alias in aliases]))[:-2]
- return help_msg
- except:
- error(trace())
-
- return actualDecorator
-
-
-"""
-@simplecommand("test", usage = "<player>", description = "Kicks a player", aliases = ["kickp", "tek"], permission = "utils.kickuser", sender_limit = 0, min_args = 1, max_args = 2)
-def on_test(sender, command, label, args):
- target = server.getPlayer(args[0]);
- if target:
- target.kickPlayer("Kicked from the server")
- return None
- return "&cThat player could not be found"
-"""