系统消息通道中新用户加入服务器时如何发送消息?

How to send a message when a new user joins the server in the system messaging channel?

我有这个代码:

class member_greeting(commands.Cog):
def __init__(self, bot):
    self.bot = bot

@commands.Cog.listener()
async def on_guild_join(self):
    for guild in self.bot.guilds:
        await guild.system_channel.send("I'm ready to go!")

def setup(bot):
    bot.add_cog(member_greeting(bot))

不向系统消息通道发送消息 如何正确书写?

on_guild_join events have a guild 参数:

class member_greeting(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_guild_join(self, guild):
        await guild.system_channel.send("I'm ready to go!")

def setup(bot):
    bot.add_cog(member_greeting(bot))

如果你想让你的机器人在加入新公会时在它所在的每个服务器中发送消息,我相信你必须使用 async for guild in self.bot.guilds: 而不是 for guild in self.bot.guilds:

class member_greeting(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_guild_join(self):
        async for guild in self.bot.guilds:
            await guild.system_channel.send("I'm ready to go!")

    def setup(bot):
        bot.add_cog(member_greeting(bot))