我的基于 python 的不和谐机器人没有响应输入的任何命令,并且初始方法没有打印任何内容

Posted

技术标签:

【中文标题】我的基于 python 的不和谐机器人没有响应输入的任何命令,并且初始方法没有打印任何内容【英文标题】:My python based discord bot is not responding to any commands entered, and the initial method is not printing anything 【发布时间】:2021-07-07 22:00:24 【问题描述】:

当我启动我的不和谐机器人时,on_ready 方法不起作用。该机器人上线,但该方法中的任何代码都不会在命令行中打印。此外,info 命令无法正常工作。这是以前与我编写的另一个机器人一起工作的所有代码,所以我不确定什么是失败的。代码如下。

from discord.ext import commands
import discord


client = discord.Client()


TOKEN = "insert token here"
description = "Bot that does things"
bot = commands.Bot(command_prefix="$", description="testbot")


@bot.event
async def on_ready():
    print("Logged in as")
    print(bot.user.name)
    print(bot.user.id)
    print("-----------------")
    print("Developed by")
    print("me")


@bot.command()
async def info(ctx):
    embed = discord.Embed(
        title="Commands", description="Here are the commands:", color=0xFFFF00
    )
    embed.add_field(name="meme", value="gives you a  meme", inline=True)
    print("Cmd entered")


client.run(TOKEN)

【问题讨论】:

【参考方案1】:

这可能是因为您同时定义了clientdiscord.Client 实例)和botdiscord.ext.commands.Bot 实例)。如果您删除 client 并将 client.run() 更改为 bot.run(),机器人应该可以工作。

from discord.ext import commands
import discord


TOKEN = "insert token here"
description = "Bot that does things"
bot = commands.Bot(command_prefix="$", description="testbot")


@bot.event
async def on_ready():
    ...

@bot.command()
async def info(ctx):
    ...


bot.run(TOKEN)

【讨论】:

是的,命令至少需要缺少的消息意图。 @ChrisDewa 我认为消息意图默认设置为True,除非我弄错了 是的,默认情况下所有功能都已启用但具有特权。感谢您的信息

以上是关于我的基于 python 的不和谐机器人没有响应输入的任何命令,并且初始方法没有打印任何内容的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止不和谐机器人响应自身/所有其他机器人 [Python 3.6 中的不和谐机器人]

我正在尝试编写一个显示我的我的世界服务器状态的不和谐机器人,但机器人没有响应命令,即使出现错误

不和谐机器人的命令不起作用(Python)

python问题中的不和谐机器人

为啥当我输入 node main.js 时我的不和谐机器人无法上线?

Discord.py 机器人:如何让我的不和谐机器人向我发送对用户在 DM 中使用的命令的响应,例如进行调查?