【发布时间】:2020-10-29 21:26:51
【问题描述】:
我正在尝试为我正在尝试制作的功能创建一个私有 vc。它使 vc 具有我希望它制作的权限,但是在它制作后它给出了一个错误,我不能在它后面放置任何代码。 这是代码:
guild = ctx.author.guild
players_role = await guild.create_role(name=f"Players {game_id}")
for i in all_players:
print(all_players)
print(i)
i = guild.get_member(int(i[1]))
await i.add_roles(players_role)
overwrites = {
guild.default_role: discord.PermissionOverwrite(view_channel=False),
players_role: discord.PermissionOverwrite(view_channel=True)
}
players_vc = await guild.create_voice_channel(f"Game: {game_id}", overwrites=overwrites)
await players_vc.edit(position=len(ctx.guild.voice_channels))
print("edited position")
我想要做的是编辑我创建的 vc 以便它被拉到底部,但它没有这样做,因为它在前一行中给出了一个错误。我尝试将players_vc = await guild.create_voice_channel(f"Game: {game_id}", overwrites=overwrites) 放入try: 和except:,但我需要变量来编辑位置。这是错误消息:
Traceback (most recent call last):
File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\ext\commands\core.py", line 83, in wrapped
ret = await coro(*args, **kwargs)
File "D:\Thijs coding map\TeaBot\TeaBot.py", line 889, in vc_test
test_vc = await guild.create_voice_channel(f"test vc", overwrites=overwrites)
File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\guild.py", line 888, in create_voice_channel
channel = VoiceChannel(state=self._state, guild=self, data=data)
File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\channel.py", line 553, in __init__
self._update(guild, data)
File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\channel.py", line 584, in _update
self._fill_overwrites(data)
File "C:\Users\Gebruiker\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\abc.py", line 294, in _fill_overwrites
self._overwrites.append(_Overwrites(id=overridden_id, **overridden))
TypeError: __new__() got an unexpected keyword argument 'allow_new'
对于故障排除,您可以使用以下代码:
@client.command()
async def vc_test(ctx):
guild = ctx.guild
user = ctx.author
overwrites = {
guild.default_role: discord.PermissionOverwrite(view_channel=False),
guild.me: discord.PermissionOverwrite(view_channel=True)
}
test_vc = await guild.create_voice_channel(f"test vc", overwrites=overwrites)
await test_vc.edit(position=len(guild.voice_channels))
print("edited position")
我在其他地方找不到这个问题 感谢所有帮助
【问题讨论】:
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
标签: python discord.py channels