С помощью своего бота я пытаюсь сделать так, чтобы, когда человек получает роль «Заключенного», бот автоматически переводит его в голосовой канал «тюрьма», если он уже находится в голосовом канале. Я пробовал много решений из других потоков stackoverflow, потоков github и документации, но ни один из них не работает.
class Jail(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def jail(self, ctx, person: discord.Member):
try:
jailor = discord.utils.find(lambda r: r.name == 'Jailor', ctx.message.guild.roles)
if jailor in ctx.author.roles:
prisoner = discord.utils.find(lambda r: r.name == 'Prisoner', ctx.message.guild.roles)
await person.add_roles(prisoner)
jail_vc = self.bot.get_channel('jail')
await person.move_member(jail_vc)
else:
await ctx.send("You need to have the Jailor role to use this command")
except Exception as e:
print(str(e))
Этот код возвращает: 'Member object has no attribute 'move_member'
Другие вещи, которые я пробовал:
- await
self.bot.move_member(person, jail_vc)
- await
commands.move_member(person, jail_vc)
- await
command.move_member(person, jail_vc)
- await
ctx.guild.move_member(person, jail_vc)
И некоторые другие варианты . Ошибка всегда 'something' has no attribute 'move_member'
Я использую ветку перезаписи. Как мне реализовать перемещение человека с любого голосового канала в указанный c голосовой канал «тюрьма»? Любая помощь будет принята с благодарностью :).