欢迎新成员,成员没有属性“服务器”

时间:2020-05-25 17:40:34

标签: python python-3.x discord discord.py discord.py-rewrite

我正在编写此位,以便在新成员加入时在特定行会的特定通道中发送消息:

@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

有人知道如何解决此错误吗?

2 个答案:

答案 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 documentationmember documentationuser 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()了,所以请期待一些错误