【问题标题】:Discord.py Mentioning users that are online and have specific rolesDiscord.py 提及在线且具有特定角色的用户
【发布时间】:2020-08-16 17:34:10
【问题描述】:

所以我最近看到一些不和谐的机器人这样做,并且想知道如何让 discord.py 命令提及一个在线用户,该用户还具有(让我们说)主持人或管理员角色以及说出命令的人和启动命令的通道。

这个想法是这样的:
用户:s.assistance
Mod请求频道:
@(随机版主或在线管理员)
@user 已在 # 中请求帮助(运行命令的频道)

这在 discord.py 中是否可行?你会怎么做?

【问题讨论】:

    标签: python-3.x discord.py


    【解决方案1】:

    这将做你想要记住import random

    @client.command()
    async def assistance(ctx):
        channel = client.get_channel(STAFF_CHANNEL_ID)
        admin_role = discord.utils.get(ctx.guild.roles, name='ROLE_NAME_HERE')
        
        online_admin = []
        for user in ctx.guild.members:
            if admin_role in user.roles and str(user.status) == "online":
                online_admin.append(user)
    
        await channel.send(f"{random.choice(online_admin).mention} This user needs your help {ctx.author.mention}")
    

    【讨论】:

    • 收到错误提示“online_users”未定义,有什么想法吗?
    • 我在最后一秒更改了变量名以使其更清晰。没做对,我的错。很高兴你知道了。
    【解决方案2】:

    您可以让您的机器人自己提及管理员和版主角色。

    client.command()
    async def assistance(ctx):
        member = ctx.author
        channel = client.get_channel(STAFF_CHANNEL_ID)
        await channel.send(f"{member.mention} is in need of assistance!\n<@ROLEID>")
    

    【讨论】:

    • 不,我希望它提到一个随机的在线版主/管理员,因为我使用了与之前类似的东西,并且大约 75% 的员工说要删除它,因为它提到了所有员工。跨度>
    • 好吧,在这种情况下,阿卜杜勒阿齐兹的答案应该有效!
    • 啊,你把 online_user 而不是 online_admin,刚刚测试过,现在可以了,谢谢你的帮助。
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 2021-06-29
    • 2020-11-27
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多