|
|
|
@ -86,7 +86,12 @@ class confirmationMessage {
|
|
|
|
components?: Record<string, CustomBoolean<unknown>>;
|
|
|
|
components?: Record<string, CustomBoolean<unknown>>;
|
|
|
|
newReason?: string;
|
|
|
|
newReason?: string;
|
|
|
|
}> {
|
|
|
|
}> {
|
|
|
|
while (true) {
|
|
|
|
let cancelled = false;
|
|
|
|
|
|
|
|
let success: boolean | undefined = undefined;
|
|
|
|
|
|
|
|
let returnComponents = false;
|
|
|
|
|
|
|
|
let newReason = undefined;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (!cancelled && success === undefined && !returnComponents && !newReason) {
|
|
|
|
const fullComponents = [
|
|
|
|
const fullComponents = [
|
|
|
|
new Discord.MessageButton()
|
|
|
|
new Discord.MessageButton()
|
|
|
|
.setCustomId("yes")
|
|
|
|
.setCustomId("yes")
|
|
|
|
@ -150,7 +155,8 @@ class confirmationMessage {
|
|
|
|
m = (await this.interaction.reply(object)) as unknown as Message;
|
|
|
|
m = (await this.interaction.reply(object)) as unknown as Message;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch {
|
|
|
|
} catch {
|
|
|
|
return { cancelled: true };
|
|
|
|
cancelled = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let component;
|
|
|
|
let component;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
@ -159,7 +165,9 @@ class confirmationMessage {
|
|
|
|
time: 300000
|
|
|
|
time: 300000
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} catch (e) {
|
|
|
|
} catch (e) {
|
|
|
|
return { success: false, components: this.customButtons };
|
|
|
|
success = false;
|
|
|
|
|
|
|
|
returnComponents = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (component.customId === "yes") {
|
|
|
|
if (component.customId === "yes") {
|
|
|
|
component.deferUpdate();
|
|
|
|
component.deferUpdate();
|
|
|
|
@ -171,10 +179,14 @@ class confirmationMessage {
|
|
|
|
console.log(e);
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return { success: true, components: this.customButtons };
|
|
|
|
success = true;
|
|
|
|
|
|
|
|
returnComponents = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
} else if (component.customId === "no") {
|
|
|
|
} else if (component.customId === "no") {
|
|
|
|
component.deferUpdate();
|
|
|
|
component.deferUpdate();
|
|
|
|
return { success: false, components: this.customButtons };
|
|
|
|
success = false;
|
|
|
|
|
|
|
|
returnComponents = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
} else if (component.customId === "reason") {
|
|
|
|
} else if (component.customId === "reason") {
|
|
|
|
await component.showModal(
|
|
|
|
await component.showModal(
|
|
|
|
new Discord.Modal()
|
|
|
|
new Discord.Modal()
|
|
|
|
@ -221,24 +233,35 @@ class confirmationMessage {
|
|
|
|
(m) => m.customId === "reason"
|
|
|
|
(m) => m.customId === "reason"
|
|
|
|
);
|
|
|
|
);
|
|
|
|
} catch (e) {
|
|
|
|
} catch (e) {
|
|
|
|
return { cancelled: true };
|
|
|
|
cancelled = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (out === null) {
|
|
|
|
if (out === null) {
|
|
|
|
return { cancelled: true };
|
|
|
|
cancelled = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (out instanceof ModalSubmitInteraction) {
|
|
|
|
if (out instanceof ModalSubmitInteraction) {
|
|
|
|
return {
|
|
|
|
newReason = out.fields.getTextInputValue("reason");
|
|
|
|
newReason: out.fields.getTextInputValue("reason")
|
|
|
|
continue;
|
|
|
|
};
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
return { components: this.customButtons };
|
|
|
|
returnComponents = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
component.deferUpdate();
|
|
|
|
component.deferUpdate();
|
|
|
|
this.customButtons[component.customId]!.active = !this.customButtons[component.customId]!.active;
|
|
|
|
this.customButtons[component.customId]!.active = !this.customButtons[component.customId]!.active;
|
|
|
|
return { components: this.customButtons };
|
|
|
|
returnComponents = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const returnValue: Awaited<ReturnType<typeof this.send>> = {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (returnComponents) returnValue.components = this.customButtons;
|
|
|
|
|
|
|
|
if (success !== undefined) returnValue.success = success;
|
|
|
|
|
|
|
|
if (cancelled) returnValue.cancelled = true;
|
|
|
|
|
|
|
|
if (newReason) returnValue.newReason = newReason;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return returnValue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|