Discord бот не показывает команды
Код:
import asyncio
import discord
from discord import app_commands
from discord.ext import commands
import re
TOKEN = 'Тут токен'
bot = commands.Bot(command_prefix="/", intents=discord.Intents.all(), help_command=None)
def __init__(self, bot):
self.bot = bot
@bot.event
async def on_ready():
print(f'{bot.user.name} подключен к Discord!')
@commands.hybrid_command(name="кик-за-ник", description="Кикает людей с неправильными никами")
@commands.guild_only()
async def kick(ctx):
safe_roles = [1177625102343491665, 1177625102330892337] # ID безопасных ролей
for member in ctx.guild.members:
# Проверяем, что у пользователя нет безопасной роли
if not any(role.id in safe_roles for role in member.roles):
# Теперь проверяем ник пользователя
if not re.match(r'\[.*\]\[.*\].*', member.display_name):
await member.kick(reason='Некорректный никнейм')
print(f'{member.display_name} кикнут с сервера: Некорректный никнейм.')
await ctx.send('Процесс кикания пользователей с неправильными никами завершен.')
@commands.hybrid_command(name="помощь", description="Показывает справку")
@commands.guild_only()
async def help(ctx):
embed = discord.Embed(color=discord.Color.blue())
embed.set_author(name='Помощь')
embed.add_field(name='Не знаете что делать?', value='Вам в навигатор: <#1177625103035535382>.', inline=False)
embed.add_field(name='Нужна помощь?', value='Упомяните роль <@1177625102314123346> в чате.', inline=False)
embed.add_field(name='Вы новичок?', value='Для начала установите ник по форме: `[SNN SF][Ваш Ранг]Ваш_Ник`', inline=False)
embed.add_field(name='Не знаете как поменять ник на сервере?', value='Нажмите на кнопку ниже!', inline=False)
embed.add_field(name='Владельцы', value='Set_Black, Frady_Freeman, Olya_King', inline=False)
embed.set_footer(text='Создано @ikdan')
await ctx.send(embed=embed)
@commands.hybrid_command(name="верифицировать", description="Верификация пользователя")
@commands.guild_only()
@app_commands.choices(ранг=[
app_commands.Choice(name=f"1", value=1),
app_commands.Choice(name=f"2", value=2),
app_commands.Choice(name=f"3", value=3),
app_commands.Choice(name=f"4", value=4),
app_commands.Choice(name=f"5", value=5),
app_commands.Choice(name=f"6", value=6),
app_commands.Choice(name=f"7", value=7),
app_commands.Choice(name=f"8", value=8),
app_commands.Choice(name=f"9", value=9)
])
@app_commands.describe(
ник='Ник пользователя в формате Name_Surname'
)
async def verify(ctx, ранг: app_commands.Choice[int], ник: str):
verification_channel = bot.get_channel(1177625103681466394)
user_mention = ctx.author.mention
embed = discord.Embed(color=discord.Color.blue())
embed.add_field(name='Верификация пользователя', value=f'{user_mention} хочет верифицироваться, запрашиваемый ник: [CNN SF][{ранг}]{ник}!', inline=False)
verification_message = await verification_channel.send(embed=embed)
await verification_message.add_reaction('✅')
await verification_message.add_reaction('❌')
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) in ['✅', '❌']
try:
reaction, user = await bot.wait_for('reaction_add', timeout=3600.0, check=check)
except asyncio.TimeoutError:
await ctx.send('Время вышло. Верификация не завершена.')
else:
if str(reaction.emoji) == '✅':
await ctx.author.edit(nick=f'[CNN SF][{ранг}] {ник}')
role = discord.utils.get(ctx.guild.roles, id=1177625102314123348)
await ctx.author.add_roles(role)
await verification_channel.send(f'Сотрудник {user.mention} верифицировал {ctx.author.mention} с ником [CNN SF][{ранг}]{ник}')
elif str(reaction.emoji) == '❌':
await verification_channel.send(f'Сотрудник {user.mention} отклонил верификацию {ctx.author.mention} с ником [CNN SF][{ранг}]{ник}')
@commands.hybrid_command(name="навигатор", description="Показывает навигатор по каналам")
@commands.guild_only()
async def navigator(ctx):
embed = discord.Embed(color=discord.Color.blue())
embed.add_field(name='<#1136898381046882354>', value='Упрощает сотрудникам нашей организации перемещения по разделам текстового чата.', inline=False)
embed.add_field(name='<#1136898482884591647>', value='Канал для стажеров, там можно найти тест на ПРО.', inline=False)
embed.add_field(name='<#1136898669002641469>', value='Канал с информацией и суммами о премиях.', inline=False)
embed.add_field(name='<#1136898737675960441>', value='Канал для отчетов на получение премии.', inline=False)
embed.add_field(name='<#1159091362977808434>', value='Канал для конкурсов сотрудникам.', inline=False)
embed.add_field(name='<#1136899268146372648>', value='Тэги для объявлений в СМИ.', inline=False)
embed.add_field(name='<#1136899337436266516>', value='Информация для сотрудников редакции.', inline=False)
embed.add_field(name='<#1136899456034410559>', value='Информация для сотрудников ОПЭ.', inline=False)
await ctx.send(embed=embed)
bot.run(TOKEN, reconnect=True)
Если я напишу /помощь, то в консоли появится ошибка: discord.ext.commands.errors.CommandNotFound: Command "помощь" is not found