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)都没有,那么它什么也做不了
不要认为 discord 和 discord.ext 是 2 个不同的模块,因此您需要同时导入这两个模块
【讨论】:
我这样做了,现在一旦我运行它说我已经以我的机器人身份登录(谢谢),我输入了命令,现在我没有收到错误,但我的机器人没有当我输入 ?hi 时不会发回任何东西 @RandomDuck 你能用你当前的代码更新问题吗? @depperm 确定一秒,完成 @RandomDuck 它是 client.command() 而不是 client.command 括号在这里很重要。还要确保 client.run() 位于程序的末尾以上是关于Discord Bot 无法识别命令名称的主要内容,如果未能解决你的问题,请参考以下文章
Discord Bot 回复自己,无法识别 message.author.bot
如何让我的 discord.py 机器人识别它正在被 ping
如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)