Дискорд бот на NEXTCORD, не работают команды и локализация
не работают команды и локализация, я записываю всю информацию в Postgresql включая английский язый по стандарту, потом я сделал кнопки смены языка, но команды не работают, в библиотеке i18n для дискорд мне пришлось поменять одну строчку которая для discord.py? a nextcord почти идентичная ей
from nextcord import Colour, Embed, Intents, utils
from nextcord.ext import commands
from datetime import datetime
from logging import DEBUG, basicConfig
from config import FATHER_NAME, FATHER_NAME_COMMAND, NAME_NOZOMI, SERVER_STARTER_CHANNEL, STARTER_ROLE, TOKEN, Hello, Hello_Admine
from SQL import Database_SQL
from PY18N.extension import _
from Language import i18n
from buttons import Confirm
bot = commands.Bot(command_prefix="/", intents=Intents().all(), description=_("Hey"), help_command=None)
# basicConfig(level=DEBUG)
def get_locale(ctx: commands.Context):
return Database_SQL.select('language', ctx.author.id)
i18n.init_bot(bot, get_locale)
@bot.command(name='help')
async def help(message, arg):
if arg == None:
await message.channel.send(_('command_list'))
if arg == 'marriage':
await message.channel.send(_('command_list_merriage'))
if arg == 'game':
await message.channel.send(_('command_list_game'))
@bot.command(name='language')
async def language(member):
user_id = member.mention
view = Confirm()
view = Confirm()
await member.reply(_("language"), view=view)
if view.value == True:
Database_SQL.update_lang('English', user_id)
elif view.value == False:
Database_SQL.update_lang('Russian', user_id)
@bot.event
async def on_message(message):
if message.author == bot.user:
return
if message.content in Hello:
await message.channel.send(_('HI') + f'{message.author.mention}')
if message.content in Hello_Admine:
await message.channel.send(f'{message.author.mention}'+_('Hello_Admine').format(FATHER_NAME=FATHER_NAME))
if message.content in FATHER_NAME_COMMAND:
await message.channel.send(f'{message.author.mention}'+_('FATHER_NAME_COMMAND') + f'{FATHER_NAME}')
@bot.event
async def on_member_join(member):
user_num= len(list(member.guild.members))
avatar = member.display_avatar
name_channel = member.guild
user_id = member.mention
datatime= datetime.now()
member_join = _('member_join').format(user_id=user_id, NAME_NOZOMI=NAME_NOZOMI, FATHER_NAME=FATHER_NAME, user_num=user_num, datatime=datatime)
em = Embed(color= Colour.random(), description=member_join)
em.set_footer(text=name_channel, icon_url=member.guild.icon)
em.set_image(url=avatar)
em.timestamp = datetime.utcnow()
channel = bot.get_channel(SERVER_STARTER_CHANNEL)
welcome_message = await channel.send(embed=em)
await member.add_roles(utils.get(member.guild.roles, id=STARTER_ROLE))
Database_SQL.insert(str(name_channel), str(user_id), str(member), str(avatar), int(user_num), datatime, int(welcome_message.id))
@bot.event
async def on_member_remove(member):
user_id = member.mention
WM=Database_SQL.select('welcome_message', user_id)
try:
await bot.http.delete_message(SERVER_STARTER_CHANNEL, int(WM))
finally:
Database_SQL.Del_user(user_id)
@bot.event
async def on_ready():
Database_SQL.create_table()
print('START')
bot.run(TOKEN)