При добавлении/изменении слеш команд, выводится ошибка:
/home/container/.local/lib/python3.12/site-packages/disnake/ext/commands/interaction_bot_base.py:826: SyncWarning: Failed to overwrite global commands due to 400 Bad Request (error code: 50240): You cannot remove this app's Entry Point command in a b ulk update operation. Please include the Entry Point command in your update request or delete it separately. warnings.warn(
И слеш команды не изменяются.
Код:
import disnake
from disnake.ext import commands
import json
import os
import config
bot = commands.Bot(command_prefix=commands.when_mentioned, intents=disnake.Intents.all(), reload=True)
bot.remove_command('help')
def load_data():
if os.path.exists('db.json'):
try:
with open('db.json', 'r') as file:
return json.load(file)
except (json.JSONDecodeError, FileNotFoundError):
print("Ошибка при загрузке базы данных!")
else:
print("db.json не найден!")
return {}
def save_data(data):
with open('db.json', 'w') as file:
json.dump(data, file)
data = load_data()
def get_language(user_id):
return data.get(user_id, {}).get("language", "ru")
@bot.event
async def on_ready():
print(f"Имя: {bot.user} ({bot.user.id})\nСерверов: {len(bot.guilds)}\nПригласить: https://discord.com/oauth2/authorize?client_id=1281875008372605010&permissions=277025401920&scope=bot%20applications.commands{bot.user.id}&permissions=277025401920&scope=bot%20applications.commands\nСоздан в: {bot.user.created_at:%d.%m.%Y, %H:%M}\nПинг: {bot.latency * 1000:.0f}ms")
await bot.change_presence(status=disnake.Status.online, activity=disnake.Activity(type=disnake.ActivityType.custom, name=config.textstatus, state=config.textstatus, emoji=None))
channel = bot.get_channel(1284407104957972541)
if channel:
embed = disnake.Embed(title="Бот запущен!", description="Бот успешно запущен и готов к работе.", color=config.main_color)
await channel.send(embed=embed)
@bot.event
async def on_guild_join(guild):
invite_link = await guild.text_channels.create_invite(max_age=0)
channel = bot.get_channel(1284407104957972541)
if channel:
embed = disnake.Embed(title='Новый сервер', description=f'''Название: `{guild.name}`
ID: `{guild.id}`
Инвайт: {invite_link}
Количество участников: `{guild.member_count}`
Владелец: `{guild.owner}`
ID владельца: `{guild.owner.id}`''', color=config.main_color)
await channel.send(embed=embed)
embed = disnake.Embed(color=config.main_color, title="<:icons_shine1:1204041366087278638> | Хай!")
embed.description = f"Спасибо, что добавил меня сюда!\nЧто-бы начать кликать, пропишите </clicker:1247577560863342592>\nПоменять язык можно по команде </language:1248173561491886152>"
embed1 = disnake.Embed(color=config.main_color, title="<:icons_shine1:1204041366087278638> | Hi!")
embed1.description = f"Thank you for adding me!\nTo start , type <1247577560863342592>\nYou can change the language using the </language:1248173561491886152> command"
await channel.send(embeds=[embed, embed1])
@bot.event
async def on_guild_remove(guild):
channel = bot.get_channel(1284407104957972541)
if channel:
lb = disnake.Embed(title=" | К сожалению, этому серверу бот не понравился", color=config.warning_color)
lb.description = f'''
**Название сервера:** {guild.name}
**Владелец:** {guild.owner}
**Количество участников:** {guild.member_count}
**ID:** {guild.id}
'''
if guild.icon:
lb.set_thumbnail(url=guild.icon.url)
await channel.send(embed=lb)
for filename in os.listdir("./cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
bot.run(config.tokenbot)