我正在尝试访问消息中的表情符号,但仍然会出现错误
这是我的代码:
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'。
答案 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)
})
}
})
。