Discord.py Подскажите пожалуйста. Как выдать unban по ID?
Прошу прощение за возможно глупый вопрос. Как можно выдать анбан пользователю по идентификатору в Discord?
@bot.command()
@commands.has_permissions(administrator=True)
async def unban(ctx, member: discord.member, reason, id: int):
user = await ctx.fetch_user(id)
if reason == None:
await ctx.send(f'{member.mention} получил амнистию!')
messageok = (f'С участника {member.mention} была снята блокировка **по причине: {reason}**')
await member.send(f'С вас была снята блокировка на сервере: {ctx.guild.name}, добро пожаловать!')
await ctx.send(messageok)
await ctx.guild.unban(user)
@unban.error
async def unban_error(ctx, error, member: discord.Member):
if isinstance(error, MissingPermissions):
await ctx.send(f'{member.mention}, **у вас нет доступа к снятию блокировок!**')
Ответы (1 шт):
Автор решения: s_l_a_v_k_a
→ Ссылка
- Когда вы передаёте переменной member класс discord.Member, вы берёте людей, которые есть на сервере.
@bot.command()
@commands.has_permissions(administrator=True)
async def unban(ctx, member = None, *, reason = "Отстуствует"):
if not member:
await ctx.send("Укажите ID пользователя!")
elif len(member) > 18:
await ctx.send("Укажите ID пользователя!")
else:
try:
member = int(member)
user = await bot.fetch_user(member)
except:
return
await ctx.guild.unban(user, reason=reason)
await ctx.send(f"С участника <@!{user.id}> была снята блокировка **по причине: {reason}**!")
await user.send(f'С вас была снята блокировка на сервере: {ctx.guild.name}, добро пожаловать!')
@unban.error
async def unban_error(ctx, error, member: discord.Member):
if isinstance(error, MissingPermissions):
await ctx.send(f'{member.mention}, **у вас нет доступа к снятию блокировок!**')