Discord.py“ Bot对象没有属性'move_member'

时间:2020-07-10 09:51:08

标签: python discord

我正在尝试通过机器人实现这一目标,以便当一个人获得“囚徒”角色时,如果他们已经在语音通道中,则该机器人会自动将其移动到“监狱”语音通道中。我从其他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'我尝试过的其他操作:

  • 等待self.bot.move_member(person, jail_vc)
  • 等待commands.move_member(person, jail_vc)
  • 等待command.move_member(person, jail_vc)
  • 等待ctx.guild.move_member(person, jail_vc)

以及其他一些变化。错误始终为'something' has no attribute 'move_member'我正在使用重写分支。 如何实现将人从任何语音通道移至特定语音通道“监狱”的功能?任何帮助将不胜感激:)。

1 个答案:

答案 0 :(得分:1)

您要查找的功能是Discord.Member#move_to

您需要传递VoiceChannel,因为它是您要执行的任务的参数。您还可以提供reason: str作为第二个参数。

await person.move_to(jail_vc, "Jail role")