You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Enso-Bot/cogs/test.py

102 lines
5.4 KiB
Python

import datetime
from discord import Embed
from discord.ext import commands
from discord.ext.commands import is_owner
from settings import enso_embedmod_colours, blank_space
class helper(commands.Cog, command_attrs=dict(hidden=True)):
"""Help Command!"""
def __init__(self, bot):
self.bot = bot
@commands.command(hidden=True)
@is_owner()
async def help2(self, ctx, *cog):
group_found = False
if not cog:
coggers = Embed(title="(っ◔◡◔)っ Custom Help (っ◔◡◔)っ",
description=f"Use **{ctx.prefix}help** `<cog>` to find out more about them!"
f"\n\n`[]` | **Optional**"
f"\n`<>` | **Required**"
f"**^^ Do not include those in your commands!**",
colour=enso_embedmod_colours,
timestamp=datetime.datetime.utcnow())
coggers.set_footer(text=f"Requested by {ctx.author}", icon_url='{}'.format(ctx.author.avatar_url))
if ctx.message.guild is None:
coggers.set_thumbnail(url=ctx.author.avatar_url)
else:
coggers.set_thumbnail(url=ctx.guild.icon_url)
cog_desc = ''
for x in self.bot.cogs:
cog_desc += f"**{x}** | {self.bot.cogs[x].__doc__}\n"
coggers.add_field(name=blank_space, value=cog_desc[0:len(cog_desc) - 1], inline=False)
await ctx.message.add_reaction(emoji="✉️")
await ctx.send(embed=coggers)
else:
found = False
for x in self.bot.cogs:
for y in cog:
if x == y:
coggers = Embed(title=f"(っ◔◡◔)っ {cog[0]} (っ◔◡◔)っ", colour=enso_embedmod_colours,
timestamp=datetime.datetime.utcnow())
coggers.set_footer(text=f"Requested by {ctx.author}",
icon_url='{}'.format(ctx.author.avatar_url))
for c in self.bot.get_cog(y).walk_commands():
if not c.hidden:
if c.signature:
cogger_info = c.help
coggers.add_field(name=f"**{ctx.prefix}{c.qualified_name}** `{c.signature}`",
value=cogger_info, inline=False)
else:
cogger_info = c.help
coggers.add_field(name=f"**{ctx.prefix}{c.qualified_name}**",
value=cogger_info, inline=False)
await ctx.message.add_reaction(emoji="✉️")
found = True
if not found:
for x in self.bot.cogs:
for c in self.bot.get_cog(x).walk_commands():
if c.name == cog[0]:
if isinstance(c, commands.Group):
string = " ".join(cog)
group_found = True
for val in c.commands:
if string == val.qualified_name:
coggers = Embed(title="Proper Syntax",
description=f"**{ctx.prefix}{val.qualified_name}** `{val.signature}` | {val.help}",
colour=enso_embedmod_colours,
timestamp=datetime.datetime.utcnow())
coggers.set_footer(text=f"Requested by {ctx.author}",
icon_url='{}'.format(ctx.author.avatar_url))
await ctx.message.add_reaction(emoji="✉️")
else:
coggers = Embed(title=f"Proper Syntax",
description=f"**{ctx.prefix}{c.qualified_name}** | {c.help}",
colour=enso_embedmod_colours, timestamp=datetime.datetime.utcnow())
coggers.set_footer(text=f"Requested by {ctx.author}",
icon_url='{}'.format(ctx.author.avatar_url))
await ctx.message.add_reaction(emoji="✉️")
found = True
if not found:
if group_found:
coggers = Embed(title="Error!",
description=f"How do you even use `{string}`?",
colour=enso_embedmod_colours,
timestamp=datetime.datetime.utcnow())
else:
coggers = Embed(title="Error!",
description=f"How do you even use `{cog[0]}`?",
colour=enso_embedmod_colours,
timestamp=datetime.datetime.utcnow())
else:
await ctx.message.add_reaction(emoji="✉️")
await ctx.send(embed=coggers)
def setup(bot):
bot.add_cog(helper(bot))