我正在编写一个简单的 discord bot,我想让它在加入服务器时发送问候消息
@client.event
async def on_guild_join(guild):
general = find(lambda x: x.name == 'general', guild.text_channels)
if general and general.permissions_for(guild.me).send_messages:
await general.send('Thanks for inviting me.'.format(guild.name))
但是,此代码仅发送一般消息,如果一般频道未命名为“general”,则不会发送。所以现在我希望它在系统消息通道中发送消息。我该怎么做?
答案 0 :(得分:0)
您应该使用 Guild.system_channel
但在某些情况下它可以是 None 就好像服务器已删除系统通道
以下是修改后的代码:
@client.event
async def on_guild_join(guild):
if guild.system_channel: # If it is not None
await guild.system_channel.send(f'Thanks for inviting me to {guild.name}')