Python 查看加入Discord.py的人员使用的邀请代码
我想知道是否有办法让机器人记录用户加入我的服务器时使用的邀请代码。例如,当一个人加入时,它将如下所示:Python 查看加入Discord.py的人员使用的邀请代码,python,discord,discord.py,bots,Python,Discord,Discord.py,Bots,我想知道是否有办法让机器人记录用户加入我的服务器时使用的邀请代码。例如,当一个人加入时,它将如下所示: -User@1234 joined the server using the code "XXXXXXXX" which was created by User@4321 一种方法是在新成员加入时检查所有邀请的使用次数的增量。然后可以检查增加的邀请的邀请者。我不知道您的用户加入的渠道,因此这里有一个通用方法(来自): 来自discord.ext导入命令 bot=comma
-User@1234 joined the server using the code "XXXXXXXX" which was created by User@4321
一种方法是在新成员加入时检查所有邀请的使用次数的增量。然后可以检查增加的邀请的邀请者。我不知道您的用户加入的渠道,因此这里有一个通用方法(来自):
来自discord.ext导入命令
bot=commands.bot(command_prefix=“&”)
邀请={}
@机器人事件
_ready()上的异步定义:
对于bot.guilds中的帮会:
邀请[guild.id]=等待guild.invests()
def按代码查找邀请(邀请列表,代码):
对于邀请列表中的库存:
如果存货代码==代码:
退货库存
@机器人事件
成员加入时的异步定义(成员):
加入前邀请=邀请[会员.行会.id]
加入后邀请=wait member.guild.invests()
对于加入前的邀请,请执行以下操作:
如果invite.uses
最简单的方法是,在不进行任何编码的情况下,使用一个注释,即只有在成员以足够小的时间间隔加入服务器(例如每分钟一次或更少)的情况下,这种方法才能可靠地工作。否则,可能会有超过一名成员加入的比赛条件,我们无法辨别他们使用了哪种邀请。谢谢大家的回答。我现在就给他们每个人一次尝试。纳扎尔·汗和乌卡斯·科维茨基,你的两种方法都奏效了。非常感谢,我三天多的问题现在已经解决了:D
from discord.ext import commands
bot = commands.Bot(command_prefix="&")
invites = {}
@bot.event
async def on_ready():
for guild in bot.guilds:
invites[guild.id] = await guild.invites()
def find_invite_by_code(invite_list, code):
for inv in invite_list:
if inv.code == code:
return inv
@bot.event
async def on_member_join(member):
invites_before_join = invites[member.guild.id]
invites_after_join = await member.guild.invites()
for invite in invites_before_join:
if invite.uses < find_invite_by_code(invites_after_join, invite.code).uses:
print(f"Member {member.name} Joined")
print(f"Invite Code: {invite.code}")
print(f"Inviter: {invite.inviter}")
invites[member.guild.id] = invites_after_join
return
@bot.event
async def on_member_remove(member):
invites[member.guild.id] = await member.guild.invites()
bot.run("YOUR TOKEN HERE")