#javascript #discord.js
Вопрос:
Поэтому я хочу попробовать сделать что-то, что вы можете «напечатать» с помощью реакций, но по какой-то причине это не сработает, вместо того, чтобы просто добавлять, оно заменит последнее, затем перейдет к следующему, затем заменит это и повторит. Как мне заставить его работать должным образом? Я пытаюсь создать своего рода интерактивный калькулятор разногласий
client.on('message' , async msg => {
if(msg.content === "mb!calculate") {
msg.author.calculator = new Discord.MessageEmbed()
.setColor('0000ff')
.setTitle('Calculator')
.setDescription('>> ');
msg.author.calEmbed = await msg.channel.send(msg.author.calculator);
msg.author.calEmbed.react('1️⃣');
msg.author.calEmbed.react('2️⃣');
msg.author.calEmbed.react('3️⃣');
msg.author.calEmbed.react('4️⃣');
msg.author.calEmbed.react('5️⃣');
msg.author.calEmbed.react('6️⃣');
msg.author.calEmbed.react('7️⃣');
msg.author.calEmbed.react('8️⃣');
msg.author.calEmbed.react('9️⃣');
msg.author.actEmbed = msg.author.calEmbed.embeds[0];
}
})
client.on('messageReactionAdd', async (reaction, user) => {
if(reaction.partial) {
try {
await reaction.fetch();
} catch (error) {
console.error(error);
return;
}
}
if(reaction.message === user.calEmbed) {
reaction.users.remove(user.id);
if(reaction.emoji.name === '1️⃣') {
user.calculator.setDescription(user.actEmbed.description '1');
} else if(reaction.emoji.name === '2️⃣') {
user.calculator.setDescription(user.actEmbed.description '2');
} else if(reaction.emoji.name === '3️⃣') {
user.calculator.setDescription(user.actEmbed.description '3');
} else if(reaction.emoji.name === '4️⃣') {
user.calculator.setDescription(user.actEmbed.description '4');
} else if(reaction.emoji.name === '5️⃣') {
user.calculator.setDescription(user.actEmbed.description '5');
} else if(reaction.emoji.name === '6️⃣') {
user.calculator.setDescription(user.actEmbed.description '6');
} else if(reaction.emoji.name === '7️⃣') {
user.calculator.setDescription(user.actEmbed.description '7');
} else if(reaction.emoji.name === '8️⃣') {
user.calculator.setDescription(user.actEmbed.description '8');
} else if(reaction.emoji.name === '9️⃣') {
user.calculator.setDescription(user.actEmbed.description '9');
}
user.calEmbed.edit(user.calculator);
user.actEmbed = user.calEmbed.embeds[0];
}
})
Поэтому я добавляю переменную пользователю, чтобы несколько человек могли использовать ее одновременно, но не для других людей. Я еще не закончил, так как он делает то, что я сказал выше.
Ответ №1:
Хорошо, я понял, что сделал не так. На самом деле мне не нужен был user.actEmbed, так как изменения вносятся в user.calculator, а это значит, что все, что мне нужно было, — это изменить все слова «actEmbed» на «калькулятор». Вот отредактированная версия.
client.on('message' , async msg => {
if(msg.content === "mb!calculate") {
msg.author.calculator = new Discord.MessageEmbed()
.setColor('0000ff')
.setTitle('Calculator')
.setDescription('>> ');
msg.author.calEmbed = await msg.channel.send(msg.author.calculator);
msg.author.calEmbed.react('1️⃣');
msg.author.calEmbed.react('2️⃣');
msg.author.calEmbed.react('3️⃣');
msg.author.calEmbed.react('4️⃣');
msg.author.calEmbed.react('5️⃣');
msg.author.calEmbed.react('6️⃣');
msg.author.calEmbed.react('7️⃣');
msg.author.calEmbed.react('8️⃣');
msg.author.calEmbed.react('9️⃣');
}
})
client.on('messageReactionAdd', async (reaction, user) => {
if(reaction.partial) {
try {
await reaction.fetch();
} catch (error) {
console.error(error);
return;
}
}
if(reaction.message === user.calEmbed) {
reaction.users.remove(user.id);
if(reaction.emoji.name === '1️⃣') {
user.calculator.setDescription(user.calculator.description '1');
} else if(reaction.emoji.name === '2️⃣') {
user.calculator.setDescription(user.calculator.description '2');
} else if(reaction.emoji.name === '3️⃣') {
user.calculator.setDescription(user.calculator.description '3');
} else if(reaction.emoji.name === '4️⃣') {
user.calculator.setDescription(user.calculator.description '4');
} else if(reaction.emoji.name === '5️⃣') {
user.calculator.setDescription(user.calculator.description '5');
} else if(reaction.emoji.name === '6️⃣') {
user.calculator.setDescription(user.calculator.description '6');
} else if(reaction.emoji.name === '7️⃣') {
user.calculator.setDescription(user.calculator.description '7');
} else if(reaction.emoji.name === '8️⃣') {
user.calculator.setDescription(user.calculator.description '8');
} else if(reaction.emoji.name === '9️⃣') {
user.calculator.setDescription(user.calculator.description '9');
}
user.calEmbed.edit(user.calculator)
}
})