繁体   English   中英

更改颜色角色不和谐

Changing color roles discord

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

首先,我想指出我是python的初学者。

我正在尝试编写一条命令,允许用户通过机器人更改其角色的颜色。 但是,我遇到了许多无法找到答案的问题。

第一个问题是我无法访问调用命令的用户角色。 但是,我决定跳过它,直接担任特定角色。 所以我做了这段代码:

@client.command(pass_context=1)
async def changecolor(ctx, NewColor):
    author = ctx.message.author
    server = ctx.message.author.server
    dictOfColors = { '1' : discord.Color.default(),
                     '2' : discord.Color.teal(),
                     '3' : discord.Color.dark_teal(),
                     '4' : discord.Color.green(),
                     '5' : discord.Color.dark_green(),
                     '6' : discord.Color.blue(),
                     '7' : discord.Color.purple(),
                     '8' : discord.Color.dark_purple(),
                     '9' : discord.Color.magenta(),
                     '10' : discord.Color.dark_magenta(),
                     '11' : discord.Color.gold(),
                     '12' : discord.Color.dark_gold(),
                     '13' : discord.Color.orange(),
                     '14' : discord.Color.dark_orange(),
                     '15' : discord.Color.red(),
                     '16' : discord.Color.dark_red() }
    role = discord.utils.get(server.roles, name='New Member')
    if NewColor in dictOfColors:
        await client.edit_role(server, role, colour=NewColor)

但是当我尝试: .changecolor 5收到此错误:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'name'

您能告诉我我做错了什么吗?

2 个回复

您可以使用角色转换器从角色提及中获取角色。 我也会这样做,以便用户传递颜色的名称而不是数字:

@client.command(pass_context=True)
async def changecolor(ctx, role: discord.Role, *, color):
    if role not in ctx.message.author.roles:
        await bot.say("You do not have the role " + role.name)
        return
    color = '_'.join(color.lower().split())
    if not hasattr(discord.Color, color):  # We could also use inspect.ismethod to only accept classmethod names
        await bot.say("I do not recognize the color " + color)
        return
    await client.edit_role(ctx.message.server, role, colour=getattr(discord.Color, color)())

然后,您可以通过以下方式将其称为

!changecolor @NewMember dark gold

将最后一行更改为

await client.edit_role(server, role, colour=dictOfColors[NewColor])

您正在将字典中所需的colour编号分配给colour属性,而不是该键上的实际颜色值。

1 更改 discord 角色的颜色

一切设置正确,机器人在 discord 中,已连接等。这段代码: 给出这个错误: 如果有人能找到我出错的地方或我犯的任何错误,请帮助! ...

2 不和谐角色的格式

我正在制作一个Discord机器人,但是在该机器人确定作者权限的那一部分上,它无法识别角色,“所有者”和“ admin”等贵重物品是该角色的ID,discord的格式是什么。角色? 我试过用id和name做类 现在,由于我的角色是“所有者”,因此它应将烫发输出为0,尽管应为3。 ...

3 存储不和谐的颜色

我正在尝试制作一个机器人,公会可以在其中选择嵌入的颜色。 我唯一的问题是存储这些颜色。 这是一些代码,作为我正在尝试做的一个例子。 我想要它,以便我可以在单独的命令中调用颜色。 唯一的问题是我不能调用 discord.Color.Blue。 我有存储它的方法,但我无法调用它。 有没有办法做到这一 ...

4 在不和谐中分配角色

我正在制作一个不和谐的谋杀神秘机器人。 const Discord = require('discord.js'); const client = new Discord.Client(); client.on("message", (message) => { msg = mess ...

5 discord 中的自动角色分配

在与朋友的一个项目中,我决定自己制作一个机器人,我被要求让机器人在 2 个已经存在的范围内分配一个随机范围,但它不起作用,它甚至没有给我一个错误。 ...

6 如何删除所有不和谐角色?

我有几台服务器,我想删除我之前创建的所有角色,但它们的数量还有很多不足之处。我创建了一个删除一个角色的命令。 请帮助创建一个命令,该命令将从服务器不和谐中删除所有角色 ...

7 Discord 反应角色问题

我目前正在编写 discord 机器人反应角色命令。 一切都很顺利,但我有一个问题。 当我启动机器人并运行命令来创建嵌入时,一切正常。 问题是当我对消息做出反应时,它并没有给我角色。 这是我的代码:module.exports = { name: "reactionrole", de ...

10 角色成员计数不和谐JS

我想获得一个角色的成员数量,但总是给我“1”: const server_roles = client.guilds.cache.get('server ID').roles.cache.get('role ID').members.size; console.log(server_roles) ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM