У меня есть бот для авто разрешения для Fortnite KD Ranking. Это работает как;
Если пользователь имеет 1+, бот KD назначит пользователю «Bronz». Пермь.
Если пользователь имеет 1,5+, бот KD назначит ему «Gümüş» Пермь.
Если у пользователя есть 2+, бот KD назначит ему «Altın» Пермь.
и это работает как шарм. НО. Бот должен убрать старую роль, когда он занял очередную перми. Я имею в виду, если пользователь повысит рейтинг «Altın». Старая пермская "Gümüş" должна быть удалена, но remove.roles
не работает.
Вот несколько кодов для этих строк:
for list in LISTE:
roles = discord.utils.get(message.server.roles, name=list)
await client.remove_roles(message.author, role)
await client.add_roles(message.author, role)
elif ratio >= BRONZE_B and ratio <= BRONZE_E:
role = discord.utils.get(message.server.roles, name=LISTE[2])
embed=discord.Embed(color=0xcd8032)
embed.add_field(name="Oyuncu", value=username, inline=True)
embed.add_field(name="KD", value=str(ratio), inline=True)
embed.add_field(name="Lig", value=LISTE[2], inline=True)
await client.send_message(message.channel, embed = embed)
embed2=discord.Embed(color=0x727272)
embed2.add_field(name="Sonraki Lig", value=LISTE[3], inline=True)
embed2.add_field(name="Hedef KD", value=str(SILVER_B), inline=True)
embed2.set_footer(text="Lig verileriniz Fortnite KD değerlerinize göre güncellendi.")
await client.send_message(message.channel, embed = embed2)
for list in LISTE:
roles = discord.utils.get(message.server.roles, name=list)
await client.remove_roles(message.author, role)
await client.add_roles(message.author, role)
elif ratio >= SILVER_B and ratio <= SILVER_E:
role = discord.utils.get(message.server.roles, name=LISTE[3])
embed=discord.Embed(color=0x727272)
embed.add_field(name="Oyuncu", value=username, inline=True)
embed.add_field(name="KD", value=str(ratio), inline=True)
embed.add_field(name="Lig", value=LISTE[3], inline=True)
await client.send_message(message.channel, embed = embed)
embed2=discord.Embed(color=0xcfb223)
embed2.add_field(name="Sonraki Lig", value=LISTE[4], inline=True)
embed2.add_field(name="Hedef KD", value=str(GOLD_B), inline=True)
embed2.set_footer(text="Lig verileriniz Fortnite KD değerlerinize göre güncellendi.")
await client.send_message(message.channel, embed = embed2)
Если я использую replace_roles
вместо remove_roles
, кажется, что это работает, но на этот раз он удаляет ВСЕ роли и заменяет его на более высокий ранг.
Я имею в виду, когда я использую replace_roles
, если Модератор проверяет свой ранг с моей командой бота /derece
, бот берет все свои роли и дает ему более высокий ранг КД.
Я хочу, чтобы это работало так;
Если у пользователя есть 1+ бот KD, он назначит пользователю «Bronz».
Если пользователь имеет рейтинг до 1,5+ KD, удалите Bronz
perm и дайте Silver
perm
Если пользователь имеет рейтинг до 2+ KD, удалите Silver
perm и дайте Gold
perm
Спасибо.