@kutu33ov

Не работает on_member_join. Как исправить?

Ошибок нет, просто не работает on_member_join
Как исправить это?
Код:
import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio
import time
import random
from discord import Game

intents = discord.Intents().all()
client = discord.Client(intents=intents)


class Welcome(commands.Cog):
	def __init__(self, client):
		self.client = client


	@commands.Cog.listener()
	async def on_member_join(self, member):
		welcome = 'Чтобы попасть на сервер тебе нужно пройти верификацию. Ты готов?\n`по возможности ответь "да, хорошо"`'
		channel_age = self.client.get_channel(847966940844261448)
		embed=discord.Embed(title=f"{member.name} добро пожаловать на сервер!", 
							description=f"{member.guild.name} приветствует тебя!") # F-Strings!
		embed.set_thumbnail(url=member.avatar_url) # Set the embed's thumbnail to the member's avatar image!

		await channel_age.send(embed=embed)
		await channel_age.send(welcome)
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 1
Allan-BlackWell
@Allan-BlackWell
Ничтожество :D
Если вы не знали - коги создаются отдельными файлами. И в предоставленном вами коде я не вижу client.run(), внутри которого указывается токен.

Вот пример как можно изменить ваш код, при этом он должен работать (Если не работает - упомяните в комментарии, я проверю ошибки и исправлю)

Основной файл:
main.py
import discord

from discord.ext import commands


client = commands.Bot(
    command_prefix = "Тут любой префикс",
    intents        = discord.Intents().all()
)

client.load_extension("Welcome")

client.run("Тут должен быть токен")


Файл кога (На заметку: Данный код рассчитан, что они будут в одной папке)
Welcome.py
import discord

from discord.ext import commands


class Welcome(commands.Cog):
    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_member_join(self, member):
        welcome     = 'Чтобы попасть на сервер тебе нужно пройти верификацию. Ты готов?\n`по возможности ответь "да, хорошо"`'
        channel_age = self.client.get_channel(847966940844261448)
        embed       = discord.Embed(
            title       = f"{member.name} добро пожаловать на сервер!", 
            description = f"{member.guild.name} приветствует тебя!"
        ).set_thumbnail(url = member.avatar_url)

        await channel_age.send(embed = embed)
        await channel_age.send(welcome)

def setup(client):
    client.add_cog(Welcome(client))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы