繁体   English   中英

Discord Python 机器人为角色添加颜色

Discord Python Bot Add Color to Role

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

设置现有角色的颜色?

这是我创建角色的代码:

roles = ["SSS | Weeb", "SS Rang | Weeb", "S Rang | Weeb", "A Rang | Weeb", "B Rang | Weeb",
                 "C Rang | Weeb", "D Rang | Weeb", "E Rang | Weeb", "F Rang | Weeb", "Junior Rang | Weeb"]
        for i in roles:
            seasons = discord.utils.get(message.guild.roles, name=str(i))
            if str(seasons) == str(i):
                pass
            else:
                await message.guild.create_role(name=str(i))

现在我想在那里设置

roles = ["SSS | Weeb", "SS Rang | Weeb", "S Rang | Weeb", "A Rang | Weeb", "B Rang | Weeb",
                 "C Rang | Weeb", "D Rang | Weeb", "E Rang | Weeb", "F Rang | Weeb", "Junior Rang | Weeb"]
        colors = ["red, green", "blue"] # and much more
        for i in range(len(roles)):
            seasons = discord.utils.get(message.guild.roles, name=str(roles[i]))
            if str(seasons) == str(roles[i]):
                pass
            else:
                await message.guild.create_role(name=str(roles[i]))
            ->  await message.guild.add_color_to_role(role_name=str(roles[i]), color=colors[i])

我什么都没找到...

2 个回复

没有Guild.add_color_to_role这样的东西,它是Role.edit并将颜色作为 kwargs 传递,您也可以在创建角色时传递颜色:

# Editing the role
await role.edit(colour=discord.Colour.blue())
# Creating a role with the color
await guild.create_role(name="whatever", colour=discord.Colour.blue())

您还可以将十六进制值传递给 color kwarg

await guild.create_role(name="whatever", colour=0xff0000) # Red color

因此,您的颜色列表必须是discord.Colour实例列表或整数列表

colors = [0xff0000, discord.Colour.blue(), 0x00ff00]

到 go 同时通过两个列表可以使用zip function (注意:两个列表应该是相同的长度)

role_names = ["name1", "name2", "name3"]
role_colors = [0xff0000, 0x00ff00, 0x0000ff] 

for name, color in zip(role_names, role_colors):
    print(f"Name: {name}, color: {color}")

# Name: name1, color: 0xff0000
# Name: name2, color: 0x00ff00
# ...

你的代码看起来像这样

role_names = ["name1", "name2", "name3"]
role_colors = [0xff0000, 0x00ff00, 0x0000ff] # The default color is 0x000000 (white)

for name, color in zip(role_names, role_colors):
    print(f"Name: {name}, color: {color}") # -> Name: name1, color: 0xff0000 ...

    # Getting the role
    role = discord.utils.get(message.guild.roles, name=name)
    # Checking if the role exists (in other words - if the `role` variable is not a NoneType)
    if role is not None: 
        # Role does not exist, create it here
        role = await message.guild.create_role(name=name, colour=color)

编辑

使用 colors 就像#5482a5

color = "#5482a5"
color = color[1:] # removing the initial `#`
color = int(color, 16) # pass this as the colour kwarg

参考:

您可以在创建角色时指定颜色。

await message.guild.create_role(name=str(roles[i], colour=discord.Color.blue()))

由于您实际上已经询问了如何编辑颜色,因此您可以这样做:

role = await message.guild.create_role(name=str(roles[i]))
await role.edit(colour = discord.Colour.orange())
2 Discord.py:机器人角色

所以我试图制作一个狼人游戏,当游戏开始时,它会给人一个随机角色我如何制作它,所以每个角色都会被赋予,如果有人能让我知道如何在玩家注册的地方发出命令通过输入命令 @commands.command(name="start") async def start(self, ctx): ...

3 验证Bot没有添加角色

我一直被抛出“client.guilds.get(...)。member(...)。roles.add不是一个函数”我在更改行上尝试了很多线程,但没有一个真正解决了我的问题了。 我试图将message.author更改为message.member,但它似乎没有工作,并给了我更多的错误。 ...

5 更改 Discord 中 Bot 角色的位置

我目前正在尝试让我的机器人正常工作。 一个问题是自动分配给机器人的角色低于所有其他角色,我不希望用户必须将它们拖到其他角色之上。 所以我决定尝试在机器人加入服务器时更改角色位置,但没有任何效果。 这是我的代码: 首先,我将我的方法连接到事件_client.JoinedGuild += InviteH ...

6 Discord.js 与机器人的集成角色

大家好,我正在尝试编写自己的机器人,但我不知道如何设置这些自动集成角色,有人可以解释一下他们是如何做到的。 在此处输入图片说明 ...

8 Discord 添加角色超时

我正在创建一个商店,用户可以在其中购买角色。 主要问题是由于 dicord api 速率限制,我无法处理多个请求,我不知道如何处理添加用户角色的代码: 问题是 discord 给了我一个错误(错误:添加角色超时。),但即使有这个错误,用户也可以获得角色,我不知道为什么基本上我无法处理这个问题,因为用 ...

暂无
暂无

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

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