我正在尝试通过机器人实现这一目标,以便当一个人获得“囚徒”角色时,如果他们已经在语音通道中,则该机器人会自动将其移动到“监狱”语音通道中。我从其他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'
我正在使用重写分支。 如何实现将人从任何语音通道移至特定语音通道“监狱”的功能?任何帮助将不胜感激:)。
答案 0 :(得分:1)
您要查找的功能是Discord.Member#move_to
您需要传递VoiceChannel
,因为它是您要执行的任务的参数。您还可以提供reason: str
作为第二个参数。
await person.move_to(jail_vc, "Jail role")