本文介绍了使用discord.js检测图像并做出响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为我朋友的Discord服务器制作一个恶作剧的Discord机器人,但是该漫游器不会响应任何内容;甚至elseif函数都没有通过.如果有人知道我的代码为什么不起作用,您可以指定它.

I'm trying to make a prank Discord bot for my friend's Discord server,but the bot won't respond to anything; not even the elseif function passes.If anyone know why my code isn't working can you please specify it.

注意:如果需要引用,则客户端变量为Discord.Client.

NOTE: Client variable is Discord.Client if you needed a reference.

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)

您可以先执行 if(message.attachments.size> 0)来检查是否有任何附加对象.
之后,您可以遍历整个集合,并检查附件文件的URL是否以 png jpeg 结尾.

You can do a if (message.attachments.size > 0) to check for any attached objects first.
Afterwards, you can loop through the collection and check if the attached file URL ends with a png or 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语句,然后在您的漫游器功能完全正常时再添加.)

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.
(Or you can comment out that if statement first, then add that in when your bot is fully functional.)

另外, client.on("message",message => {... 也会在您的漫游器也发送消息时被调用.您可以执行 if(message.author.id ==< YourBotID>){return;} ,让漫游器忽略其自身的消息.
或者,如果您希望它忽略其他漫游器发送的消息,则可以执行 if(message.author.bot){return;} .

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.
Or you can do if (message.author.bot) {return;} if you want it to ignore messages sent by other bots.

这篇关于使用discord.js检测图像并做出响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 08:23