Сообщения в логи о присоединении не приходят
#If user connect your discord server
@bot.event
async def on_member_join(member):
channel = discord.utils.get(member.guild.channels, name='ds_user')
emb = discord.Embed(title='Новый пользователь',colour=discord.Colour.purple())
emb.add_field(name='Присоединился', value=member.mention)
emb.set_author(name=member.name,url=member.avatar_url)
emb.set_footer(text=f'User ID: {member.id}')
await channel.send(embed=emb)
#If users disconnect your discord server
@bot.event
async def on_member_remove(member):
channel = discord.utils.get(member.guild.channels, name='ds_user')
emb = discord.Embed(colour=discord.Colour.purple(), title='Пользователь ушел')
emb.set_thumbnail(url=member.avatar_url)
emb.add_field(
name='Ушел ;(',
value=member.mention
)
emb.set_footer(
text=f'User ID: {member.id}'
)
await channel.send(embed=emb)
Ответы (2 шт):
Автор решения: itskekoff
→ Ссылка
Ты можешь получать channel используя ID канала:
channel = bot.get_channel(АЙДИ_КАНАЛА_Без_КАВЫЧЕК)
Автор решения: Forevor Base
→ Ссылка
уважаемый участник! Вы забыли получить канал, в который нужно добавить. Сейчас я попытаюсь вам поправить данную проблему. Давайте я возьму кусочек вашего кода.
@bot.event
async def on_member_join(member):
channel = discord.utils.get(member.guild.channels, name='ds_user')
Для начала уточним то, что можно сделать отправку в канал через два способа.
Первый: channel = bot.get_channel(ChannelId), а второй await ctx.bot.get_channel(ChannelId).send('Text').
Давайте используем оба способа на моем примере:
@bot.command() # Создаем команду
async def send(ctx, channelid): # Добавляем аргумент "channelid", т.е. куда будет отправлять наше сообщение
await ctx.bot.get_channel(int(channelid)).send('Пример!') # Переводим "channelid" в цифры, затем отправляем
@bot.command()
async def send(ctx):
channel = bot.get_channel(923633779627675691) # Вставьте свой канал туда
await channel.send('Пример!')
Надеюсь, я вам очень помог! Приятного дня, мур~

