|
|
@ -95,7 +95,7 @@ cog_template = '''# -*- coding: utf-8 -*- |
|
|
|
from discord.ext import commands |
|
|
|
import discord |
|
|
|
|
|
|
|
class {name}: |
|
|
|
class {name}(commands.Cog{attrs}): |
|
|
|
"""The description for {name} goes here.""" |
|
|
|
|
|
|
|
def __init__(self, bot): |
|
|
@ -106,31 +106,31 @@ def setup(bot): |
|
|
|
''' |
|
|
|
|
|
|
|
cog_extras = ''' |
|
|
|
def __unload(self): |
|
|
|
def cog_unload(self): |
|
|
|
# clean up logic goes here |
|
|
|
pass |
|
|
|
|
|
|
|
async def __local_check(self, ctx): |
|
|
|
async def cog_check(self, ctx): |
|
|
|
# checks that apply to every command in here |
|
|
|
return True |
|
|
|
|
|
|
|
async def __global_check(self, ctx): |
|
|
|
async def bot_check(self, ctx): |
|
|
|
# checks that apply to every command to the bot |
|
|
|
return True |
|
|
|
|
|
|
|
async def __global_check_once(self, ctx): |
|
|
|
async def bot_check_once(self, ctx): |
|
|
|
# check that apply to every command but is guaranteed to be called only once |
|
|
|
return True |
|
|
|
|
|
|
|
async def __error(self, ctx, error): |
|
|
|
async def cog_command_error(self, ctx, error): |
|
|
|
# error handling to every command in here |
|
|
|
pass |
|
|
|
|
|
|
|
async def __before_invoke(self, ctx): |
|
|
|
async def cog_before_invoke(self, ctx): |
|
|
|
# called before a command is called here |
|
|
|
pass |
|
|
|
|
|
|
|
async def __after_invoke(self, ctx): |
|
|
|
async def cog_after_invoke(self, ctx): |
|
|
|
# called after a command is called here |
|
|
|
pass |
|
|
|
|
|
|
@ -230,6 +230,7 @@ def newcog(parser, args): |
|
|
|
directory = directory.with_suffix('.py') |
|
|
|
try: |
|
|
|
with open(str(directory), 'w', encoding='utf-8') as fp: |
|
|
|
attrs = '' |
|
|
|
extra = cog_extras if args.full else '' |
|
|
|
if args.class_name: |
|
|
|
name = args.class_name |
|
|
@ -239,7 +240,12 @@ def newcog(parser, args): |
|
|
|
name = name.replace('-', ' ').title().replace(' ', '') |
|
|
|
else: |
|
|
|
name = name.title() |
|
|
|
fp.write(cog_template.format(name=name, extra=extra)) |
|
|
|
|
|
|
|
if args.display_name: |
|
|
|
attrs += ', name="{}"'.format(args.display_name) |
|
|
|
if args.hide_commands: |
|
|
|
attrs += ', command_attrs=dict(hidden=True)' |
|
|
|
fp.write(cog_template.format(name=name, extra=extra, attrs=attrs)) |
|
|
|
except OSError as exc: |
|
|
|
parser.error('could not create cog file ({})'.format(exc)) |
|
|
|
else: |
|
|
@ -262,6 +268,8 @@ def add_newcog_args(subparser): |
|
|
|
parser.add_argument('name', help='the cog name') |
|
|
|
parser.add_argument('directory', help='the directory to place it in (default: cogs)', nargs='?', default=Path('cogs')) |
|
|
|
parser.add_argument('--class-name', help='the class name of the cog (default: <name>)', dest='class_name') |
|
|
|
parser.add_argument('--display-name', help='the cog name (default: <name>)') |
|
|
|
parser.add_argument('--hide-commands', help='whether to hide all commands in the cog', action='store_true') |
|
|
|
parser.add_argument('--full', help='add all special methods as well', action='store_true') |
|
|
|
|
|
|
|
def parse_args(): |
|
|
|