Итак, у меня есть команда userinfo, в которой я хочу, чтобы мой BOT возвращал некоторую информацию о пользователе, и одна информация, которую я хотел бы, чтобы он возвращал, — это рейтинг присоединения к гильдии, если существует гильдия контекста вызова.
Итак, если участник создал гильдию, это будет оцениваться как 1. Если участник присоединился вторым участником, верните 2. Если участник присоединился третьим участником, верните 3...
@bot.command()
async def userinfo(ctx, *, user=None):
embed = discord.Embed(title = "User info" [...])
...
embed.add_field(name = "Joining rank", value=f"{SERVER JOIN RANK}/{SERVER TOTAL MEMBER COUNT})
...
Должен ли я просто использовать цикл for?
Спасибо






@PatrickHaugh Спасибо, сработало. :) Я мог бы сделать такую функцию:
def return_guild_join_position(user, guild):
"""Returns the guild join position of a user."""
try:
joins = tuple(sorted(guild.members, key=operator.attrgetter("joined_at")))
if None in joins:
return None
for key, elem in enumerate(joins):
if elem == user:
return key + 1, len(joins)
return None
except:
return None
Вы можете сделать что-то вроде
sorted(guild.members, key=attrgetter('joined_at')). В документах говорится, чтоjoined_atиногдаNone, поэтому вам придется придумать какой-то способ справиться с этим.