如何在邮件中访问表情符号

时间:2020-07-02 10:47:23

标签: node.js discord.js

我正在尝试访问消息中的表情符号,但仍然会出现错误

这是我的代码:

 client.on('message', (recievedMessage) => {
   if (recievedMessage.author == client.user) {
    return
   }
  recievedMessage.channel.send("Message recieved, " + recievedMessage.author.toString() + " : " + 
  recievedMessage.content)

  recievedMessage.react("?")
  recievedMessage.guild.emojis.forEach(customEmoji => {
   console.log(`${customEmoji.name} ${customEmoji.id}`)
  recievedMessage.react(customEmoji)
 })

})

我遇到的错误

TypeError:无法在客户端读取null的属性'emojis'。

2 个答案:

答案 0 :(得分:0)

我相信您使用discord.js v12

client.on('message', (recievedMessage) => {
   if (recievedMessage.author == client.user) {
    return
   }
  recievedMessage.channel.send("Message recieved, " + recievedMessage.author.toString() + " : " + 
  recievedMessage.content);

  recievedMessage.react("?");
  recievedMessage.guild.emojis.cache.forEach(customEmoji => {
   console.log(`${customEmoji.name} ${customEmoji.id}`);
  recievedMessage.react(customEmoji);
 });

});

答案 1 :(得分:0)

const signerKey = signers.filter(signerObj => { console.log(signerObj) // returns "exports { ...email, name, etc }" console.log(Object.keys[signerObj]) // returns undefined console.log(signerObj.exports.recipientId) // returns undefined console.log(typeof signerObj) // returns object return signerObj.recipientId === 'signer_2' // returns undefined }) 表示exports未定义

所以这可能意味着您的机器人在DM频道上收到了一条消息,

要修复所有您需要做的就是验证它是否在行会中:

TypeError: Cannot read property 'emojis' of null at Client.

大多数人通常不接受dm开头的消息:

message.guild

如果您使用的是v12,PokemonLeader提到的另一个可能的错误是client.on('message', (recievedMessage) => { if (recievedMessage.author == client.user) { return } recievedMessage.channel.send("Message recieved, " + recievedMessage.author.toString() + " : " + recievedMessage.content) recievedMessage.react("?") if(recievedMessage.channel.type !== "dm") { recievedMessage.guild.emojis.forEach(customEmoji => { console.log(`${customEmoji.name} ${customEmoji.id}`) recievedMessage.react(customEmoji) }) } })