|
|
|
|
import Discord from 'discord.js';
|
|
|
|
|
import client from './client.js';
|
|
|
|
|
import generateEmojiEmbed from "./generateEmojiEmbed.js";
|
|
|
|
|
|
|
|
|
|
export default async function (m, interactionFilter, messageFilter) {
|
|
|
|
|
let out;
|
|
|
|
|
try {
|
|
|
|
|
out = await new Promise((resolve, reject) => {
|
|
|
|
|
let mes, int;
|
|
|
|
|
mes = m.createMessageComponentCollector({filter: (m) => interactionFilter(m), time: 300000})
|
|
|
|
|
.on("collect", (m) => { resolve(m); })
|
|
|
|
|
int = m.channel.createMessageCollector({filter: (m) => messageFilter(m), time: 300000})
|
|
|
|
|
.then("collect", (m) => { try {m.delete();} catch {}; resolve(m); })
|
|
|
|
|
mes.on("end", () => { int.stop(); })
|
|
|
|
|
int.on("end", () => { mes.stop(); })
|
|
|
|
|
})
|
|
|
|
|
} catch(e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return out;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function modalInteractionCollector(m, modalFilter, interactionFilter) {
|
|
|
|
|
let out;
|
|
|
|
|
try {
|
|
|
|
|
out = await new Promise((resolve, reject) => {
|
|
|
|
|
let mod, int;
|
|
|
|
|
int = m.createMessageComponentCollector({filter: (m) => interactionFilter(m), time: 300000})
|
|
|
|
|
.on("collect", (m) => { resolve(m); })
|
|
|
|
|
mod = new Discord.InteractionCollector(
|
|
|
|
|
client, {
|
|
|
|
|
filter: (m) => modalFilter(m),
|
|
|
|
|
time: 300000
|
|
|
|
|
})
|
|
|
|
|
.on("collect", async (m) => {
|
|
|
|
|
int.stop();
|
|
|
|
|
(m as Discord.ModalSubmitInteraction).deferUpdate()
|
|
|
|
|
resolve((m as Discord.ModalSubmitInteraction)); })
|
|
|
|
|
int.on("end", () => { mod.stop(); })
|
|
|
|
|
mod.on("end", () => { int.stop(); })
|
|
|
|
|
})
|
|
|
|
|
} catch(e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
return out;
|
|
|
|
|
}
|