Unban ID | Я использовал команду unban, но все еще не могу отменить запрет с помощью ID

#discord.py #discord.py-rewrite #python-3.8

#discord.py #discord.py-переписать #python-3.8

Вопрос:

Это код, который я сейчас использую… Это было прекрасно, но я действительно хочу отменить запрет с помощью ID, потому что лично для меня это намного проще.

Текущая команда находится в файле Cog…

 import discord
from discord.ext import commands

class unban(commands.Cog):

    def __init__(self, client):
        self.client = client
    @commands.command()
    @commands.has_permissions(administrator=True)
    async def unban(self, ctx, *, member : discord.Member):
        banned_users = await ctx.guild.bans()
        member_name, member_discriminator = member.split("#")

        for ban_entry in banned_users:
            user = ban_entry.user

            if (user.name, user.discriminator) == (member_name, member_discriminator):
                await ctx.guild.unban(user)
                unban = discord.Embed(title='UnBan Hammer Has Spoken! :boom:', description=f'**Moderator:** {ctx.author}n **User UnBanned:** {member}n', color=0x10940b)
                unban.set_author(name="Moderating Action", icon_url=ctx.author.avatar_url)
                await ctx.send(embed=unban)
                return

def setup(client):
    client.add_cog(unban(client))
 

Итак, есть какие-нибудь идеи???

Ответ №1:

 async def unban(self, ctx, id: int) :
        user = await client.fetch_user(id)
        await ctx.guild.unban(user)
        await ctx.send(f'{user} has been unbanned')
 

это должно сработать для вас, вы можете персонализировать еще больше, но это только основной код, который вам нужен.

Ответ №2:

Попробуйте

 async def unban(self, ctx, *, member : discord.User):
    await ctx.guild.unban(discord.Object(id = member.id))
    unban = discord.Embed(title='UnBan Hammer Has Spoken! :boom:', description=f'**Moderator:** {ctx.author}n **User UnBanned:** {member}n', color=0x10940b)
    unban.set_author(name="Moderating Action", icon_url=ctx.author.avatar_url)
    await ctx.send(embed=unban)
 

Комментарии:

1. У меня это не сработало… Спасибо за помощь, я ценю это.

2. Как это не сработало? Можете ли вы показать мне, как вы это реализовали? Я могу помочь, если вы можете показать мне это.

3. Это не сработает, потому что ваш конвертер пытается преобразовать его в a discord.Member , что невозможно. Когда человек забанен, он больше не является частью этой гильдии, поэтому он не может быть guild member .