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

机器人加入服务器时发送消息[Discord.py]

都飞跃
2023-03-14

我目前正在制作一个discord bot,并希望在服务器加入时在服务器的#general通道中发送一条消息,这是我到目前为止的代码。

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:
        embed=discord.Embed(title="**======== *Thanks For Adding Me!* ========**", description=f"""
        Thanks for adding me to {guild.name}!
        You can use the `--help` command to get started!
        """, color=0xd89522)
        await general.send(embed=embed)

当我运行这段代码时,什么都不会发生。我没有得到任何ERORR或输出。

如果有人能帮忙,那就太棒了。谢谢

共有2个答案

海宁
2023-03-14
async def on_guild_join(guild):
    embed=discord.Embed(title="**======== *Thanks For Adding Me!* ========**", description=f"Thanks for adding me to {guild.name}"!You can use the `--help` commandto get started!"", color=0xd89522)
    await guild.text_channels[0].send(embed=embed)
司寇善
2023-03-14

你加入工会时的有活动装饰器(@client.event)吗?当我用这个decorator测试代码时,它工作得很好。

@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:
        embed=discord.Embed(title="**======== *Thanks For Adding Me!* ========**", description=f"""
        Thanks for adding me to {guild.name}!
        You can use the `--help` command to get started!
        """, color=0xd89522)
        await general.send(embed=embed)

此外,如果您的机器人加入的公会没有名为“将军”的频道,您可能希望有一个后备选择。在guild.text_channels[0]中发送消息可能更可靠,这将在第一个通道中发送消息,或者guild.system_channel在系统通道中发送消息。

 类似资料:
  • 每次机器人被邀请到服务器时,我都想发送一条消息。然后它应该写这样的话:“你好,这是我的不和机器人” 到目前为止,我有这个代码,它不会产生错误,但也不会发送消息。

  • 我正在编写自己的websocket服务器和客户端。我成功地处理了握手并建立了联系。 现在我正在编写send_message函数,它创建了一个合适的框架。下面的例子只是为了这个问题,它不是我最终打算写的,这只是我尝试给我相同的结果的许多方法中的一种。 输入:以上函数应发送 第一个字节 第一位设置为1-,表示这是消息的最后一帧 第二、第三和第四个-所有的零,对于这个例子来说是不相关的 以下四位-000

  • 我有两个问题与编程电报机器人的PHP。 问题:当我尝试使用电报API发送更多行的文本时。根据此代码: 我在电报机器人中的文字如下: “这是我的短信。这是新线。” 你能帮我做这个吗? 谢谢你

  • 我有一个不和谐机器人,定期检查数据库中的一些数据,如果有更新,它会向通道输出一些内容。所以我设置了一个每小时运行一次的函数。 当机器人被添加到多个服务器时,问题就出现了,在这些服务器中,消息只被发送到特定的,因此消息只被发送到我的服务器通道。本质上,我只向我的渠道发送通知,我怎么能向每个拥有我的机器人的渠道发送通知,这可能吗?

  • 我不知道如何使用电报机器人诱导(触发)本地服务器向通道发送消息。 例如,从用户注册并连接电报的网站向用户发送通知。我们假设用户已经开始与bot对话,并准备好接收来自bot的消息。 我有一个单独的服务器,可以使用bot向服务器发送请求,但我不明白如何在这个电报机器人服务器上接收和处理请求。 我正在使用go电报-机器人-api库,此时服务器使用长轮询方法而不是webhooks。所以它通过更新通道接收一

  • 我希望我的不和谐机器人在加入新服务器时发送一条特定的消息,例如:“你好”。机器人应该搜索要写入的顶部通道,然后在那里发送消息。我看到了这个,但这对我没有帮助