@niklazh
да.

Как сделать выдачу ролей и смену ника от автора сообщения в определённом канале?

хотел сделать команду для выдачи определённой роли и смене никнейма на выбранную пользователем
@client.command()
async def reg (ctx, member: discord.Member, *, nick):
    await ctx.message.delete()
    member = ctx.message.author
    role = discord.utils.get(ctx.message.guild.roles, id = 'my_id_role')
    await member.add_roles(role)
    await member.edit(nick= nick)

у меня вроде получилось сделать это, но я хотел бы чтобы не надо было указывать себя самого через @, а чтобы учитывался автор сообщения с командой, а также чтобы команда работала только в одном канале дискорд. И можно ли сделать это через ивент захода человека на сервер после приветствия. Думаю по коду видно что я явный новичок
@client.event
async def on_member_join(member):
    channel = client.get_channel('id')
    role = discord.utils.get(member.guild.roles, id = 'id')
    await member.add_roles(role)
    emb = discord.Embed(title= f'гражданин ``{member.name}`` въехал в республику', color = 0x14efff )
    await channel.send( embed = emb)
    new_channel = client.get_channel('id')
    await new_channel.send('введите команду [rp!reg], затем укажите себя с помощью[@имя автора], а затем имя и фамилию своего персонажа с большой буквы')
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Предположу что вы копипастили код потому что в нем уже не нужен member
member = ctx.message.author
В этой строчке вы переприсвоили в member пользователя вызвавшего команду, просто уберите member из параметров.

а также чтобы команда работала только в одном канале дискорд

Лучше всего это настраивать настройками в дискорде, а не жестко прописывать в коде.
Для обычных команд: выставив видимость боту только нужных комнат
Для слеш команд: настройки сервера - Интеграция - Выбрать бота - найти нужную команду. Там доступны любые ограничения по комнатам и ролям для каждой отдельной команды
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы