python-3.x 机器人没有响应discord.py

ljsrvy3e  于 2022-12-20  发布在  Python
关注(0)|答案(1)|浏览(141)

下面是我的代码

import discord
from discord.ext import commands
TOKEN = "MY TOKEN"
import random

intent = discord.Intents.default()
intent.members = True
intent.message_content = True

client = discord.Client(intents=intent)

bot = commands.Bot(command_prefix='--', intents=discord.Intents.default())

slap_gif = ['https://media.tenor.com/GBShVmDnx9kAAAAC/anime-slap.gif', 'https://media.tenor.com/CvBTA0GyrogAAAAC/anime-slap.gif', 'https://i.pinimg.com/originals/fe/39/cf/fe39cfc3be04e3cbd7ffdcabb2e1837b.gif', 'https://i.pinimg.com/originals/68/de/67/68de679cc20000570e8a7d9ed9218cd3.gif']

slap_txt = ['Ya, you deserve it', 'Get slapped', 'Ya, get slapped hard']

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

@bot.command()
async def slap(ctx):
    embed = discord.Embed(
        color=discord.Color("#ee5253"),
        description = f"{ctx.author.mention} {(random.choice(slap_txt))}"
    )

    embed.set_image(url=(random.choice(slap_gif)))

    await ctx.send(embed=embed)

client.run(TOKEN)

我正在尝试创建一个基本的gif动作机器人,但它不工作,它是与on_message工作,但我切换到@bot.命令,它现在不工作。它运行没有错误。

ovfsdjhp

ovfsdjhp1#

on_message会对您发送的任何文本做出React。@bot.command()只会对带有前缀的命令名做出React,在您的示例中,前缀为--slap
我只是能猜到,但最终你没有发送正确的短信。
因为discord.Botdiscord.Client的子类,所以只需要其中之一(因为您注册了命令bot,但运行了client,在bot上注册的命令将不起作用。此外,您最好保留名为botdiscord.Bot示例,因为它是子类,具有更多功能)并且应该用它替换所有出现的client
还有你的bot似乎有错误的意图。如果我把bot = commands.Bot(..., intents=discord.Intents.default())改为bot = commands.Bot(..., intents=intent),它会运行slap函数(它给我抛出了一个错误,但这不是这个问题的主题)。

相关问题