Пользовательская команда роли

Мне нужна помощь с командой custom_role. Он должен быть создан для роли пользователя с произвольным именем и цветом.

Пока у меня есть только:

@Bot.command()
async def custom_role(ctx):
    await ctx.guild.create_role(name = "role")

    emb = discord.Embed(description = "Role created!", color = 0x2ecc71)
    await ctx.send(embed = emb)

что не так с кодом?

Łukasz Kwieciński 24.12.2020 17:09

В чем ошибка? Чего вы хотите достичь?

Sujit 24.12.2020 17:11

У меня нет никакой ошибки, я просто хочу сделать команду, которая может создать пользовательскую роль для пользователя, эта роль должна иметь собственное имя и цвет

selion 24.12.2020 17:12

@selion, не лучше ли было бы иметь набор цветовых ролей и позволить пользователям выбирать из этих цветов? Это просто продолжало бы делать все больше и больше ролей. Лично я считаю, что это плохая идея.

Sujit 24.12.2020 17:16

Нет, я хочу добавить эту команду в экономический бот, чтобы он больше не создавал роли, я также забыл, что я хочу, чтобы эта команда создавала временные пользовательские роли, но это не проблема, я просто не знаю как сделать команду, которая может создавать пользовательские роли

selion 24.12.2020 17:20
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
81
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы почти закончили, вы можете передать имя роли и цвет в качестве параметров и создать пользовательскую роль с указанными так:

@Bot.command()
async def custom_role(ctx, colour: str, *, name: str):
    colour = discord.Color(value=int(colour, 16))
    await ctx.guild.create_role(name = name, colour=colour)

    emb = discord.Embed(description = "Role created!", color = 0x2ecc71)
    await ctx.send(embed = emb)

Пример использования (при условии, что префикс '!'):

!custom_role 0xa83232 test role # Creates a role named 'test role' in the color red

Большое спасибо, это очень полезно. Я пытался использовать ":str", но я делал это неправильно.

selion 24.12.2020 17:53

Возможно, это поможет:

@Bot.command()
async def custom_role(ctx):
    permissions = discord.Permissions()
    await ctx.guild.create_role(name = 'role', colour = discord.Colour(0x2ecc71), permissions = permissions)

Подробнее о разрешениях здесь.

Другие вопросы по теме