【问题标题】:How to send a message when a new user joins the server in the system messaging channel?新用户在系统消息通道中加入服务器时如何发送消息?
【发布时间】:2020-12-06 07:12:18
【问题描述】:

我有这个代码:

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))

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

【问题讨论】:

    标签: python discord bots discord.py discord.py-rewrite


    【解决方案1】:

    on_guild_join 事件有一个 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))
    

    【讨论】:

    • 仍然,这样的问题如何让服务器的创建者可以设置新用户加入服务器时发送消息的通道?我可以重置一些代码。创建一个新问题并在那里提问会更好吗?
    • 是的,这是一个全新的问题。你应该尝试使用 json 或数据库,如果它太复杂,你可以简单地使用 python 字典。在创建问题之前尝试提出一些代码,否则,它会被否决;)
    猜你喜欢
    • 2021-11-03
    • 1970-01-01
    • 2012-07-15
    • 2021-05-17
    • 2016-06-26
    • 1970-01-01
    • 2021-12-28
    • 2021-01-09
    • 2018-07-27
    相关资源
    最近更新 更多