#python #python-3.x #discord #bots #discord.py
#python #python-3.x #Discord #боты #discord.py
Вопрос:
заранее: я уже перепробовал множество потенциальных исправлений, доступных при переполнении стека. К сожалению, ни один из них не работал.
Вот код:
import discord
import asyncio
import datetime
from discord.ext import commands
bot = commands.Bot(command_prefix='!', case_insensitive=True)
@bot.event
async def on_ready():
print('bot is online')
return await bot.change_presence(activity=discord.Activity(type=2, name='bla'))
@bot.event
async def on_member_join(member):
embed = discord.Embed(colour=0x95efcc, description=f"Welcome! You are the {len(list(member.guild.members))} Member!"),
embed.set_thumbnail(url=f"{member.avatar_url}")
embed.set_author(name=f"{member.name}", url=f"{member.avatar_url}", icon_url=f"{member.avatar_url}")
embed.set_footer(text=f"{member.guild}", icon_url=f"{member.guild.icon_url}")
embed.timestemp = datetime.datetime.utcnow()
channel = bot.get_channel(id=012391238123)
await channel.send(embed=embed)
bot.run('Token')
Бот входит в систему, но не выполняет on_member_join . Кто-нибудь знает, что может быть не так? on_message работает нормально.
intents = discord.Intents.all()
client = discord.Client(intents=intents)
не помогло, и в discord developer это также проверяется (намерение участников сервера).
Бот также имеет права администратора
Приветствую Эдуарда
Короче говоря, решение:
imports
intents = discord.Intents(messages=True, guilds=True, members=True)
bot = commands.Bot(command_prefix='!', intents=intents, case_insensitive=True)
@bot.event
async def on_member_join(member):
embed = discord.Embed(colour=0x95efcc, description=f"Welcome to my discord server! You are the {len(list(member.guild.members))} member!")
channel = bot.get_channel(id=12931203123)
await channel.send(embed=embed)
bot.run('token')
Комментарии:
1. Вы используете декоратор
@bot.command()
, но вы определяетеclient = discord.Client
, что, вероятно, захотите изменить это наbot = commands.Bot(command_prefix='your prefix', intents=intents)
2. Оу, да. На самом деле у меня это уже так: bot = commands . Бот(command_prefix=’!’, case_insensitive=True) Я просто пропустил это в своем коде выше — извините!
3. но вы добавили туда намерения?
4.
guild_subscriptions
Включено?5. Ребята! Спасибо вам обоим — это сработало! :)))) Я изменю приведенный выше код!
Ответ №1:
Ах, так вот оно что. Поскольку вы используете commands.Bot
, bot.get_channel
это больше не функция (поскольку ее больше discord.Client
нет). Попробуйте использовать member.guild.get_channel
вместо этого.