Discord Bot 无法识别命令名称

Posted

技术标签:

【中文标题】Discord Bot 无法识别命令名称【英文标题】:Discord Bot not recognizing command names 【发布时间】:2021-11-10 15:01:05 【问题描述】:

这是我为了启动我的不和谐机器人而写的,但是每当我尝试使用命令 ?hi 时,我都会收到错误消息

忽略命令 None 中的异常: discord.ext.commands.errors.CommandNotFound:找不到命令“hi””

我尝试了几件事,但我是新手,没有任何效果。

import discord 
from discord.ext import commands, tasks 
import os 
import random 

client = commands.Bot(command_prefix = '?')

@client.command
async def hi(ctx):
  await ctx.send("Hello World")

下面的答案有助于解决这个问题,这是我的新代码,因为机器人现在不给出错误消息,但不响应命令

import discord 
from discord.ext import commands 
import os 
import random 

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as 0.user'.format(client))

client.run('Token')

client = commands.Bot(command_prefix = '?')

@client.command 
async def hi(ctx): 
  await ctx.send("Hello World")

【问题讨论】:

以前从未创建过机器人,但您在函数之前不需要@client.command(name='hi') 之类的东西吗? 好吧@depperm 我试过了,现在它正在识别命令,我收到一条我理解更少的新错误消息 新的错误信息是什么? @depperm 我确实一直在弄乱它,也许你可以帮忙错误@client.command async def hi(ctx): @client.command(name=hi(ctx)) await ctx.send("Hello World") 请编辑您的问题或提出新问题。缩进对python很重要。你看起来不像我上面评论的那样。 【参考方案1】:

要创建 discord 机器人,您需要 discord 提供的身份验证令牌。我看到你的机器人使用 discord.py。他们对how to create a bot account有解释

至于你的机器人的代码,你首先需要创建一个机器人客户端然后运行它,就像这里

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as 0.user'.format(client))


client.run('your token here')

运行机器人时不要忘记添加令牌

在您完成所有操作后,您可以使用 discord.ext 模块来像您一样创建命令。 (您的代码有效,只是缺少上面显示的整个不和谐机器人部分)

ext代表扩展,如果你连主模块(discord)都没有,那么它什么也做不了

不要认为 discorddiscord.ext 是 2 个不同的模块,因此您需要同时导入这两个模块

【讨论】:

我这样做了,现在一旦我运行它说我已经以我的机器人身份登录(谢谢),我输入了命令,现在我没有收到错误,但我的机器人没有当我输入 ?hi 时不会发回任何东西 @RandomDuck 你能用你当前的代码更新问题吗? @depperm 确定一秒,完成 @RandomDuck 它是 client.command() 而不是 client.command 括号在这里很重要。还要确保 client.run() 位于程序的末尾

以上是关于Discord Bot 无法识别命令名称的主要内容,如果未能解决你的问题,请参考以下文章

Discord Bot 回复自己,无法识别 message.author.bot

如何让我的 discord.py 机器人识别它正在被 ping

对创建 C# discord bot 感到困惑

如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)

Bot无法识别邮件已在初始发送后约5秒钟后删除(删除服务器消息)

无法获得多个前缀来使用 discord.js。我怎样才能重写它以便它识别两个前缀?