Discord.js бот отвечает командой косой черты

#javascript #node.js #events #discord #discord.js

Вопрос:

У меня есть рабочая команда косой черты, и это здорово. Я могу использовать команду с одним входным параметром, например /command string , и она выполнит команду. Однако я хочу настроить бота Discord, который использует эту команду в канале каждые 5 или около того минут. Кажется, я не могу заставить бота использовать команду, есть какие-нибудь идеи о том, как заставить ее работать?

Он просто отображает строку в канале, но бот не выполняет команду.

 bot.on('messageCreate', async (msg) => {
    if (msg.content === "!loop") {
        interval = setInterval (function () {
            msg.channel.send("/command string")
        }, 3 * 1000);
    }
})
 

Комментарии:

1. Все обычные боты игнорируют сообщения/команды от других ботов, поэтому вы не можете злоупотреблять своим собственным ботом

2. Проклятье… Я хочу злоупотреблять своим собственным ботом, лол. Хм, придется подумать о обходном пути

3. Я не думаю, что боты могут видеть или запускать команды косой черты, будь то ваши собственные или любые другие боты. Ваш код не работает, потому channel.send что может отправлять только текст, начинающийся с косой черты, не превращает его в вызов команды косой черты.

Ответ №1:

Боты могут только получать Взаимодействия с командами приложений, а не создавать их. Это означает, что ваш бот не сможет запускать команды слэша других ботов, нажимать их кнопки или использовать их выпадающие меню.

Однако, если у вас есть контроль над кодом другого бота, вы можете настроить его на прослушивание сообщений (а не взаимодействий) от вашего второго бота и соответствующим образом запустить код.

Но имейте в виду: как упоминал MegaMix в своем комментарии, если бот, которым вы хотите управлять, не ваш, вы, вероятно, не сможете этого сделать, так как рекомендуется игнорировать сообщения от других ботов, чтобы предотвратить злоупотребления и бесконечные циклы.