簡體   English   中英

使用 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 >.>");
  }
})

消息有一個附件屬性,您可以使用它來獲取消息的附件集合(如果有)

您可以先執行if (message.attachments.size > 0)以檢查任何附加對象。
之后,您可以遍歷集合並檢查附加的文件 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;
}

編輯

因為你的機器人沒有響應任何東西。 確保您在message.channel.id != 425328056777834506語句中具有相同 ID 的通道中測試機器人。
(或者您可以先注釋掉 if 語句,然后在您的機器人功能齊全時添加它。)

此外, client.on("message", message => {...當你的機器人發送消息時也會被調用。你可以這樣做if (message.author.id == <YourBotID>) {return;}讓bot 忽略它自己的消息。
或者你可以做if (message.author.bot) {return;}如果你想讓它忽略其他機器人發送的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM