Discord.py:on_member_join 突然停止工作

2022-01-14 00:00:00 python discord.py

问题描述

我正在尝试以下代码:

@bot.event异步定义 on_member_join(成员):打印(作品")对于 member.guild.text_channels 中的频道:如果 channel.name == '一般':await channel.send("Welcome to " + member.guild.name + ", " + member + "!")

我之前的 on_member_join 事件运行良好,但由于某种原因它不再运行了.我尝试更新到 discord.py 1.5.任何帮助将不胜感激.

我没有收到任何错误.

解决方案

discord.py 1.5.0 现在支持 discord API 的 Privileged Gateway Intents.为了能够利用服务器数据,您需要:

  • 在您的

    • 使用 discord.Intents 在代码的开头:

    intents = Intents.all()#如果你使用commands.Bot()bot = commands.Bot(command_prefix="!", intents=intents)#如果你使用 discord.Client()客户端 = discord.Client(intents=intents)

    I have the following code that I am trying out:

    @bot.event
    async def on_member_join(member):
        print("works")
        for channel in member.guild.text_channels:
            if channel.name == 'general':
                await channel.send("Welcome to " + member.guild.name + ", " + member + "!")
    

    My previous on_member_join event worked fine, but for some reason it doesn't anymore. I have tried updating to discord.py 1.5. Any help would be greatly appreciated.

    I am getting no errors.

    解决方案

    discord.py 1.5.0 now supports discord API's Privileged Gateway Intents. In order to be able to exploit server data, you need to:

    • Enable Presence Intent and Server Members Intent in your discord application:

    • Use discord.Intents at the beginning of your code:

    intents = Intents.all()
    
    #If you use commands.Bot()
    bot = commands.Bot(command_prefix="!", intents=intents)
    
    #If you use discord.Client()
    client = discord.Client(intents=intents)
    

相关文章