discord.py авто-выдача ролей при подключении нового участника сервера
Мне надо, чтобы при подключении участника ему выдавалась определенная роль. В интернете находил, но у меня не работало. Вот код (без команды на выдачу ролей):
import discord
client = discord.Client()
class MyClient(discord.Client):
async def on_ready(self):
# bot connection
print('Присоеденился {0}!'.format(self.user))
async def on_message(self, message):
# so that the bot does not display its own messages
if message.author == client.user:
return
# displaying messages from the chat
if message.content.startswith(''):
await message.channel.send(f'{message.author} написал {message.content}')
# bot launch
client = MyClient()
client.run('TOKEN')
Если не сложно, объясните еще как работает выдача ролей, а то практически ничего не понимаю в этой библиотеке.
Ответы (1 шт):
Автор решения: jillstr
→ Ссылка
from discord.ext import commands
import discord
bot = commands.Bot(command_prefix='', intents=discord.Intents.all())
@bot.event
async def on_ready():
print("Bot started")
@bot.event
async def on_message(self, message):
# so that the bot does not display its own messages
if message.author == bot.user:
return
# displaying messages from the chat
if message.content.startswith(''):
await message.channel.send(f'{message.author} написал {message.content}')
@bot.event
async def on_member_join(member):
role = member.guild.get_role(role_id=id_роли)
await member.add_roles(role)
bot.run("Токен")
Прочитать про функцию add_roles, можно в документации.
Зайдите на сайт и выберите своего бота, после включите эти 2 пункта(Они находятся во вкладке Bot).
