簡體   English   中英

Discord.js 的代碼響應拋出錯誤

[英]Code for Discord.js responding with a throw error

我創建了一個簡單的日志記錄機器人,它將服務器記錄到特定的日志記錄服務器,很快我將使它成為一個簡單易用的機器人,供所有人使用,但我遇到了一個問題。

編碼:

const Discord = require('discord.js');
const client = new Discord.Client();
const KeepAlive = require('./server');

client.on('ready', async ()=> {
    console.log('Connected as '+client.user.tag)
});

client.on('message', function (msg) {
    const Logged = new Discord.MessageEmbed()
        .setTitle(msg.author.tag)
        .addField('userID -', msg.author.id)
        .addField('Channel -', msg.channel)
        .addField('Message -', msg.content)
        .setColor('0x00AAFF')
        .setTimestamp();

    if (msg.author.tag === 'CLIENT ID GOES HERE') {
        console.log('')
    } else if (msg.author.username) {
        const channel = client.channels.cache.find(channel => channel.id === 'CHANNEL ID GOES HERE')
        channel.send(Logged)
    }
});

client.on('messageDelete', msg => {
    const DLogged = new Discord.MessageEmbed()
        .setTitle(msg.author)
        .addField('Channel -', msg.channel)
        .addField('Message -', msg.content)
        .setColor('#ff221a')
        .setTimestamp();

    if (msg.author.id === 'CLIENT ID GOES HERE') {
        console.log('')
    } else if (msg.author.username) {
        const channel = client.channels.cache.find(channel => channel.id === 'CHANNEL ID GOES HERE')
        channel.send(DLogged)
    }
});

KeepAlive()
client.login(process.env.token);

錯誤:

sageEmbed.js:432
    if (!value) throw new RangeError('EMBED_FIELD_VALUE');
                ^

RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values may not be empty.

但對我來說,錯誤並不像我想象的那么簡單,它說明了嵌入的一些內容,所以我試圖簡化它,但它從來沒有像消息的簡單描述那樣起作用。 但這對我從來沒有用過。 我別無選擇,只能在 stackoverflow 上發帖,希望社區可以幫助我,不勝感激!

這似乎是由沒有文本內容的消息(嵌入/圖像上傳等)引起的

當發送沒有文本內容的消息時, msg.content將設置為""

結果,該字段的值是一個空字符串並引發錯誤。

要解決此問題,請添加內容檢查:

// for example
client.on('message', function (msg) {
    const Logged = new Discord.MessageEmbed()
        .setTitle(msg.author.tag)
        .addField('userID -', msg.author.id)
        .addField('Channel -', msg.channel)
        // check for empty content
        .addField('Message -', msg.content === "" ? "no content" : msg.content)
        .setColor('0x00AAFF')
        .setTimestamp();

    if (msg.author.tag === 'CLIENT ID GOES HERE') {
        console.log('')
    } else if (msg.author.username) {
        const channel = client.channels.cache.find(channel => channel.id === 'CHANNEL ID GOES HERE')
        channel.send(Logged)
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM