Проблема с командами моего бота для 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, время: 11:37. |