如果消息中包含机器人的提及,我试图使我的机器人向消息作者发送DM,但是每次发送消息时,消息作者都会获得DM,而不是仅获得DM。是否包含机器人的提示。
这是我的代码。
if (msg.content.includes === '<@!751281320122122311>' || '<@751281320122122311>') {
msg.author.send({
embed: {
color: 3447003,
title: "Hey",
description: "Just because I'm a bot, doesn't mean I don't get annoyed when you ping me.",
}
});
}
有人可以帮忙吗?
答案 0 :(得分:3)
如果您只想检查邮件中是否包含该字符串,我认为这应该起作用。
if (
msg.content.includes("<@!751281320122122311>") ||
msg.content.includes("<@751281320122122311>")
) {
msg.author.send({
embed: {
color: 3447003,
title: "Hey",
description:
"Just because I'm a bot, doesn't mean I don't get annoyed when you ping me.",
},
});
}
有关Array.prototype.includes()
函数的更多详细信息,请参见this。
答案 1 :(得分:1)
按照书面规定,您的if
条件将始终为真。
if (msg.content.includes === '<@!751281320122122311>' || '<@751281320122122311>') {
说:“如果msg.content.includes
等于'<@!751281320122122311>'
,或者字符串值'<@751281320122122311>'
是真实的,则执行此操作。”字符串文字永远是真实的。
您可能想要更多类似这样的东西:
if (msg.content.includes === '<@!751281320122122311>' || msg.content.includes === '<@751281320122122311>') {
但是即使那样也可能是错误的。 msg.content
可能是字符串,数组或具有您要调用的includes
函数的其他内容。如果是这样,您需要这样做:
if (msg.content.includes('<@!751281320122122311>') || msg.content.includes('<@751281320122122311>')) {
答案 2 :(得分:0)
这应该有效
if (message.mentions.has(client.user) && !message.mentions.has(message.guild.id))
{
message.author.send({
embed: {
color: 3447003,
title: "Hey",
description: "Just because I'm a bot, doesn't mean I don't get annoyed when you ping me.",
}
});
}