当前位置: 首页 > 知识库问答 >
问题:

如何使用discord.py在系统消息通道中发送问候消息

沈嘉瑞
2023-03-14

我正在编写一个简单的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”,则不会发送。现在我希望它在系统消息通道中发送消息。我该怎么做?

共有1个答案

邢卓
2023-03-14

您应该使用Guild.system_channel,但在某些情况下,它可以是无,就好像服务器已经删除了系统通道

修订后的守则如下:

@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}')
 类似资料:
  • 我有一个相当不错的机器人,我计划很快推出。它被称为版主,它应该是一个完美的版主机器人,这样服务器就不再需要真正的版主了。因此,我希望它在加入服务器时发送欢迎消息,但由于所有服务器都有不同的频道名称和频道,因此我无法获得通用的频道名称来发送欢迎消息。 这就是我现在看到的,正如您所看到的,它找到了一个名为general的频道,并将欢迎嵌入消息发送到general频道。但是,由于不是每台服务器都有一个通

  • 我在discord.py做了一个机器人,希望我的机器人在网络钩子在特定频道发送消息时定位一个角色。有办法这么做吗?现在所有我有的是通道ID和我很确定这是一个客户端事件

  • 我正在看华为推送套件在Android系统中是如何工作的。为此,我使用邮递员发送通知,我发送通知消息和数据消息。在通知区域中可以看到通知消息,但我无法获得我在数据消息中发送的数据。我想知道如何得到他们都当应用程序在前台和后台。

  • 我正在为我的Discord服务器创建一个bot。 我的服务器中有一个新的用户通道。当新用户加入时,我想向这个频道发送欢迎消息。但是,我不知道如何才能访问新用户的渠道。

  • 我想向bot已加入的所有频道发送消息 当特定文件的散列结果与原始结果不同时,我希望将消息发送到bot加入的所有不协调通道。我知道如何向频道发送回复信息 用这个代码,对吗?但我想发送消息到所有的通道,机器人已加入当一些事件发生。

  • 我有下面的代码从消息生成嵌入,它现在可以正常工作。我想要的是,在创建嵌入后,bot应该要求用户提到一个频道,在用户提到一个频道后,bot应该将该嵌入发送到那里。我该怎么做?