首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tracking邀请discord.py

Tracking邀请discord.py
EN

Stack Overflow用户
提问于 2020-11-13 05:06:15
回答 1查看 1.1K关注 0票数 0

我有一个代码用来追踪邀请。如果没有提到的成员,那么它将显示您自己的邀请,但如果有,它将显示该成员的邀请。

代码语言:javascript
复制
@client.command()
async def invites(ctx, user = None):
  if user == None:
    totalInvites = 0
    for i in await ctx.guild.invites():
        if i.inviter == ctx.author:
            totalInvites += i.uses
    await ctx.send(f"You've invited {totalInvites} member{'' if totalInvites == 1 else 's'} to the server!")
  else:
    totalInvites = 0
    for i in await ctx.guild.invites():
       totalInvites += i.uses
       member = ctx.message.guild.get_member_named(user)
       await ctx.send(f"{member} has invited {totalInvites} member{'' if totalInvites == 1 else 's'} to the server!")

没有错误,相反,它只是垃圾邮件:没有邀请__成员到服务器!(__是一个随机数。)

如果没有提到的人,它可以工作。我怎样才能发送上述人的邀请函数量呢?为什么它会向邮件发送垃圾邮件?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-11-13 05:12:21

你好像忘了检查你的邀请作者是否正确。您遍历了invites,但没有if i.inviter == member

修复后的代码为:

代码语言:javascript
复制
@client.command()
async def invites(ctx, user = None):
  if user == None:
    totalInvites = 0
    for i in await ctx.guild.invites():
        if i.inviter == ctx.author:
            totalInvites += i.uses
    await ctx.send(f"You've invited {totalInvites} member{'' if totalInvites == 1 else 's'} to the server!")
  else:
    totalInvites = 0
    for i in await ctx.guild.invites():
       member = ctx.message.guild.get_member_named(user)
       if i.inviter == member:
         totalInvites += i.uses
    await ctx.send(f"{member} has invited {totalInvites} member{'' if totalInvites == 1 else 's'} to the server!")

此外,它发送垃圾邮件的原因是因为您在for循环中包含了await ctx.send语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64811739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档