Skip to content

Commit

Permalink
Merge 8502003 into b0b1883
Browse files Browse the repository at this point in the history
  • Loading branch information
th3-z committed Oct 7, 2019
2 parents b0b1883 + 8502003 commit 6647829
Show file tree
Hide file tree
Showing 4 changed files with 252 additions and 229 deletions.
82 changes: 44 additions & 38 deletions magicked_admin/chatbot/commands/event_commands.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
import gettext

from chatbot.command_scheduler import (ALL_WAVES, CommandOnJoin, CommandOnTime,
CommandOnTrader, CommandOnWave)
from chatbot.commands.command import Command

_ = gettext.gettext


class CommandStartJoinCommand(Command):
def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !start_jc COMMAND\n" \
"\tCOMMAND - Command to run\n" \
"Desc: Runs a command when a player joins the match"
self.help_text = _("Usage: !start_jc COMMAND\n"
"\tCOMMAND - Command to run\n"
"Desc: Runs a command when a player joins the "
"match")
self.parser.add_argument("command", nargs="*")

self.run_delay = 8
Expand All @@ -24,7 +29,7 @@ def execute(self, username, args, user_flags):

if not args.command:
return self.format_response(
"Please specify a command to run", args
_("Please specify a command to run"), args
)

delayed_command = [
Expand All @@ -33,16 +38,16 @@ def execute(self, username, args, user_flags):

command = CommandOnJoin(self.server, " ".join(delayed_command))
self.scheduler.schedule_command(command)
return self.format_response("Player join command started", args)
return self.format_response(_("Player join command started"), args)


class CommandStopJoinCommands(Command):
def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !stop_jc\n" \
"Desc: Stops all join commands"
self.help_text = _("Usage: !stop_jc\n"
"Desc: Stops all join commands")

def execute(self, username, args, user_flags):
args, err = self.parse_args(username, args, user_flags)
Expand All @@ -62,11 +67,11 @@ def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !start_wc [--wave] COMMAND\n" \
"\t-w --wave - Optional, wave to run on\n" \
"\tCOMMAND - Command to run\n" \
"Desc: Run a command at the start of a wave, wave" \
" can be omitted top run on every wave"
self.help_text = _("Usage: !start_wc [--wave] COMMAND\n"
"\t-w --wave - Optional, wave to run on\n"
"\tCOMMAND - Command to run\n"
"Desc: Run a command at the start of a wave, wave"
" can be omitted top run on every wave")
self.parser.add_argument("--wave", "-w")
self.parser.add_argument("command", nargs="*")

Expand All @@ -82,31 +87,31 @@ def execute(self, username, args, user_flags):
wave = int(args.wave)
except ValueError:
return self.format_response(
"'{}' is not a valid wave number".format(args.wave),
_("'{}' is not a valid wave number").format(args.wave),
args
)
else:
wave = ALL_WAVES

if not args.command:
return self.format_response(
"Please specify a command to run", args
_("Please specify a command to run"), args
)

command = CommandOnWave(
self.server, " ".join(args.command), wave
)
self.scheduler.schedule_command(command)
return self.format_response("Wave start command started", args)
return self.format_response(_("Wave start command started"), args)


class CommandStopWaveCommands(Command):
def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !stop_wc\n" \
"Desc: Stops all wave commands"
self.help_text = _("Usage: !stop_wc\n"
"Desc: Stops all wave commands")

def execute(self, username, args, user_flags):
args, err = self.parse_args(username, args, user_flags)
Expand All @@ -126,11 +131,11 @@ def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !start_tc [-r -t] COMMAND\n" \
"\tCOMMAND - Command to run\n" \
"\t-r --repeat - Optional, run repeatedly\n" \
"\t-t --time - Seconds before running\n" \
"Desc: Runs a command after some time delay"
self.help_text = _("Usage: !start_tc [-r -t] COMMAND\n"
"\tCOMMAND - Command to run\n"
"\t-r --repeat - Optional, run repeatedly\n"
"\t-t --time - Seconds before running\n"
"Desc: Runs a command after some time delay")
self.parser.add_argument("--time", "-t")
self.parser.add_argument("--repeat", "-r", action="store_true")
self.parser.add_argument("command", nargs="*")
Expand All @@ -144,21 +149,21 @@ def execute(self, username, args, user_flags):

if not args.time:
return self.format_response(
"Please specify a time interval, '!start_tc -h' for help",
_("Please specify a time interval, '!start_tc -h' for help"),
args
)

try:
interval = float(args.time)
except ValueError:
return self.format_response(
"'{}' is not a valid time interval".format(args.time),
_("'{}' is not a valid time interval").format(args.time),
args
)

if not args.command:
return self.format_response(
"Please specify a command to run", args
_("Please specify a command to run"), args
)

run_once = False if args.repeat else True
Expand All @@ -167,16 +172,16 @@ def execute(self, username, args, user_flags):
self.server, " ".join(args.command), interval, run_once=run_once
)
self.scheduler.schedule_command(command)
return self.format_response("Time interval command started", args)
return self.format_response(_("Time interval command started"), args)


class CommandStopTimeCommands(Command):
def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !stop_tc\n" \
"Desc: Stops all timed commands"
self.help_text = _("Usage: !stop_tc\n"
"Desc: Stops all timed commands")

def execute(self, username, args, user_flags):
args, err = self.parse_args(username, args, user_flags)
Expand All @@ -196,11 +201,12 @@ def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !start_trc [--wave] COMMAND\n" \
"\tCOMMAND - Command to run\n" \
"\t-w --wave - Optional, wave to run on\n" \
"Desc: Runs a command when the trader opens, wave" \
" can be omitted to run every time the trader opens"
self.help_text = _("Usage: !start_trc [--wave] COMMAND\n"
"\tCOMMAND - Command to run\n"
"\t-w --wave - Optional, wave to run on\n"
"Desc: Runs a command when the trader opens, wave"
" can be omitted to run every time the trader "
"opens")
self.parser.add_argument("--wave", "-w")
self.parser.add_argument("command", nargs="*")

Expand All @@ -213,32 +219,32 @@ def execute(self, username, args, user_flags):

if not args.command:
return self.format_response(
"Please specify a command to run", args
_("Please specify a command to run"), args
)

wave = args.wave if args.wave else ALL_WAVES
try:
wave = int(wave)
except ValueError:
return self.format_response(
"'{}' is not a valid wave number".format(args.wave),
_("'{}' is not a valid wave number").format(args.wave),
args
)

command = CommandOnTrader(
self.server, " ".join(args.command), wave=wave
)
self.scheduler.schedule_command(command)
return self.format_response("Trader open command started", args)
return self.format_response(_("Trader open command started"), args)


class CommandStopTraderCommands(Command):
def __init__(self, server, scheduler):
Command.__init__(self, server, admin_only=True, requires_patch=False)
self.scheduler = scheduler

self.help_text = "Usage: !stop_trc\n" \
"Desc: Stops all trader commands"
self.help_text = _("Usage: !stop_trc\n"
"Desc: Stops all trader commands")

def execute(self, username, args, user_flags):
args, err = self.parse_args(username, args, user_flags)
Expand Down
Loading

0 comments on commit 6647829

Please sign in to comment.