我正在尝试构建一个系统,让 webhook 从 Google Sheet 发布一条消息,然后我的机器人用其中包含的表情符号对消息做出反应。我已经让 webhook 很好地发布了消息,并且我让 Bot 对正常消息做出了正确的反应。不过,我不能让两者一起工作。我怀疑问题在于 webhook 提供的表情符号不完整(:emoji:
,而不是 <:emoji:1234567890:>
)。我不知道有什么方法可以从表情符号字符串中获取 ID#,或者从消息对象中提取格式正确的表情符号。有没有办法做到这些或通过其他方式使这项工作?这是我所拥有的:
const emojiRegex = require('emoji-regex/RGI_Emoji.js');
client.on('message', message => {
const re = emojiRegex();
let match;
let emojis = [];
while ((match = re.exec(message.content)) != null) {
emojis.push(match[0]);
}
console.log(emojis);
if (emojis) {
emojis.forEach( e => {
message.react(e);
})
}
});
或者:
emojis = message.content.match(/:.+?:/g);
message.guild.emojis
似乎没有达到我希望的效果。
感谢您提供的任何帮助。
编辑:我现在也尝试了以下但没有成功:
client.on('message', message => {
let emojis = [];
let e1 = [];
let e2 = [];
e1 = message.content.match(/:.+?:/g);
console.log(e1);
if (e1) {
e1.forEach( e => {
e2.push(e.match(/[a-zA-Z0-9_]+/g).toString());
})
}
console.log(e2);
if (e2) {
e2.forEach( e => {
emojis.push(client.emojis.cache.find(emoji => emoji.name === e));
})
}
console.log(emojis);
if (emojis) {
emojis.forEach( e => {
message.react(e);
})
}
});
答案 0 :(得分:0)
这是一个不完整的解决方案,因为它的工作时间不到一半。我认为这是因为 @media (max-width: 900px) {
.banner .row .image-container {
.desktopimage {
display: none;
}
.mobileimage {
display: block;
}
}
}
有一个不完整的 unicode 表情符号可能名称列表。如果您知道更好的解决方案,我很想听听。
emoji-name-map