当前位置: 首页 > 知识库问答 >
问题:

频道设置权限并将\u移动到频道

车嘉实
2023-03-14

所以我使用了discord。py来制造一个不和谐的客户端。我正在使用on\u voice\u state\u update查看成员的VoiceState是否更改。

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

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)

这不工作。有人能帮帮我吗?

共有1个答案

蓬琦
2023-03-14

有几个错误。

首先,事件on_voice_state_update接受三个参数,分别是成员之前之后而不是user_nameuser_id之后。

当你使用公会时。create_voice_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)

最后请检查应用程序是在服务器上,并具有移动成员权限在服务器上,否则member.move_to将抛出一个不和。禁止的错误。

 类似资料:
  • 请求header POST /v1/activities/{频道id}/setAuth Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id 请求参数 { "method":"AUTH_

  • 所以,我试图发出一个命令,当你说这个命令时,提供一个语音频道的名称和名称,将你提到的成员移动到该语音频道。我对此做了一些研究,但仍然无法使其工作。 现在,当我使用语音频道“Music”(也就是“d!move[提及]Music”)尝试该命令时,它会将“Moved[member]返回null”返回到控制台,当然,不会移动成员。它似乎可以找到我提到的成员,但找不到语音频道。任何帮助都将不胜感激。谢谢

  • 我想创建一个命令,移动我的不和谐语音频道中的所有用户。这是我尝试过的。 在我试图运行命令后”!movetome"在不和谐的聊天我得到了以下错误消息: 谢谢你的帮助:)

  •  RSS频道设定 设定启动RSS频道时项目的保存数量。 范例:若设定为[最新的5种项目],则只会将频道内最新的5种项目保存至Memory Stick™或主机内存,其他项目皆会自动删除。 最新项目 保存最新的1个项目 最新的2种项目 保存最新的2种项目 最新的5种项目 保存最新的5种项目 最新的10种项目 保存最新的10种项目 所有项目 保存频道内的所有项目 提示 RSS频道的项目保存,请参阅(RS

  • 我有一个YouTube频道。我想为我的网站添加新功能: 用户使用其google帐户进行身份验证。 用户创建自己的视频播客(使用此小部件),并将其上载到自己的youtube帐户。 之后,我使用YouTube API将用户视频移动到我的频道 有没有可能允许一些用户在我的频道上传他们账户的视频?也许用户可以通过Google Plus做到这一点? 附注:我看过一些文章

  • 请求header 新增自定义菜单 POST /v1/activities/{频道id}/saveMenu Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 修改自定义菜单 PUT /v1/activities/{频道id}/saveMenu/{菜单id} Authorization:Bearer {A