utils.selectionMessage: move to interactionCreate event now that it exists

This commit is contained in:
Cynthia Foxwell 2021-11-09 11:06:11 -07:00
parent 2205245353
commit 7e3bfd5a0d
1 changed files with 9 additions and 26 deletions

View File

@ -205,46 +205,31 @@ async function selectionMessage(msg, heading, options, timeout = 30000) {
const displayMessage = await msg.channel.createMessage(data);
return await new Promise((resolve, reject) => {
function listener(packet) {
if (packet.t == "INTERACTION_CREATE") {
const interaction = packet.d;
function listener(interaction) {
if (interaction instanceof Eris.ComponentInteraction) {
const user = interaction.member.user || interaction.user;
if (
user.id == msg.author.id &&
interaction.channel_id == msg.channel.id &&
interaction.channel.id == msg.channel.id &&
interaction.message.components[0].components[0].custom_id == msg.id
) {
if (interaction.data.custom_id == "cancel") {
hf.events.remove("unknown", `selection.${msg.id}`);
hf.events.remove("interactionCreate", `selection.${msg.id}`);
clearTimeout(hf.selectionMessages.get(msg.id));
hf.selectionMessages.remove(msg.id);
hf.bot.requestHandler.request(
"POST",
`/interactions/${interaction.id}/${interaction.token}/callback`,
false,
{
type: 6,
}
);
interaction.deferUpdate();
displayMessage.delete();
reject("Canceled");
} else {
hf.events.remove("unknown", `selection.${msg.id}`);
hf.events.remove("interactionCreate", `selection.${msg.id}`);
clearTimeout(hf.selectionMessages.get(msg.id));
hf.selectionMessages.remove(msg.id);
hf.bot.requestHandler.request(
"POST",
`/interactions/${interaction.id}/${interaction.token}/callback`,
false,
{
type: 6,
}
);
interaction.deferUpdate();
displayMessage.delete();
@ -257,15 +242,13 @@ async function selectionMessage(msg, heading, options, timeout = 30000) {
}
}
}
hf.events.add("unknown", `selection.${msg.id}`, listener);
hf.events.add("interactionCreate", `selection.${msg.id}`, listener);
hf.selectionMessages.set(
msg.id,
setTimeout(() => {
hf.events.remove("messageCreate", `selection.${msg.id}`);
hf.events.remove("interactionCreate", `selection.${msg.id}`);
hf.selectionMessages.remove(msg.id);
displayMessage.delete();
reject("Request timed out");
}, timeout)
);