首页 > 解决方案 > 查看加入 Discord.py 的人使用的邀请码

问题描述

我想知道是否有任何方法可以让机器人记录用户用来加入我的服务器的邀请码。例如,当一个人加入时,它看起来像这样:

-User@1234 joined the server using the code "XXXXXXXX" which was created by User@4321

标签: pythondiscorddiscord.pybots

解决方案


一种方法是检查新成员加入时所有邀请的使用次数是否增加。然后可以检查邀请者是否增加了邀请。我不知道您的用户加入的频道,所以这里有一个通用的方法(从这里):

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")

推荐阅读