【问题标题】:Discord.py - Add role to userDiscord.py - 为用户添加角色
【发布时间】:2019-08-11 03:40:24
【问题描述】:
import discord
from discord import Embed, Color


def ex(args, message, client, invoke):
    if (message.mentions.__len__() > 0):
        for member in message.mentions:
            server = message.server.name
            role = discord.utils.get(server.roles, name="MMDev")
            yield from client.add_roles(member, role)

这是我的代码。我试图将提到的用户添加到角色“MMDev”。 这是错误:

Traceback (most recent call last):
  File "venv\lib\site-packages\discord\client.py", line 307, in _run_event
    yield from getattr(self, event)(*args, **kwargs)
  File "main.py", line 91, in on_message
    yield from commands.get(invoke).ex(args, message, client, invoke)
  File "cmdmute.py", line 9, in ex
    role = discord.utils.get(server.roles, name="MMDev")
AttributeError: 'str' object has no attribute 'roles'

这是 Python 3.5

【问题讨论】:

  • @Jakob.B 请也添加您的输入。
  • 你的server变量是一个字符串,包含服务器的名字,不是服务器对象;你不能只做server.roles;您可以通过以下方式获得角色:role = message.server.roles

标签: python bots discord discord.py


【解决方案1】:

message.server.name 是服务器的名称,您需要 Server 对象本身。

def ex(args, message, client, invoke):
    if (message.mentions.__len__() > 0):
        for member in message.mentions:
            role = discord.utils.get(message.server.roles, name="MMDev")
            if role:
                yield from client.add_roles(member, role)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2021-07-06
    • 2021-09-21
    • 2021-07-26
    • 2021-03-26
    • 2019-02-12
    • 1970-01-01
    相关资源
    最近更新 更多