📜  Discord.py - 更改默认帮助命令 - Python (1)

📅  最后修改于: 2023-12-03 14:40:45.078000             🧑  作者: Mango

Discord.py - 更改默认帮助命令 - Python

简介

Discord.py是一个Python库,用于创建和管理Discord机器人。默认情况下,Discord.py提供了一套基本的帮助命令,可以帮助用户浏览机器人的命令列表和文档。但是,有时我们可能希望自定义帮助命令,以便更好地配合我们的机器人。

本文将介绍如何使用Discord.py更改默认的帮助命令。我们将使用Python 3.7和Discord.py 1.7.3。

前置条件

本文假设您已经了解了Discord.py和Python的基础知识。如果您还没有掌握这些技能,请先从Python官网Discord.py 官网获取相应的文档。

在继续阅读本文之前,请确保已经完成以下步骤:

实现步骤
第一步:导入所需的库

首先,我们需要导入Discord.py库、discord.utils.get和commands。可以使用以下命令安装discord.py:

!pip install discord.py

接下来,我们导入以下库:

import discord
from discord.ext import commands
from discord.utils import get
第二步:创建一个帮助命令

接下来,我们将创建一个自定义的帮助命令。必须定义一个可以在机器人对象上调用的新函数,例如my_help()。在这个函数中,我们可以为用户提供帮助文档。

async def my_help(ctx, *commands: str):
    """自定义帮助命令"""

    bot = ctx.bot
    destination = ctx.message.author if bot.pm_help else ctx.message.channel

    def repl(obj):
        return commands[obj.group(1)]

    # 如果用户提供了命令参数,则只提供与其相关的帮助
    if commands:
        command = commands[0]
        if command.endswith((">", " ")):
            command = command[:-1]
        for cmd in bot.commands:
            if cmd.name == command or command in cmd.aliases:
                # 发送帮助信息
                formatter = commands.HelpFormatter()
                formatter.add_command_formatting(cmd)
                await destination.send(formatter.format_help(), edit=False, embed=None)
                return
        await destination.send("无法找到相应的命令。")
        return

    # 发送全局帮助信息
    else:
        p = "。"
        if bot.pm_help:
            p = "私信中。"
        await destination.send(bot.command_prefix + "help <command> 查看特定命令帮助信息。", delete_after=60)
        await destination.send_help(bot, delete_after=60)
第三步:更改默认的帮助命令

接下来,我们将使用Bot.command()修饰器表明新的帮助函数my_help()将成为机器人的默认帮助函数。

bot = commands.Bot(command_prefix='!')
bot.remove_command('help')     # 删除默认帮助命令

@bot.command(pass_context=True, name='help')
async def show_help(ctx):
    """覆盖默认的!help命令"""

    await my_help(ctx)
第四步:运行机器人
bot.run("YOUR_TOKEN")
总结

在本文中,我们学习了如何使用Discord.py更改默认的帮助命令。我们首先创建了一个自定义的帮助函数my_help(),然后将其定义为机器人的默认帮助函数。这将覆盖默认的!help命令。这样,我们就可以在Discord上创建更加人性化的机器人,更好地满足我们的需求。