async function handleReaction(client, interaction, challenger, opponent, embed, logs) {
try {
const collectorFilter = (reaction, user) => ['š', 'š'].includes(reaction.emoji.name) && user.id === opponent.user.id;
const reactionCollector = await embed.awaitReactions({ filter: collectorFilter, max: 1, time: 5000, errors: ['time'] });
const reaction = reactionCollector.first();
if (reaction.emoji.name === 'š') {
embed.setFooter({ text: `Challenge #${client.challengeID}` });
embed.setTimestamp();
await challengeEmbed.edit({ embeds: [embed] });
} else if (reaction.emoji.name === 'š') {
await embed.delete({ timeout: 1000 });
await logs.channel.send(`<@${challenger.id}> ${opponent.user.username} rejected your challenge`);
}
} catch (error) {
console.log(interaction);
await interaction.reply("no time left");
throw new Error(error);
}
}
async execute(client, interaction) {
const challenger = interaction.member.user
const opponent = interaction.options.get("opponent")
try {
const match = await createMatchRequest(interaction, challenger, opponent)
await handleReaction(client, interaction, challenger, opponent, match.embed, match.logs)
} catch (error) {
console.log(error)
}
}
async function handleReaction(client, interaction, challenger, opponent, embed, logs) {
try {
const collectorFilter = (reaction, user) => ['š', 'š'].includes(reaction.emoji.name) && user.id === opponent.user.id;
const reactionCollector = await embed.awaitReactions({ filter: collectorFilter, max: 1, time: 5000, errors: ['time'] });
const reaction = reactionCollector.first();
if (reaction.emoji.name === 'š') {
embed.setFooter({ text: `Challenge #${client.challengeID}` });
embed.setTimestamp();
await challengeEmbed.edit({ embeds: [embed] });
} else if (reaction.emoji.name === 'š') {
await embed.delete({ timeout: 1000 });
await logs.channel.send(`<@${challenger.id}> ${opponent.user.username} rejected your challenge`);
}
} catch (error) {
console.log(interaction);
await interaction.reply("no time left");
throw new Error(error);
}
}
async execute(client, interaction) {
const challenger = interaction.member.user
const opponent = interaction.options.get("opponent")
try {
const match = await createMatchRequest(interaction, challenger, opponent)
await handleReaction(client, interaction, challenger, opponent, match.embed, match.logs)
} catch (error) {
console.log(error)
}
}