#javascript #node.js #npm #discord #discord.js
#javascript #node.js #npm #Discord #discord.js
Вопрос:
Я создаю регистратор сообщений discord, но я хочу вывести message.content message.author message.id message.channel.id в один текстовый файл каждый раз, когда отправляется сообщение в следующем формате: Идентификатор сообщения: (Идентификатор здесь) Автор сообщения: (Идентификатор автора здесь) Идентификатор канала: (Идентификатор канала здесь) Сообщение: (сообщение здесь) я пробовал использовать следующий код, но он напечатал undefined в текстовом документе
const Discord = require("discord.js");
const bot = new Discord.Client();
const TOKEN = "NOPE"
var color = require('chalk');
var fs = require('fs');
bot.on("ready", function(message) {
console.log(color.green("Online"))
})
bot.on("message", function(message){
console.log("Channel:" color.blue(message.channel) " " "Author:" color.blue(message.author) " " "Message:" color.blue(message.content))
if (message.content.includes("uranium") || message.content == "Uranium" || message.content == "uranium" || message.content.includes("uranium")) {
console.log(color.black.yellow("Message Flagged As Suspicous"))
console.log(color.black.yellow("Contains: Uranium"))
console.log(color.black.bgYellow("Message:" message.content))
console.log(color.black.bgYellow("Message Id:" message.id))
console.log(color.black.bgYellow("Author Id:" message.author.id))
console.log(color.black.bgYellow("Channel Id:" message.channel.id))
console.log(color.yellow("Severity:" "1"))
var alertsev1 = `Message Id: ${message.id} | Author Id: ${message.author.id} | Message Channel Id: ${message.channel.id} | Message: ${message.content}`
fs.writeFile('alerts.txt', `${alertsev2}`)
}
if (message.content.includes("raid") || message.content.includes("Raid")) {
console.log(color.black.red("Message Flagged As Suspicous"))
console.log(color.black.red("Contains: Raid"))
console.log(color.black.bgRed("Message:" message.content))
console.log(color.black.bgRed("Message Id:" message.id))
console.log(color.black.bgRed("Author Id:" message.author.id))
console.log(color.black.bgRed("Channel Id:" message.channel.id))
console.log(color.black.red("Severity:" "2"))
var alertsev2 = `Message Id: ${message.id} | Author Id: ${message.author.id} | Message Channel Id: ${message.channel.id} | Message: ${message.content}`
fs.writeFile('alerts.txt', `${alertsev2}`)
}
if (message.content.includes("raid") amp;amp; message.content.includes("uranium") || message.content.includes("raid") amp;amp; message.content.includes("Uranium") || message.content.includes("raid") amp;amp; message.content.includes("uranium") || message.content.includes("Raid") amp;amp; message.content.includes("uranium") || message.content.includes("Raid")) {
console.log(color.black.red("Message Flagged As Possible Raid Initiation"))
console.log(color.black.red("Contains: Raid, Uranium"))
console.log(color.black.bgRed("Message:" message.content))
console.log(color.black.bgRed("Message Id:" message.id))
console.log(color.black.bgRed("Author Id:" message.author.id))
console.log(color.black.bgRed("Channel Id:" message.channel.id))
console.log(color.black.red("Severity:" "3"))
var alertsev3 = `Message Id: ${message.id} | Author Id: ${message.author.id} | Message Channel Id: ${message.channel.id} | Message: ${message.content}`
fs.writeFile('alerts.txt', `${alertsev3}`)
}
})
bot.login(TOKEN)
Комментарии:
1. Все ли определено или, например, только идентификатор канала?
2. не связано, но в ваших операторах if используйте
if(message.content.toLowerCase().includes(<text>))
, чтобы избежать необходимости проверять наличие слов с заглавной буквы.
Ответ №1:
Если вы получаете это undefined
в файле во время выполнения uranium
условия, это потому, что вы пытаетесь использовать alertsev2
то, что не было объявлено, так что это исправит это:
fs.writeFile('alerts.txt', `${alertsev1}`)
Комментарии:
1. Чтобы увидеть подобные проблемы самостоятельно, вы могли бы также получить линтер, например discord.js : Как настроить Eslint . Это поможет вашему форматированию и покажет вам проблемы, подобные этим.