Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用DiscordJS在聊天中获取表情符号图像的最佳方法是什么?_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 使用DiscordJS在聊天中获取表情符号图像的最佳方法是什么?

Javascript 使用DiscordJS在聊天中获取表情符号图像的最佳方法是什么?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我的主要目标是能够运行一个小命令,比如,$yoink,它将获取聊天中最后发送的表情符号,并将其制作成我可以下载的图像。我已经有了类似的东西,但它只检测常规图像和嵌入图像(使用它使我的机器人具有Jimp功能) 以下是我目前掌握的情况: 异步函数GetImageFromMsg(msg){ var-imageUrl=null; const urlsnifferpattern=/(https?:\/\/[^\s]+\(?:png | jpg | jpeg | bmp | gif | tiff | web

我的主要目标是能够运行一个小命令,比如,
$yoink
,它将获取聊天中最后发送的表情符号,并将其制作成我可以下载的图像。我已经有了类似的东西,但它只检测常规图像和嵌入图像(使用它使我的机器人具有Jimp功能) 以下是我目前掌握的情况:

异步函数GetImageFromMsg(msg){ var-imageUrl=null; const urlsnifferpattern=/(https?:\/\/[^\s]+\(?:png | jpg | jpeg | bmp | gif | tiff | webp)(?:$|[^\s]+)/i; if(msg.attachments&&(getImg=msg.attachments.find(val=>val.height&&val.url))&&getImg.url.match(urlsifferpattern))//用户直接上传到聊天室。 imageUrl=getImg.url; if(msg.content&&(getImg=msg.content.match(urlsifferpattern))//首先在此处避免在接下来的两次检查中出现缓存问题。 imageUrl=getImg[0]。替换(“>”,“”); if(msg.embeds&(getImg=msg.embeds.find(val=>val.thumboil&&val.thumboil.url))//仅在机器人制作的嵌入上显示小图像-(小??>)链接制作的嵌入上显示大图像-无嵌入的随机图像url。 imageUrl=getImg.thumboil.url; if(msg.embeds&(getImg=msg.embeds.find(val=>val.image&&val.image.url))///机器人制作的嵌入上的大图像。 imageUrl=getImg.image.url; 如果(!imageUrl) 返回null; 返回imageUrl; }
我应该如何添加对抓取表情符号的支持?

您可以检查邮件中是否包含任何带有正则表达式的表情符号

这里有一个方法(它的Python,但RegEx到处都是垃圾)和另一个详细解释Discord如何处理emojis

要获得普通图像,首先需要使用

client.emojis.find(emoji=>emoji.name==“emoji_name”);
然后,通过将id插入此url,您可以继续获取普通图像:

函数getEmoji(id){ var linkToMyEmoji=`https://cdn.discordapp.com/emojis/${id}.png` // ... }
希望这能对您有所帮助:)

我知道这是一个愚蠢的问题,但是,在哪里放置此代码最合适?它应该放在命令结构中还是放在我的数组列表之外?因此,如果你把它放在命令结构之外,你可能需要像我在示例代码中所做的那样为函数提供一些参数(例如id或更多)。然后,您需要做的唯一一件事就是返回链接(或者其他东西,取决于您的用例)。如果您只想拥有url,而不想对它做任何花哨的事情,那么最好将其写入您的命令结构中。但是就像我说的,这取决于你的用例。谢谢你的帮助!