У вас есть многочисленные проблемы, ведущие к этому. Во-первых, ваше заявление if не правильно определено. Ваш код является функциональным эквивалентом:
if (msg.content.toLowerCase() === prefix + 'xgif' ) {
number = 12;
}
imageNumber = Math.floor (Math.random() * (number -1 + 1)) + 1;
msg.channel.send ( {files: ["./images/" + imageNumber + ".gif"]})
Таким образом, число не всегда устанавливается равным 12, а последние две строки выполняются с каждым отдельным сообщением , включая сообщения, которые исходить из самого бота. Вам необходимо: 1. правильно сформулировать ваше заявление if. 2. игнорировать все сообщения бота.
client.on('message', msg => {
if(msg.author.bot) return; // Ignore bots!
if (msg.content.toLowerCase() === prefix + 'xgif' ) {
number = 12;
imageNumber = Math.floor (Math.random() * (number -1 + 1)) + 1;
msg.channel.send ( {files: ["./images/" + imageNumber + ".gif"]})
} // End of if scope
}
В отличие от Python, для одного примера JavaScript и все другие синтаксические языки стиля C не используют пробелы для обозначения области видимости. Оператор if без скобок включает в себя только один следующий оператор.