#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 в своем комментарии, если бот, которым вы хотите управлять, не ваш, вы, вероятно, не сможете этого сделать, так как рекомендуется игнорировать сообщения от других ботов, чтобы предотвратить злоупотребления и бесконечные циклы.