Discord.py - 从错误对象中获取上下文

Posted

技术标签:

【中文标题】Discord.py - 从错误对象中获取上下文【英文标题】:Discord.py - Get context from error object 【发布时间】:2021-08-05 23:43:00 【问题描述】:

我有一个齿轮test

我有一个函数正在检查命令是否有错误。

在这个例子中,目前,如果用户在 Discord 中调用命令时没有提供参数,则会将错误打印到控制台。

我想用所述错误消息回复调用命令的原始消息 (!test)。

通常我会使用commands.Context 来执行此操作,但是由于它不是我的实现中的参数,那么最好的方法是什么?

import discord
from discord.ext import commands


class Test(commands.Cog):
    def __init__(self, client):
        self.client = client


    @commands.command()
    async def test(self, ctx, arg1):
        await ctx.reply(arg1)

    @test.error
    async def test_error(self, error):
        if isinstance(error, commands.errors.MissingRequiredArgument):
            # Here I want to reply
            print(error)


def setup(client):
    client.add_cog(Test(client))

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

错误处理程序也将ctx 作为参数

@test.error
async def test_error(self, ctx, error):
    if isinstance(error, commands.errors.MissingRequiredArgument):
        # Here I want to reply
        print(error)

看看error handling introduction

【讨论】:

以上是关于Discord.py - 从错误对象中获取上下文的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ID discord.py 中获取成员对象

如何从 discord.py 中的文本通道获取所有消息的数组?

Discord.py:获取带有 id 的用户对象

使用 Codeforces API 通过 discord bot (discord.py) 获取有关用户在 CF 问题上的所有 AC 的信息 - python 中的 json 文件处理错误

如何在 discord.py 中创建 discord.Permissions 对象?

(discord.py) 如何获取用户拥有多少权限的列表