[英]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.