node.js - {已解决} discord.js 反应方法输出错误的表情符号
问题描述
我需要帮助我目前的方法没有得到正确的反应表情符号。但我希望它获得正确的表情符号。有人能帮我吗?
bot.on('messageReactionAdd', async (reaction, user) => {
const message = reaction.message
if (reaction.partial) {
try {
await reaction.fetch();
} catch (error) {
console.error('Something went wrong when fetching the message: ', error);
return;
}
if(user.bot) return;
if(reaction.emoji == ""){
reaction.message.channel.send("Right emoji")
reaction.message.reactions.cache.get("").remove(user);
reaction.message.react("")
let category = message.guild.channels.cache.find(cat=> cat.name === "my category")
if(category == null){
message.guild.channels.create('my category', { type: 'category' })
.catch(console.error);
category = message.guild.channels.cache.find(cat=> cat.name === "my category")
}
setTimeout(createShopTicketChannel, 2000, message, category, user, "")
}else if(reaction.emoji == ""){
reaction.message.channel.send("Wrong emoji")
reaction.message.reactions.cache.get("").remove(user);
reaction.message.react("")
let category = message.guild.channels.cache.find(cat=> cat.name === "my category")
if(category == null){
message.guild.channels.create('my category', { type: 'category' })
.catch(console.error);
category = message.guild.channels.cache.find(cat=> cat.name === "my category")
}
setTimeout(createShopTicketChannel, 2000, message, category, user, "")
}else{
message.channel.send("Wrong emoooji")
}
}
输出是:错误的表情符号,即使我对正确的表情做出反应。
解决方案
要解决此问题,您应该使用reaction.emoji.name
而不是reaction.emoji
. 如果您要添加更多案例,我还建议使用switch
而不是多个 if-else 语句。
切换文档 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
希望它有所帮助:)
推荐阅读
- mysql - SQL 关系数据库:数据操作和计算
- mongodb - 如何为类别子类别管理创建猫鼬模式?
- sql - HiveQL:如何删除基于两列的重复行
- javascript - 将下拉选择替换为jquery中选择的类
- python - 使用 Flask before_request 和 after_request 的原子事务
- python-3.x - 构建和访问数组列表
- python - 我必须运行我的代码两次才能获得想要的结果,为什么?
- vue.js - 如何使用嵌套的 Vuex 对象计算
- c# - 似乎无法通过 ASP.Net Core 连接到 SQL Server(一直返回 null)
- json - 在ansible playbook中替换来自JSON响应(来自uri)的变量以创建本地用户帐户