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