discord.py - 加入/离开消息错误,不起作用
Posted
技术标签:
【中文标题】discord.py - 加入/离开消息错误,不起作用【英文标题】:discord.py - Join/Leave messages error, doesn't work 【发布时间】:2021-05-16 08:09:58 【问题描述】:再次,我的代码没有赶上,我不知道为什么...... 控制台没有显示错误。
这是我的代码:
@bot.event
async def on_member_join(member):
channel = bot.get_channel(792786709350973454)
author = ctx.message.author
ico = author.avatar_url
embed = discord.Embed(
color = discord.Color.red(),
)
embed.set_author(name=(f'• Hello member on my server!!'))
embed.add_field(name='Warning,', value='read the regulations!', inline=False)
embed.set_footer(text="dBot created by Diablo#4700", icon_url=ico)
await channel.send(embed=embed)
【问题讨论】:
这能回答你的问题吗? Discord.py on_member_join and on_member_leave not working 我更正了,但机器人仍然没有向给定频道发送消息,不存在错误。 @DiabloStudio 您的机器人是否有权在该特定频道()中发送消息? 有权限,还是看不到消息。 您确定没有收到任何错误吗?在该 sn-p 的第 7 行末尾有一个逗号,后面没有参数,这应该会引发语法错误。另外,您是否将意图传递给您的 Bot/Client 构造函数? 【参考方案1】:代码 sn-p 中存在不止一个问题。我将在此处列出它们并进行修复。
首先是主要问题,你用ctx.author.name
声明了一个author
变量,这里的ctx
是什么? ctx
仅在命令中传递。这是一个事件。它使用member
作为参数,但你不能在这里使用ctx
。
其次,下一个问题在停止命令输出中并没有真正发挥作用,而是您在嵌入作者消息中发送member
的问题。同样member
是一个对象,您不能直接使用它,您必须将属性放在您需要的成员之后,例如member.name
、member.mention
、member.avatar_url
固定代码:
@bot.event
async def on_member_join(member):
channel = bot.get_channel(792786709350973454)
# author = ctx.message.author # first problem, you don't really need this line
ico = member.avatar_url # since above line is useless you would change this line too
embed = discord.Embed(
color = discord.Color.red(),
)
embed.set_author(name=f'• Hello member.name on my server!!') # second problem was here.
embed.add_field(name='Warning,', value='read the regulations!', inline=False)
embed.set_footer(text="dBot created by Diablo#4700", icon_url=ico)
await channel.send(embed=embed)
我已经用 cmets 标记了错误。 (重要)意图: 以防万一您不知道,您需要特权网关意图才能跟踪成员事件。确保从 Discord 的 Developers Portal 的应用程序中的 bot 部分启用这两个意图,然后在顶部的代码(您正在初始化 bot 的位置)中启用...
import discord
from discord.ext import commands
client= commands.Bot(command_prefix="prefix", intents=discord.Intents.all())
...
# rest of the code
参考资料:
on_member_join
eventcontext
or ctx
Intents Discord.Py
【讨论】:
以上是关于discord.py - 加入/离开消息错误,不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 discord.py 机器人加入语音通道之间添加暂停?
discord.py(python)中的ffmpeg播放器自动离开