Значок "Поддерживает команды" в дискорд боте, используя discord.py
Сегодня увидел у ботов значки "Поддерживает команды", и захотел себе такой же. Я добавляю команды, но по-прежнему значок не выдается. Использую discord.py
import discord
from discord import app_commands
from discord.ext import commands
class PersistentViewBot(commands.Bot):
def __init__(self):
super().__init__(command_prefix='!', intents=discord.Intents.all())
async def setup_hook(self):
await bot.tree.sync(guild=discord.Object(id=guild_id))
guild_id = 123456
bot = PersistentViewBot()
# Обработчик события подключения к Discord
@bot.hybrid_command(name='embed', description="Выводит embed сообщение", with_app_command=True)
@app_commands.guilds(discord.Object(id=guild_id))
async def embed(ctx, description:str):
embed = discord.Embed(description=description,color=0x2f3136)
await ctx.channel.send(embed=embed)
bot.run()
Ответы (3 шт):
Это вроде как могут получить лишь верифицированные боты (те, которые есть на 100+ серверах).
Используйте
@bot.command()
async def command(ctx):
await ctx.message.delete()
await ctx.send('Я робот')
Несколько раз введите /command значок появится
Создай бота с таким кодом:
import discord
from discord.ext import commands
intents = discord.Intents.default() # Используй нужные интенты
bot = commands.Bot(command_prefix="/", intents=intents)
@bot.slash_command(description='Получаем значок для бота')
async def command(ctx):
await ctx.send('Я робот')
bot.run('YOUR_TOKEN')
После чего перейди на портал разработчиков, мои апликации и выбери нужного бота. Нажми на OAuth2 - general. В самом низу будет строка "Default Authorization Link", в ней выбери "In-app Authorization". В scopes выбери bot и applications.commands. В bot permissions отметь Administrator (см. скрин)
После этого пригласи бота на новый сервер через кнопку в его профиле и на новом сервере пару раз пропиши /command
Значок должен выдастся автоматически.

