python - 查看加入 Discord.py 的人使用的邀请码
问题描述
我想知道是否有任何方法可以让机器人记录用户用来加入我的服务器的邀请码。例如,当一个人加入时,它看起来像这样:
-User@1234 joined the server using the code "XXXXXXXX" which was created by User@4321
解决方案
一种方法是检查新成员加入时所有邀请的使用次数是否增加。然后可以检查邀请者是否增加了邀请。我不知道您的用户加入的频道,所以这里有一个通用的方法(从这里):
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")
推荐阅读
- xdp-bpf - XDP - 每个目标 IP/PORT 都有 AF_XDP 套接字?
- javascript - 如何启动成帧器运动?
- r - 如何在 r 中使用 mgsub 更改与 greple 命令匹配的所有单元格的单元格内容?
- c# - 错误映射类型...映射配置...目标成员
- google-apps-script - 如何使用 onEdit 功能观看多个标签
- javascript - 带有香草js的数组中匹配条目的grt数
- excel - 在设计模式下循环选择用户窗体控件
- reactjs - 如何在 useEffect() 中使用 React history.push() 路由到不同的页面
- java - ICEpdf 不呈现 PDF
- java - JsonPath / Java 如何在过滤中应用数据类型转换