2 回答
TA贡献1829条经验 获得超7个赞
由于没有“邀请”机器人,因此当添加机器人时会有一个审核日志事件。这使您可以遍历匹配特定条件的日志。
如果您的机器人可以访问审核日志,您可以搜索bot_add事件:
@client.event
async def on_guild_join(guild):
bot_entry = await guild.audit_logs(action=discord.AuditLogAction.bot_add).flatten()
await bot_entry[0].user.send("Hello! Thanks for inviting me!")
如果您希望根据您自己的 ID 仔细检查机器人的 ID:
@client.event
async def on_guild_join(guild):
def check(event):
return event.target.id == client.user.id
bot_entry = await guild.audit_logs(action=discord.AuditLogAction.bot_add).find(check)
await bot_entry.user.send("Hello! Thanks for inviting me!")
TA贡献1884条经验 获得超4个赞
从这篇文章
使用discord.py 2.0,您可以获得BotIntegration
服务器的信息以及邀请机器人的用户信息。
例子
from discord.ext import commands
bot = commands.Bot()
@bot.event
async def on_guild_join(guild):
# get all server integrations
integrations = await guild.integrations()
for integration in integrations:
if isinstance(integration, discord.BotIntegration):
if integration.application.user.name == bot.user.name:
bot_inviter = integration.user# returns a discord.User object
# send message to the inviter to say thank you
await bot_inviter.send("Thank you for inviting my bot!!")
break
注意: guild.integrations()
需要Manage Server
( manage_guild
) 权限。
添加回答
举报