Не получается получить значок {/}, что бот поддерживает команды в дискорде

Вот мой код, часть текста я закрыла знаком (_____) Писала код впервые и все еще не понимаю почему при вводе, моей команды нет во всплывающем окне. Буду благодарна любой помощи.

from webserver import keep_alive
import os
import discord
import asyncio
import aiohttp
from discord.ext import commands
from discord.ui import View, Button
import interactions

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='/', intents=intents, case_insensitive=True)

@bot.command()
async def treesync(ctx: commands.Context):
    synced = await bot.tree.sync()
    await ctx.send(f"Synced {len(synced)} commands")

@bot.command(name="wew")
async def wew(ctx: commands.Context):
    # Проверьте, была ли команда вызвана пользователем и начинается ли она с '/wew'
    if ctx.author != bot.user and ctx.message.content.startswith('/wew'):
        # Получите вводимые пользователем данные
        user_input = ctx.message.content[len('/wew'):].strip()
        # Разделяем ввод пользователя на строки с помощью запятой
        lines = user_input.split(',')
        # Проверяем, достаточно ли данных введено пользователем
        if len(lines) == 6:
          block_title = "№ " + lines[0].strip()
          embed = discord.Embed(title=block_title, color=0x000000)
          # Проверяем, является ли lines[1] числом
          if lines[1].isnumeric():
            # Если это число, используем его напрямую
            mention = lines[1]
          else:
            # Иначе обрабатываем как упоминание пользователя, Извлекаем id пользователя из строки
            user_id = lines[1].strip().strip('<@!>').strip('<@').strip('>')

            # Получаем объект пользователя по ID
            mentioned_user = await bot.fetch_user(user_id)

            # Проверяем, найден ли пользователь
            if mentioned_user:
                # Используем упоминание пользователя через @
                mention = mentioned_user.mention
            else:
                # Если пользователь не найден, используем просто ID
                mention = f"<@{user_id}>"

          # Объединяем текст и значение в одну строку
          field_value = f"**_____ {mention}**"

          # Добавляем поле в embed
          embed.add_field(name="\u00A0", value=field_value, inline=False)
          embed.add_field(name="_____ " + lines[2], value="", inline=False)
          embed.add_field(name="_____ " + lines[3], value="", inline=False)
          embed.add_field(name="_____ " + lines[4], value="", inline=False)
          embed.add_field(name="_____ " + lines[5], value="", inline=False)
          embed.add_field(name="\u00A0", value="**Отправлено пользователем:** " + ctx.author.mention)
          # Отправляем сообщение от бота с встроенным блоком
          await ctx.send(embed=embed)

          # Удаляем сообщение пользователя
          await ctx.message.delete()
        else:
          embed = discord.Embed(title="Ошибка", description=f"_____, {ctx.author.mention}, _____*", color=discord.Color.red())
          # Отправляем сообщение с delete_after
          await ctx.message.reply(embed=embed, delete_after=5)  # Закроется через 15 секунд
          # Удаляем сообщение пользователя
          await ctx.message.delete()

pass 

Ответы (1 шт):

Автор решения: Çℏėτᶄắɤẵ Çℏėτɤᶉᶄắ

Потому что чтобы получить данный значок, нужно использовать слеш-команды, а не простые @bot.command(). Для этого:

  1. Так как discord.py устарела, будем использовать py-cord. Для этого в консоль вводим pip install py-cord. Не бойтесь, код переписывать не надо, так как структура у этих библиотек практически одинакова.
  2. Замените это:
@bot.command(name="wew")
async def wew(ctx: commands.Context):
    pass

На более новую версию - слеш-команду:

@bot.slash_command(name="wew", description='Описание команды')
async def wew(ctx: commands.Context):
    pass

Собственно всё, подробнее о слеш-командах читайте в документации

→ Ссылка