我正在编写此位,以便在新成员加入时在特定行会的特定通道中发送消息:
@bot.event
async def on_member_join(member):
channel = get(member.server.channels, id=464298877823221763)
await c.send(channel,"welcome")
新会员加入时出现奇怪的错误:
Ignoring exception in on_member_join
Traceback (most recent call last):
File "C:\Python38\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "d:/Documents/Bots/DS BOT/self_bot.py", line 53, in on_member_join
channel = get(member.server.channels, id=464298877823221763)
AttributeError: 'Member' object has no attribute 'serve
有人知道如何解决此错误吗?
答案 0 :(得分:1)
在API中,您应该使用guild
,而不是server
。成员也可以属于许多不同的行业,因此在这里无法使用member.guild
。尝试使用client.get_channel(id)
。
@bot.event
async def on_member_join(member):
channel = bot.get_channel(464298877823221763)
await channel.send("welcome")
答案 1 :(得分:1)
它不是服务器,而是guild
,您可以尝试以下代码。
@bot.event
async def on_member_join(member):
channel = bot.get_channel(channel-id)
await channel.send(f"Welcome to {member.guild.name}!")
如果您想发送成员加入的位置,您可以这样做
@bot.event
async def on_member_join(member):
await member.channel.send(f"Welcome to {member.guild.name}!")
检出guild documentation和member documentation或user documentation
注意。有时候阅读documentation会有所帮助,请不要忘记。
如果要在齿轮上使用它,则需要这样做。
@commands.Cog.listener()
async def on_member_join(self, member):
channel = bot.get_channel(channel-id)
await channel.send(f"Welcome to {member.guild.name}!")
另一个说明,我有一段时间没有触摸command.Cog.listener()了,所以请期待一些错误