公会加入事件打印机器人被邀请 -- Discord.py

时间:2021-02-09 04:42:27

标签: python python-3.x discord discord.py bots

我不确定如何编写命令/事件,以便在将机器人添加到新服务器时打印出机器人所在的公会列表。我知道如何自己打印服务器列表,但我不知道允许我检查机器人何时添加到新服务器的条件。我一直在网上搜索,但没有运气。

df.loc[
    (df['grp'].isin(['A', 'B'])) &
    (df['value'] > 0) & 
    (df['descrip'] == 'yes')
]

如果有人能告诉我如何只打印添加机器人的新服务器的名称,而不是所有服务器的名称,那将会更有帮助。

2 个答案:

答案 0 :(得分:4)

它是 on_guild_join,它不需要 bot 作为事件参数。

相反,您传递 guild 并使用 on_guild_join 作为您的事件。这是它适用于您的问题,

@bot.event
async def on_guild_join(guild):
    print('Bot has been added to a new server')
    print('List of servers the bot is in: ')

    for guild in bot.guilds:
        await print(guild.name)

添加时也不需要使用if

如果你只想打印公会,你可以使用如下,只需使用guild

@bot.event
async def on_guild_join(guild):
    print(f'Bot has been added to: {guild}')

答案 1 :(得分:1)

所以我在自己的机器人中使用了这段代码,看看它是如何工作的。首先,我将 on_bot_join 事件更改为 on_guild_join,然后删除了 bot 参数,因为此事件不需要它。

@bot.event
async def on_guild_join(guild):
 print('Bot has been added to a new server')
 print('List of servers the bot is in: ')
 for guild in bot.guilds:
    print(guild.name)

enter image description here

要仅打印机器人加入的服务器的名称,只需使用 guild.name 即可。像这样:

@bot.event
async def on_guild_join(guild):
 print(f'Bot has been added to a new server: {guild.name}')
 print('List of servers the bot is in: ')
 for guilds in bot.guilds:
    print(guilds.name)

enter image description here