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

如何使用不和谐。py bot,在用户加入VC时提供用户角色,在用户离开VC时删除用户角色

呼延聪
2023-03-14

我试图制作一个不和谐机器人,当用户加入语音频道时给他们一个角色,当他们离开时删除这个角色。我知道on_voice_state_update以及如何给用户一个角色,但我不知道如何让哪些用户加入渠道来给他们这个角色。

现在我的代码是对如何使用discord的答案稍加修改的版本。仅当用户加入语音频道时,才会更新\u voice\u state\u上的py事件处理程序。

@client.event
async def on_voice_state_update(before, after ):
    if before.voice.voice_channel is None and after.voice.voice_channel is not None:
        for channel in before.server.channels:
            if channel.name == 'general':
                await client.send_message(channel, "User joined")

共有2个答案

云德辉
2023-03-14

after是语音状态更改后“现在”存在的成员对象。这将是传递给add\u roles

@client.event
async def on_voice_state_update(before, after ):
    role = discord.utils.get(after.server.roles, name="YOUR ROLE NAME")
    if not before.voice.voice_channel and after.voice.voice_channel:
        await client.add_roles(after, role)
    elif before.voice.voice_channel and not after.voice.voice_channel:
        await client.remove_roles(after, role)

穆宾白
2023-03-14

三个月后,但对于后来偶然发现这一点的人来说,这里是rewite(1.0)分支版本。

# VC PROCESSING
@client.event
async def on_voice_state_update(member, before, after):
    if not before.channel and after.channel:
        role = discord.utils.get(member.guild.roles, name="role name")
        await member.add_roles(role)
    elif before.channel and not after.channel:
        role = discord.utils.get(member.guild.roles, name="role name")
        await member.remove_roles(role)
 类似资料:
  • 目前,我正在用Java开发一个基于Spring Boot的web应用程序。我正在尝试为我的应用程序创建工人注册。老实说,这是我第一次使用这样的应用程序,我真的不知道如何在注册时授予用户角色。我看了几个教程,但并没有人演示如何在向数据库添加新用户时授予角色。 在我的数据库中,我有如下表Worker和Role。 在注册表中,我有两个复选框:worker和admin,我想根据所选的复选框授予权限。 这就

  • 我试图将所有用户从一个具有特定角色的VC中转移出来,例如:!召唤@role 这样,所有具有特定角色的用户都应该来到VC,用户在那里键入该命令 目前我的代码是这样的: 目前,我正在移动所有用户,但是我只希望用户具有知情的角色 我试着用: 但是没有成功。。。有人能帮我解决这个问题吗?

  • 用户已作为用户角色登录,我想以员工身份登录而不提交登录表单,但身份验证失败, 请查一下密码,帮帮我 @requestmapping(value=“/home”)public ModelAndView userHomePage(Model Model,HttpServletRequest request,HttpServletResponse response,Principal Principal

  • 传递用户表示。id to keydeposerverURL“/auth/admin/realms/XXXX/users/“userId”/role mappings/realm”我为某个用户获取这些角色。。。 我无法确定应该使用哪个API向用户添加/删除角色。 请告诉我需要使用什么API 我能找到的最好的是下面这个,但是我不知道params(路径和请求属性应该是)是什么...

  • 我目前的理解是Spring没有区分角色和权威,唯一的区别是角色名称的缩写。 我希望实现的是具有权威的角色。另外,如果我给一个用户ADMIN这个角色,他就会获得所有相关的特权(举个例子,我们可以访问网站上的路由以更新页面) 我当前的实现如下:我有一个自定义特权类,它与Roles类有多对多的关系,而Roles类与用户的类有多对多的关系。当,它迭代所有权限并获取。 我的问题是:有没有更好的方法(最好是s

  • 我无法在我的索引页面上显示经过身份验证的用户的角色和用户名。我用的是百里叶。所有角色用户都保存在内存中。我正在使用Springmvc编写和Web应用程序 我在我的pom中添加了依赖关系.xml 这是我的索引页: 我也希望: 这是我的安全配置类: 我也读了很多关于stackoverlew的问题,但我没有找到答案。我还阅读了官方蒂梅拉夫网站上的指南。 为什么我无法显示:“角色:用户”、“用户名:用户”