#python #discord.py
#питон #discord.py
Вопрос:
здравствуйте, я пытался отредактировать этот код, чтобы заставить его работать, но я застрял в точке, где я получал эту ошибку:
File "main.py", line 24, in on_member_join
await client.send_message(member, DMMessage)
AttributeError: 'Client' object has no attribute 'send_message'
я предполагаю, что это как-то связано с намерениями, но после долгих исследований и времени я не смог это исправить, может кто-нибудь объяснить мне, как я могу это исправить?
мой код для справки:
import discord
import os
intents = discord.Intents(members=True, messages = True, guilds=True,)
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print('logged in as')
print(client.user.name)
print(client.user.id)
print('-----')
DMMessage = "hello"
@client.event
async def on_member_join(member):
print("Recognized that " member.name " joined")
await client.send_message(member, DMMessage)
await client.send_message(discord.Object(id='77769000355535264'), 'Welcome!')
print("Sent message to " member.name)
print("Sent message about " member.name " to the server")
@client.event
async def on_member_remove(member):
print("Recognized that " member.name " left")
await client.send_message(discord.Object(id='77769000355535264'), '**' member.mention '** just left.')
print("Sent message to server")
client.run(os.getenv('TOKEN'))
Ответ №1:
Client.send_message()
это очень устаревший метод, который был удален в последних версиях discord.py . Используется Member.send()
для отправки сообщений DM:
@client.event
async def on_member_join(member):
await member.send('Welcome to the server!')
Также обратите внимание, что когда участник покидает сервер, а у бота нет общих гильдий с этим пользователем, ваш бот не сможет их DM и выдаст discord.Forbidden
исключение.