Для исправления проблемы с неработающим событием on_member_join вам следует проверить несколько вещей:
1. Убедитесь, что у вашего бота есть необходимые разрешения на просмотр участников сервера. Если боту необходимо видеть новых участников, убедитесь, что они включены в настройках разрешений вашего Discord-сервера.
2. Проверьте, правильно ли указано название события в коде. Убедитесь, что ваше событие имеет правильное название "on_member_join".
3. Убедитесь, что ваше событие "on_member_join" находится внутри класса вашего бота и является аннотацией. Пример кода:
```python
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.event
async def on_member_join(member):
channel = discord.utils.get(member.guild.channels, name="название-канала") # замените "название-канала" на имя вашего канала приветствия
await channel.send(f"Добро пожаловать, {member.mention}!")
bot.run('ваш-токен')
```
4. Убедитесь, что ваш бот находится на сервере и имеет права доступа к каналу, в котором будет отправлено сообщение приветствия.
5. Если все остальное не помогло, проверьте, есть ли какие-либо ошибки в консоли, которые могут указывать на проблему.