使用 discord.js 检测图像并响应
Using discord.js to detect image and respond
我正在尝试为我朋友的 Discord 服务器制作恶作剧 Discord 机器人,
但机器人不会回应任何事情;甚至 elseif 函数也没有通过。
如果有人知道为什么我的代码不起作用,请指出。
注意:如果您需要参考,客户端变量是 Discord.Client。
client.on("message", message => {
if (message.channel.id != 425328056777834506) return;
if (Math.floor(Math.random() * Math.floor(4))== 3 && message.embeds.length > 0) {
message.channel.send("https://cdn.discordapp.com/attachments/330441704073330688/453693702687162369/yeet.png");
} else if (message.embeds.length < 0) {
message.channel.send("send me photos of your win >.>");
}
})
邮件有一个 attachments 属性,您可以使用它来获取邮件附件的集合(如果有的话)
您可以先执行 if (message.attachments.size > 0)
检查是否有任何附加对象。
之后,您可以遍历集合并检查附加文件 URL 是否以 png
或 jpeg
.
结尾
if (message.attachments.size > 0) {
if (message.attachments.every(attachIsImage)){
//something
}
}
...
function attachIsImage(msgAttach) {
var url = msgAttach.url;
//True if this url is a png image.
return url.indexOf("png", url.length - "png".length /*or 3*/) !== -1;
}
编辑
因为您的机器人没有任何响应。确保您在 message.channel.id != 425328056777834506
语句中具有相同 ID 的频道中测试机器人。
(或者您可以先注释掉 if 语句,然后在您的机器人完全正常运行时添加它。)
此外,当您的机器人也发送消息时,client.on("message", message => {...
也会被调用。您可以 if (message.author.id == <YourBotID>) {return;}
让机器人忽略它自己的消息。
或者,如果您希望它忽略其他机器人发送的消息,您可以执行 if (message.author.bot) {return;}
。
我正在尝试为我朋友的 Discord 服务器制作恶作剧 Discord 机器人, 但机器人不会回应任何事情;甚至 elseif 函数也没有通过。 如果有人知道为什么我的代码不起作用,请指出。
注意:如果您需要参考,客户端变量是 Discord.Client。
client.on("message", message => {
if (message.channel.id != 425328056777834506) return;
if (Math.floor(Math.random() * Math.floor(4))== 3 && message.embeds.length > 0) {
message.channel.send("https://cdn.discordapp.com/attachments/330441704073330688/453693702687162369/yeet.png");
} else if (message.embeds.length < 0) {
message.channel.send("send me photos of your win >.>");
}
})
邮件有一个 attachments 属性,您可以使用它来获取邮件附件的集合(如果有的话)
您可以先执行 if (message.attachments.size > 0)
检查是否有任何附加对象。
之后,您可以遍历集合并检查附加文件 URL 是否以 png
或 jpeg
.
if (message.attachments.size > 0) {
if (message.attachments.every(attachIsImage)){
//something
}
}
...
function attachIsImage(msgAttach) {
var url = msgAttach.url;
//True if this url is a png image.
return url.indexOf("png", url.length - "png".length /*or 3*/) !== -1;
}
编辑
因为您的机器人没有任何响应。确保您在 message.channel.id != 425328056777834506
语句中具有相同 ID 的频道中测试机器人。
(或者您可以先注释掉 if 语句,然后在您的机器人完全正常运行时添加它。)
此外,当您的机器人也发送消息时,client.on("message", message => {...
也会被调用。您可以 if (message.author.id == <YourBotID>) {return;}
让机器人忽略它自己的消息。
或者,如果您希望它忽略其他机器人发送的消息,您可以执行 if (message.author.bot) {return;}
。