机器人不发送标签 |不和谐.js
Posted
技术标签:
【中文标题】机器人不发送标签 |不和谐.js【英文标题】:Bot Don't Send Tags | Discord.js 【发布时间】:2021-02-12 21:02:29 【问题描述】:嘿,我制作了一个侦听频道的机器人,当频道中发送了一条消息时,该机器人将消息替换为嵌入消息内容的消息,但是当有人试图将某人标记为机器人时,我遇到了一些问题打印这个
(node:16552) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
embed.image.url: Could not interpret "[]" as string.
at RequestHandler.execute
at processTicksAndRejections (internal/process/task_queues.js:97:5)
当我添加附件时,它只发送测试!最后,我想将作者图像设置为与发送消息的用户相同...
这是我的代码:
bot.on('message', message=>
if (message.author.bot) return;
if(message.channel.id == "771695635598278677")
message.delete()
const user = message.mentions.users.first() || message.author;
//let messageAttachment = message.attachments.size > 0 ? message.attachments.array()[0].url : null
const dark = new Discord.MessageEmbed()
.setColor('#000000')
.setDescription(`$message.content\n`)
.addField('\n')
.setAuthor("Twitter")
.setImage(message.attachments)
.setFooter('twitter', 'https://cdn.discordapp.com/attachments/564032243836780558/771614643159433226/Anonymous_emblem.svg.png')
if(isNaN(message.content))
message.channel.send(twitter)
);
如果有人可以帮助我,请告诉我...谢谢!
【问题讨论】:
我很困惑。您缺少代码的某些部分。 “twitter”被定义为什么?它不存在。此外,您将嵌入定义为“暗”。 对不起,它有效,我在这里更改了代码并将其命名为 twitter,它适用于我,我将其命名为 dark 【参考方案1】:Message.attachments
返回一个 Collection
附件,而 MessageEmbed.setImage()
需要一个字符串(网址)。我相信您正在寻找的是Collection.prototype.first()
,它将返回集合中的第一个MessageAttachment
。从那里,您可以访问url
属性。
const dark = new Discord.MessageEmbed()
.setColor('#000000')
.setDescription(`$message.content\n`)
.addField('\n')
.setAuthor('Twitter')
.setImage(message.attachments.first().url)
.setFooter(
'twitter',
'https://cdn.discordapp.com/attachments/564032243836780558/771614643159433226/Anonymous_emblem.svg.png'
);
【讨论】:
另外两个问题呢?它还打印错误 .setImage(message.attachments.first().url) ^ TypeError: Cannot read property 'url' of undefined 供以后参考:每个问题只有一个问题。关于您的错误,这意味着用户没有发送任何附件,因此只需使用||
运算符或可选链接来处理。对于 pfp 问题,setAuthor
的第二个参数可以是 message.author.displayAvatarURL()
。
我该如何处理 ||?我应该补充什么?您的代码也有错误 TypeError: Cannot read property 'url' of undefined, URL is not defined, 那不是因为我没有添加附件
你会回答吗?
"TypeError: Cannot read property 'url' of undefined" 并不意味着 url
未定义,这意味着 message.attachments.first()
未定义。发生这种情况的唯一方法是集合为空。您可以使用message.attachments.first()?.url
或(message.attachments.first() || ).url
来处理。如果找不到任何附件,两者都将返回 undefined,从而处理错误。以上是关于机器人不发送标签 |不和谐.js的主要内容,如果未能解决你的问题,请参考以下文章
如何使不和谐的 js 机器人在某个时间在不和谐的确切文本通道中发送随机消息(我制作一个列表并发送它)