Added help module

master
Jef Roosens 2020-08-26 13:10:47 +02:00
parent 46d8d4322e
commit 491bb74768
3 changed files with 71 additions and 13 deletions

View File

@ -1 +1,6 @@
from .test import TestMod
from .help import HelpMod
__all__ = [
'HelpMod',
]

View File

@ -0,0 +1,65 @@
# =====IMPORTS=====
# Future imports
from __future__ import annotations
# Third-party imports
import discord
# Own imports
from suzybot.frank import Module, default, command
# Typing imports
from typing import TYPE_CHECKING
if TYPE_CHECKING:
# Built-in imports
from typing import List
# Third-party imports
from discord.abc import User, Messageable
class HelpMod(Module):
"""
This module sends a help message in a given channel with info about all
other modules.
"""
PREFIX = 'help'
NAME = 'help'
HELP = 'Shows help info about all modules'
def pre_start(self):
self.theme = discord.Color.dark_green()
@default(help_str='Show help about all modules.')
async def send_all(self, author: User, channel: Messageable, mid: int):
embed = discord.Embed(colour=self.theme)
embed.set_author(name='Suzy')
for mod in self._client._modules:
embed.add_field(name=mod.NAME, value=mod.HELP, inline=False)
await channel.send(embed=embed)
@command(cmd='.+', help_str='Show help about a certain module.')
async def show_module_help(self, cmd: List[str], author: User,
channel: Messageable, mid: int):
# Exit if no arguments are given
if not cmd:
return
mod_name = cmd[0].lower()
mod = next((mod for mod in self._client._modules
if mod.NAME.lower() == mod_name), None)
if mod:
embed = discord.Embed(colour=self.theme)
if mod._DEFAULT:
embed.add_field(name='default', value=mod._help, inline=False)
for cmd in mod._COMMANDS:
embed.add_field(name=cmd._command, value=mod._help,
inline=False)
await channel.send(embed=embed)

View File

@ -1,12 +0,0 @@
from typing import List
from .. import Module
class TestMod(Module):
PREFIX = "test"
NAME = "test"
async def command(self, cmd: List[str]):
if cmd[0] == "test":
channel = self._client.get_channel(self._config["channel_id"])
await channel.send("psycho frank is in the house")