简体   繁体   English

使用 discord.js 检测图像并响应

[英]Using discord.js to detect image and respond

I'm trying to make a prank Discord bot for my friend's Discord server, but the bot won't respond to anything;我正在尝试为我朋友的 Discord 服务器制作一个恶作剧 Discord 机器人,但该机器人不会响应任何内容; not even the elseif function passes.甚至 elseif 函数都没有通过。 If anyone know why my code isn't working can you please specify it.如果有人知道为什么我的代码不起作用,请指定它。

NOTE: Client variable is Discord.Client if you needed a reference.注意:如果您需要参考,客户端变量是 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 >.>");
  }
})

The Message have a attachments property which you can use to get a collection of attached file(s) to a message (if any)消息有一个附件属性,您可以使用它来获取消息的附件集合(如果有)

You can do a if (message.attachments.size > 0) to check for any attached objects first.您可以先执行if (message.attachments.size > 0)以检查任何附加对象。
Afterwards, you can loop through the collection and check if the attached file URL ends with a png or jpeg .之后,您可以遍历集合并检查附加的文件 URL 是否以pngjpeg结尾。

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;
}

EDIT编辑

For your bot not responding to anything.因为你的机器人没有响应任何东西。 Make sure that you are testing the bot in the channel that has the same ID in the message.channel.id != 425328056777834506 statement.确保您在message.channel.id != 425328056777834506语句中具有相同 ID 的通道中测试机器人。
(Or you can comment out that if statement first, then add that in when your bot is fully functional.) (或者您可以先注释掉 if 语句,然后在您的机器人功能齐全时添加它。)

Also, client.on("message", message => {... gets called when your bot sends a message too. You can do if (message.author.id == <YourBotID>) {return;} to let the bot ignore it's own messages.此外, client.on("message", message => {...当你的机器人发送消息时也会被调用。你可以这样做if (message.author.id == <YourBotID>) {return;}让bot 忽略它自己的消息。
Or you can do if (message.author.bot) {return;} if you want it to ignore messages sent by other bots.或者你可以做if (message.author.bot) {return;}如果你想让它忽略其他机器人发送的消息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM