Listen for a button interaction instead of using a collector for submit confessions button
This commit is contained in:
parent
e58239362c
commit
645a8b2ae7
|
@ -21,7 +21,6 @@ import {
|
||||||
ButtonBuilder,
|
ButtonBuilder,
|
||||||
ButtonStyle,
|
ButtonStyle,
|
||||||
ChatInputCommandInteraction,
|
ChatInputCommandInteraction,
|
||||||
ComponentType,
|
|
||||||
EmbedBuilder,
|
EmbedBuilder,
|
||||||
SlashCommandBuilder,
|
SlashCommandBuilder,
|
||||||
TextChannel
|
TextChannel
|
||||||
|
@ -31,7 +30,6 @@ import { dt } from "../main";
|
||||||
import { StoreMan } from "../storeman";
|
import { StoreMan } from "../storeman";
|
||||||
import getRandomColor from "../utils/getRandomColor";
|
import getRandomColor from "../utils/getRandomColor";
|
||||||
import Logger from "../utils/Logger";
|
import Logger from "../utils/Logger";
|
||||||
import { submit } from "../modals";
|
|
||||||
|
|
||||||
const logger = new Logger("(/) confess");
|
const logger = new Logger("(/) confess");
|
||||||
|
|
||||||
|
@ -133,7 +131,7 @@ export async function execute(interaction: ChatInputCommandInteraction) {
|
||||||
isAttachment(attachment) && adminConfessionEmbed.setImage(attachment);
|
isAttachment(attachment) && adminConfessionEmbed.setImage(attachment);
|
||||||
|
|
||||||
const submitConfessionButton = new ButtonBuilder()
|
const submitConfessionButton = new ButtonBuilder()
|
||||||
.setCustomId("submitConfession")
|
.setCustomId("requestSubmit")
|
||||||
.setLabel("Submit a Confession")
|
.setLabel("Submit a Confession")
|
||||||
.setStyle(ButtonStyle.Primary);
|
.setStyle(ButtonStyle.Primary);
|
||||||
|
|
||||||
|
@ -154,22 +152,6 @@ export async function execute(interaction: ChatInputCommandInteraction) {
|
||||||
components: [actionRow]
|
components: [actionRow]
|
||||||
});
|
});
|
||||||
|
|
||||||
const collector = message.createMessageComponentCollector({
|
|
||||||
componentType: ComponentType.Button
|
|
||||||
});
|
|
||||||
|
|
||||||
collector.on("collect", i => {
|
|
||||||
if (i.customId === "submitConfession") {
|
|
||||||
// Check if the user is banned from confessions first before displaying the modal
|
|
||||||
dt.isBanned(i.guild.id, i.user.id)
|
|
||||||
? i.reply({
|
|
||||||
content: "You are banned from confessions in this server!",
|
|
||||||
ephemeral: true
|
|
||||||
})
|
|
||||||
: i.showModal(submit);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
await (BotClient.channels.cache.get(adminChannel!) as TextChannel).send({
|
await (BotClient.channels.cache.get(adminChannel!) as TextChannel).send({
|
||||||
embeds: [adminConfessionEmbed]
|
embeds: [adminConfessionEmbed]
|
||||||
});
|
});
|
||||||
|
|
34
src/main.ts
34
src/main.ts
|
@ -81,6 +81,28 @@ BotClient.on(Events.MessageDelete, async message => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Submit Confession button
|
||||||
|
BotClient.on(Events.InteractionCreate, async interaction => {
|
||||||
|
if (!interaction.isButton()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Changed the id of the submit request button, but keep compatibility for now
|
||||||
|
const requestSubmit =
|
||||||
|
interaction.customId === "requestSubmit" ||
|
||||||
|
interaction.customId === "submitConfession";
|
||||||
|
|
||||||
|
if (requestSubmit) {
|
||||||
|
// Check if the user is banned from confessions before showing the modal
|
||||||
|
dt.isBanned(interaction.guild?.id!, interaction.user.id)
|
||||||
|
? interaction.reply({
|
||||||
|
content: "You are banned from confessions in this server!",
|
||||||
|
ephemeral: true
|
||||||
|
})
|
||||||
|
: interaction.showModal(submit);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
BotClient.on(Events.InteractionCreate, async interaction => {
|
BotClient.on(Events.InteractionCreate, async interaction => {
|
||||||
if (!interaction.isModalSubmit()) {
|
if (!interaction.isModalSubmit()) {
|
||||||
return;
|
return;
|
||||||
|
@ -121,7 +143,6 @@ BotClient.on(Events.InteractionCreate, async interaction => {
|
||||||
const userConfessionEmbed = new EmbedBuilder()
|
const userConfessionEmbed = new EmbedBuilder()
|
||||||
.setColor(color)
|
.setColor(color)
|
||||||
.setTitle(`Anonymous Confession \`${messageId}\``)
|
.setTitle(`Anonymous Confession \`${messageId}\``)
|
||||||
// @ts-ignore
|
|
||||||
.setDescription(messageContent);
|
.setDescription(messageContent);
|
||||||
|
|
||||||
isAttachment(attachment) && userConfessionEmbed.setImage(attachment);
|
isAttachment(attachment) && userConfessionEmbed.setImage(attachment);
|
||||||
|
@ -129,7 +150,6 @@ BotClient.on(Events.InteractionCreate, async interaction => {
|
||||||
const adminConfessionEmbed = new EmbedBuilder()
|
const adminConfessionEmbed = new EmbedBuilder()
|
||||||
.setColor(color)
|
.setColor(color)
|
||||||
.setTitle(`Anonymous Confession \`${messageId}\``)
|
.setTitle(`Anonymous Confession \`${messageId}\``)
|
||||||
// @ts-ignore
|
|
||||||
.setDescription(messageContent)
|
.setDescription(messageContent)
|
||||||
.addFields(
|
.addFields(
|
||||||
{
|
{
|
||||||
|
@ -160,16 +180,6 @@ BotClient.on(Events.InteractionCreate, async interaction => {
|
||||||
components: [actionRow]
|
components: [actionRow]
|
||||||
});
|
});
|
||||||
|
|
||||||
const collector = message.createMessageComponentCollector({
|
|
||||||
componentType: ComponentType.Button
|
|
||||||
});
|
|
||||||
|
|
||||||
collector.on("collect", i => {
|
|
||||||
if (i.customId === "submitConfession") {
|
|
||||||
i.showModal(submit);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
await (BotClient.channels.cache.get(adminChannel!) as TextChannel).send({
|
await (BotClient.channels.cache.get(adminChannel!) as TextChannel).send({
|
||||||
embeds: [adminConfessionEmbed]
|
embeds: [adminConfessionEmbed]
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue