Проблема с командами моего бота для Discord
Всем привет! Я только вчера познакомился в javascript, т.к. мне понадобилось создать собственного бота для Discord. Мои познания в этом языке программирования крайне скудные (и вообще я гуманитарий), поэтому я смог создать лишь команды, после которых бот отправляет определённые сообщения или добавляет в чат приглашение на сервер. Я пытался создать команды, после которых бот отправляет изображение, гиф, эмодзи или различные вариации текста, а не одинаковый текст (например, игра 8ball, в которой бот будет давать советы), а также команду, после которой бот повторяет сообщение пользователя (без команды).
Возникли следующие проблемы: после добавления команд с отправкой изображения - бот просто не запускается, после добавления команд с эмодзи - бот отправляет их текстом (:thinking: - пример, но если самому ввести это в чат, отправится эмодзи), после других команд бот также не запускается) Такой код я оставил в итоге:
const Discord = require('discord.js');
const client = new Discord.Client();
var prefix = 'sh!'
client.on("message",(message) =>
{
if(message.content == "sh!inv")
{
message.channel.createInvite({temporary : true})
.then(inv =>message.channel.sendMessage (`https://discord.gg/${inv.code}`));
}
});
client.on('message', message => {
if(message.author === client.user) return;
if(message.content.startsWith(prefix + 'текст')) {
message.channel.sendMessage('отправляемый текст');
}
});
client.login('тут токен бота');
(Убрал похожие команды, т.к. разновидностей команд лишь две) Сами вопросы: Как добавить вариативность ответа бота? Как заставить бота отправлять изображения? Как заставить бота повторить сообщение пользователя без повторения команды? Как заставить бота отправлять эмодзи как эмодзи, а не как текст? + буду очень рад советам, многое читал на англоязычных форумах, но почти везде ботов делают на питоне, а я к такому пока не готов) |
Ответы на вопросы
1. Вариативность ответов бота:
let answers = ["да", "нет", "возможно", "конечно"]; //массив ответов let rand = Math.floor(Math.random()*answers.length); //получаем случайное число от 0 до `кол-ва ответов` message.channel.send(answers[rand]); 2.Отправить изображение: а) если это локальный файл:
message.channel.send("сообщение(можно отпустить)", {
files:[{
attachment: "nameImage.png",
name: "newname.png"
}]
});
б) если этот файл находится в интернете:
message.channel.send("сообщение(можно отпустить)", {
files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']
})
3. Повторно отправлять сообщение каждые 1 секунду
if(message.content == "sh!repeat"){
setInterval(function() {
message.channel.send("go-go");
}, 1000) // время в миллисекундах // 1000 == 1секунда
}
4. Насчет эмодзи, попробуй использовать двойные кавычки при отправке эмодзи, у меня работает
message.channel.send(":thinking:");
Рекомендую в помощь http://discord.js.org |
| Часовой пояс GMT +3, время: 21:45. |