【问题标题】:Discord.py new member messageDiscord.py 新成员消息
【发布时间】:2021-10-19 21:12:42
【问题描述】:

所以我有这个是为了给新成员写一个欢迎信息。

@bot.event
async def on_member_join(member):
    channel = bot.get_channel('channel_id')
    await channel.send("insert message")

这适用于机器人吗?如果加入的人是真实用户,这会起作用吗?

【问题讨论】:

标签: python discord.py


【解决方案1】:

注意:bot.get_channel() 采用 int 而不是 str,如果您已通过 int,请检查您是否在开发人员页面和代码中为您的机器人启用了 Intents

在开发者页面上:https://discord.com/developers/applications/{bot_id}/bot 在 Privileged Gateway Intents 中启用服务器成员意图。

在您的代码上:

intents = discord.intents.default()
intents.members = True

bot = commands.bot(command_prefix=prefix, intents=intents)

【讨论】:

  • 我忘了启用意图。谢谢!
【解决方案2】:

是的,它会响应机器人。机器人其实是一个普通用户,他们只是有一个特殊的身份。

如果您想过滤掉机器人,那么只需查看成员对象,它包含一个属性,可以告诉您它是否是机器人 - member.bot

那么你可以这样写:

@bot.event
async def on_member_join(member):
    if not member.bot:
        channel = bot.get_channel('channel_id')
        await channel.send("insert message")

编辑 PS: 如果你还没有的话,我建议你做一个测试discord服务器,你可以直接测试它。

要测试人们的连接,只需将其对没有帐户的人开放,然后在匿名浏览器窗口中打开服务器邀请。

【讨论】:

  • 我并不想排除机器人自动取款机。我正在测试它,但它不起作用,只是经典的不和谐欢迎信息。
猜你喜欢
  • 2021-10-23
  • 2021-08-03
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 2020-06-16
  • 2020-08-28
  • 2021-03-14
  • 2021-01-13
相关资源
最近更新 更多