【问题标题】:channel set permissions and move_to channel频道设置权限和 move_to 频道
【发布时间】:2020-07-28 14:21:28
【问题描述】:

所以我使用discord.py 制造不和谐Client。我正在使用on_voice_state_update 来查看成员的VoiceState 是否发生变化。

如果成员在特定的VoiceChannel 内,我希望客户端创建一个新的语音通道,使用成员的用户名作为通道名称,并将成员移动到该新语音通道中。这是我的代码:

import discord, asyncio

app = discord.Client()

@app.event
async def on_voice_state_update(user_name, user_id, after):
    name2 = str(user_name)
    ch = app.get_channel(660213767820410918)
    guild = app.get_guild(660213767820410893)
    member = str(user_id)
    if after.channel == ch:
        await guild.create_voice_channel(name=(name2+'`s Room'), category=guild.get_channel(660213767820410908) ,user_limit=99 ,overwrites=(user_name ,{'manage_channels': True}))
        await guild.member.move_to(channel, reason=None)

这不起作用。谁能帮帮我?

【问题讨论】:

    标签: python python-3.x discord.py


    【解决方案1】:

    有几个错误。

    首先,事件on_voice_state_update接受三个参数,分别是memberbeforeafter,而不是user_nameuser_idafter

    当您使用guild.create_voice_channel 函数时,您没有传递正确的字典并且您忘记将channel 分配给新创建的通道(这就是channel 未定义的原因)。

    最后,您应该使用member.move_to 而不是guild.member.move_to,因为guild.member 未定义。

    import discord, asyncio
    
    app = discord.Client()
    
    @app.event
    async def on_voice_state_update(member, before, after):
        username = str(member)
        guild = app.get_guild(660213767820410893)
        ch = guild.get_channel(660213767820410918)
    
        if after.channel == ch:
            channel = await guild.create_voice_channel(
                      name = (username+"'s Room"),
                      category = guild.get_channel(660213767820410908),
                      user_limit = 99,
                      overwrites = {member: discord.PermissionOverwrite(manage_channels=True)}
            )
            await member.move_to(channel)
    

    最后请检查该应用是否在服务器中,并且在服务器上有Move Members的权限,否则member.move_to会抛出discord.Forbidden错误。

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 1970-01-01
      • 2020-08-10
      • 2020-10-29
      • 2021-05-28
      • 1970-01-01
      • 2020-07-23
      • 2021-07-17
      • 2018-08-01
      相关资源
      最近更新 更多