Python discord.py 显示未知命令

Posted

技术标签:

【中文标题】Python discord.py 显示未知命令【英文标题】:Python discord.py display unknown command 【发布时间】:2021-10-02 17:19:32 【问题描述】:

我正在尝试制作一个记录未知命令的日志系统:

@client.event
async def on_command_error(ctx, error):
    channel = client.get_channel(test)
    await channel.send(f"**ctx.author.mention **SEND COMMAND: ** `ctx.prefixctx.command.name` **IN CHANNEL: ** ctx.channel.mention!")

但是发送None,有什么想法吗?

【问题讨论】:

"但是发送None" -- 因为命令没有被执行 我知道,我要求修复 if isinstance(error, CommandNotFound): 如果找不到命令,则会记录错误。 但是我可以打印吗?我之前试过 查看这篇文章,如果它有帮助***.com/questions/52900101/… 【参考方案1】:

这很好用(适合我的情况)

import discord
from discord.ext import commands

class NameOfYourBot(commands.Cog):
    def __init__(self, bot):
        bot.remove_command('help')
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        print(f'Logged in as self.bot.user (self.bot.user.id)')


    @commands.Cog.listener()
    async def on_command_error(self, ctx, error):
        await ctx.send(error)

    @commands.command()
    async def ping(self, ctx):
        await ctx.send("pong")

        
bot = commands.Bot(command_prefix='!',description='description', case_insensitive=True)

bot.add_cog(NameOfYourBot(bot))
bot.run('TOKEN')

此代码在我的设置(机器人的登录文件)文件中,并且工作正常。作为未定义命令的输出,我得到this

【讨论】:

以上是关于Python discord.py 显示未知命令的主要内容,如果未能解决你的问题,请参考以下文章

Discord.py D&D 掷骰子命令有太多问题

在 discord.py 中显示设置前缀的命令(重写)

Bash:Python3:找不到命令(Windows,discord.py)

当命令 discord.py 的参数不正确时如何显示消息?

尝试运行“ctx 是缺少的必需参数”的命令时收到错误消息。 [Python,discord.py]

discord.py - 检查是不是找不到子命令