Задать вопрос
Bananchick
@Bananchick
Новичок в сфере JS

Не удаляется слэш команда бота в дискорде, что делать?

Не удаляется слэш команда бота в дискорде, что делать ? - Я удаляю слэш команду из кода бота, но при этом она остается в дискорде.

(Пробовал давать разные разрешения боту, не помогло)

Буду очень рад ответу.
  • Вопрос задан
  • 1107 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
dima9595
@dima9595
Junior PHP
Как мне помнится из оф. документации - слэш команды где-то кэшируются со стороны Discord, возможно, придётся подождать пока не применятся изменений.
Так же советую поискать эту инфу на оф. сайте доков. Может что-то изменилось уже.
Ответ написан
@getaxe
JS developer
Если я правильно понял проблему (при удалении команды из кода, она не пропадает в дискорде), то есть 2 решения этой проблемы.
1) Просто выгнать бота с сервера (если нет желания решать это с помощью кода). Вариат так себе, как не крути.
2) Не знаю, как у вас написан обработчик команд, но думаю, что в нем есть только триггеры на новую команду и на обновление существующей. Я использую создание и удаление команд при запуске бота или подключении его к серверу.
for (const interaction of commandsIT.cache) {
        const command = bot.commands.any.find(el=>el.names.includes(interaction.name));
        if(!command&&interaction.delete) interaction.delete();//Если команды нет и есть возможность - удалить слэш команду
    }
Ответ написан
Комментировать
@Unclear64x
Не очень знаю JS, но вот решение на python, исходя из которого можете удалить любую неудаляемую команду вашего бота (просто понимая то, насколько эта ошибка бесит, решил в любом случае это написать, даже не на языке темы):
import requests
from os import getenv

application = APPLICATION_ID # ID вашего бота (в discord developer portal можете посмотреть и скопировать)
guild = GUILD_ID # ID сервера на котором вы пытаетесь удалить команду

headers = {"Authorization": f"Bot {getenv('BOTTOKEN')}"}
#                      токен бота ^^^^^^^^^^^^^^^^^^^^

# MAIN INFO PAGE: https://discord.com/developers/docs/interactions/application-commands#updating-and-deleting-a-command

while True:
    cmd = input("[global|guild] ")
    if "global" in cmd:
        cmd = input("[get|delete] ")
        if "get" in cmd:
            r = requests.get(f"https://discord.com/api/v10//applications/{application}/commands", headers=headers)
            print(r)
            print(r.text, "\n")
        elif "delete" in cmd:
            r = requests.delete(f"https://discord.com/api/v10//applications/{application}/commands/{input('command_id ')}", headers=headers)
            print(r)
            print(r.text, "\n")
    elif "guild" in cmd:
        cmd = input("[get|delete] ")
        if "get" in cmd:
            r = requests.get(f"https://discord.com/api/v10//applications/{application}/guilds/{guild}/commands", headers=headers)
            print(r)
            print(r.text, "\n")
        elif "delete" in cmd:
            r = requests.delete(f"https://discord.com/api/v10//applications/{application}/guilds/{guild}/commands/{input('command_id ')}", headers=headers)
            print(r)
            print(r.text, "\n")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы