【问题标题】:Trying to log messages in discord.js尝试在 discord.js 中记录消息
【发布时间】:2019-08-07 15:31:30
【问题描述】:

我正在制作一个不和谐的消息记录器,但我想在每次以以下格式发送消息时将 message.content message.author message.id message.channel.id 输出到一个文本文件中:Message ID:(Id here )消息作者:(此处为作者 ID)频道 ID:(此处为频道 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") && message.content.includes("uranium") || message.content.includes("raid") && message.content.includes("Uranium") || message.content.includes("raid") && message.content.includes("uranium") || message.content.includes("Raid") && 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)

【问题讨论】:

  • 是所有东西都未定义还是只是通道ID?
  • 不相关,但在 if 语句中使用 if(message.content.toLowerCase().includes(<text>)) 以避免检查大写单词。

标签: javascript node.js npm discord discord.js


【解决方案1】:

如果您在尝试uranium 条件时在文件中收到此undefined,那是因为您尝试使用尚未声明的alertsev2,所以这将解决它:

fs.writeFile('alerts.txt', `${alertsev1}`)

【讨论】:

  • 要自己查看此类问题,您不妨找一个 linter,例如 discord.js: How to setup Eslint。这将有助于您设置格式并向您展示此类问题。
猜你喜欢
  • 1970-01-01
  • 2022-09-28
  • 2021-05-26
  • 2021-11-29
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多