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

机器人加入服务器时发送消息

颜经艺
2023-03-14

每次机器人被邀请到服务器时,我都想发送一条消息。然后它应该写这样的话:“你好,这是我的不和机器人”

到目前为止,我有这个代码,它不会产生错误,但也不会发送消息。

@bot.event
async def on_server_join(ctx):
    for guild in bot.guilds:
        for channel in guild.text_channels:
            if channel.permissions_for(guild.me).say:
                await ctx.message.channel.send('Hello! \n')
                break

共有1个答案

陈浩
2023-03-14

您的代码中有几个错误。下面是一个版本,它只是在刚刚加入的服务器的#general文本频道中打招呼(与它所属的每个服务器的每个文本频道相反)。下面的代码用于重写分支。

from discord.utils import find

@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('Hello {}!'.format(guild.name))
 类似资料:
  • 我目前正在制作一个discord bot,并希望在服务器加入时在服务器的通道中发送一条消息,这是我到目前为止的代码。 当我运行这段代码时,什么都不会发生。我没有得到任何ERORR或输出。 如果有人能帮忙,那就太棒了。谢谢

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

  • 我试图让我的自我机器人加入服务器。我知道self-bots反对discordtos,但我想学习一些新的东西。 这是我尝试过的命令: 错误:

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

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

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