我创建了这两个函数,假定它们可以让我更改频道的顺序并告诉他们我希望它们移至哪个频道:
async def channel_under_position(self, channel_to_move_under_id, channel_to_move_id):
channel_in_position = await self.bot.http.request(discord.http.Route('GET', "/channels/{}".format(channel_to_move_under_id)))
await move_channel_under_position(self, channel_to_move_id, channel_in_position['position'])
async def move_channel_under_position(self, channel_to_move_id, position):
channel = await self.bot.http.request(discord.http.Route('GET', "/channels/{}".format(channel_to_move_id)))
channel['position'] = position + 1
await self.bot.http.request(discord.http.Route('PATCH', "/channels/{}".format(channel_to_move_id)), json=channel)
我不知道为什么,但是这非常不一致,有时频道的位置比频道列表低了一个额外的频道。不过,它大约有90%的时间有效,而且我找不到重现此问题的方法-似乎是完全随机发生的。有人知道为什么吗?
在您建议我使用discord.py尝试任何操作之前,我正在使用async分支,并且在该版本中已失效。