discord.py bot 不会响应命令

Posted

技术标签:

【中文标题】discord.py bot 不会响应命令【英文标题】:discord.py bot won't respond to commands 【发布时间】:2020-09-12 13:52:44 【问题描述】:

我遇到了我的机器人无法响应命令的问题。这是我的代码:

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

client = discord.Client()

bot = commands.Bot(command_prefix='!')

@client.event #server + member list
async def on_ready():
    guild = discord.utils.get(client.guilds, name=GUILD)
    print(
        f'client.user is connected to the following guild:\n'
        f'guild.name(id: guild.id)\n'
    )

    members = '\n - '.join([member.name for member in guild.members])
    print(f'Guild Members:\n - members')

@bot.command() 
async def test(ctx, arg):
    await ctx.send(arg)

client.run(TOKEN)

我在代码中为机器人提供了其他客户端事件,例如对消息做出反应和回复消息。即使在我注释掉了所有其他 cmets 之后,我上面的代码也没有工作。在运行程序时,我在我的不和谐频道中输入了 !test arg,但只有在没有被注释掉时才从我的机器人那里得到编程的反应。

【问题讨论】:

【参考方案1】:

您一次只能运行一个机器人/客户端。我会使用Bot,因为Bot 类是Client 类的子类,所以它可以做它的父类可以做的所有事情。

from discord.ext import commands
import discord.utils

bot = commands.Bot(command_prefix='!')

@bot.event #server + member list
async def on_ready():
    guild = discord.utils.get(bot.guilds, name=GUILD)
    print(
        f'client.user is connected to the following guild:\n'
        f'guild.name(id: guild.id)\n'
    )

    members = '\n - '.join([member.name for member in guild.members])
    print(f'Guild Members:\n - members')

@bot.command() 
async def test(ctx, arg):
    await ctx.send(arg)

bot.run(TOKEN)

【讨论】:

以上是关于discord.py bot 不会响应命令的主要内容,如果未能解决你的问题,请参考以下文章

用户执行命令后,如何删除 discord.py 中的消息?

Discord Bot 响应短语(Discord.py 重写)

Discord.py(重写)静音命令总是返回相同的响应

Discord.py Intents 使我的机器人不响应任何内容

Discord.py - 如果命令被编辑,让我的机器人编辑他的响应

discord.py bot 不会在嵌入中加载视频