Как отправить сообщение в лс в дискорде при заходе на сервер?
Итак, у меня есть такой код:
@client.event
async def on_member_join(member):
await member.create_dm()
await member.dm_channel.send(random.choice([
f'Привет, {member.name}, добро пожаловать!',
f'Дарова {member.name}, обсутраивайся на сервере)',
f'{member.name}! Добро пожаловать)']
)
)
Он отправляет сообщение о заходе на сервер. Мне бы хотелось, чтобы он отправлял в личные сообщения тоже самое. Т. е. что-то по типу member.отправить('Спс за джоин на сервер!').
Ответы (3 шт):
Все очень просто. Просто возьмите вашего участника и введите member.send('Ку! Спс за джоин на сервер!').
Как говорит документация, это можно сделать через client.fetch_user(). Он возвращает объект discord.User, а потом этому пользователю можно отправлять сообщения. Как пример:
@client.event
async def on_member_join(member):
await client.fetch_user(user_id=member.id).send('Спс за джоин на сервер!')
Вот код с подробным объяснением.
Код
@client.event ## Создаем инвент)
async def on_member_join(member): ## Далее в через member в скобоччках берем нашего пользователя
await member.send(random.choice([ f'Привет, {member.name}, добро пожаловать!', f'Дарова {member.name}, обсутраивайся на сервере)', f'{member.name}! Добро пожаловать)']))
## И последняя строчка. Бот выбирает рандомное сообщение нашему пользователю.
Итоги
И так, теперь мы сделали так, что при заходе мы берем пользователя, а дальше уже отправляем ему в личные сообщения случайное сообщение. Надеюсь, я вам помог! Удачного вечера)
