Skip to content

Commit d2d332f

Browse files
committed
refactor (techdebt): replace ephemeral boolean value with MessageFlags
1 parent 1167b59 commit d2d332f

39 files changed

+189
-170
lines changed

src/commands/blacklist.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ApplicationIntegrationType, InteractionContextType, SlashCommandBuilder } from "discord.js";
1+
import { ApplicationIntegrationType, InteractionContextType, MessageFlags, SlashCommandBuilder } from "discord.js";
22
import { t } from "i18next";
33

44
import { Blacklisted } from "../database/models/blacklisted.js";
@@ -49,7 +49,7 @@ export const c: command = {
4949
const lng = interaction.locale.split("-")[0];
5050
if (!config.developerIds.includes(interaction.user.id)) return interaction.reply({
5151
content: "nuh uh ☝️",
52-
ephemeral: true
52+
flags: MessageFlags.Ephemeral
5353
});
5454
const target = interaction.options.getUser("target", true);
5555
const reason = interaction.options.getString("reason", true);
@@ -61,7 +61,7 @@ export const c: command = {
6161
}
6262
})) return interaction.reply({
6363
content: t("strings:commands.blacklist.message.already-blacklisted", { lng }),
64-
ephemeral: true
64+
flags: MessageFlags.Ephemeral
6565
});
6666
await Blacklisted.create({
6767
userId: target.id,
@@ -80,7 +80,7 @@ export const c: command = {
8080
}
8181
})) return interaction.reply({
8282
content: t("strings:commands.blacklist.message.not-blacklisted", { lng }),
83-
ephemeral: true
83+
flags: MessageFlags.Ephemeral
8484
});
8585
await Blacklisted.destroy({
8686
where: {

src/commands/eval.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { inspect } from "node:util";
22

33
import { execSync } from "child_process";
4-
import { ApplicationIntegrationType, AttachmentBuilder, InteractionContextType, SlashCommandBuilder } from "discord.js";
4+
import { ApplicationIntegrationType, AttachmentBuilder, InteractionContextType, MessageFlags, SlashCommandBuilder } from "discord.js";
55
import { t } from "i18next";
66

77
import { Buno } from "../database/models/buno.js";
@@ -45,7 +45,9 @@ export const c: command = {
4545
update;
4646
// eslint-disable-next-line no-unused-expressions
4747
Buno;
48-
await interaction.deferReply({ ephemeral: !showPublic });
48+
await interaction.deferReply({
49+
flags: !showPublic ? MessageFlags.Ephemeral : undefined
50+
});
4951
const reportError = async (e: Error): Promise<void> => {
5052
let stack: string;
5153
if (e.stack) {

src/commands/ping.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ export const c: command = {
1616
const lng = interaction.locale.split("-")[0];
1717
const msg = await interaction.reply({
1818
content: t("strings:commands.ping.message.pre-pong", { lng }),
19-
fetchReply: true
19+
withResponse: true
2020
});
21-
const actualPing = msg.createdTimestamp - interaction.createdTimestamp;
21+
const actualPing = msg.resource?.message?.createdTimestamp as number - interaction.createdTimestamp;
2222
return await interaction.editReply(t("strings:commands.ping.message.pong", { lng, WSPingEmote: pingToEmote(client.ws.ping), WSPing: client.ws.ping, pingEmote: pingToEmote(actualPing), ping: actualPing }));
2323
}
2424
};

src/commands/stop.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ApplicationIntegrationType, EmbedBuilder, InteractionContextType, PermissionFlagsBits, PermissionsBitField, SlashCommandBuilder } from "discord.js";
1+
import { ApplicationIntegrationType, EmbedBuilder, InteractionContextType, MessageFlags, PermissionFlagsBits, PermissionsBitField, SlashCommandBuilder } from "discord.js";
22
import { t } from "i18next";
33

44
import { command } from "../typings/command.js";
@@ -19,23 +19,23 @@ export const c: command = {
1919
const game = client.games.find(g => g.channelId === interaction.channelId);
2020
if (!config.developerIds.includes(interaction.user.id) && (interaction.member.permissions as PermissionsBitField).has(PermissionFlagsBits.ManageMessages)) return interaction.reply({
2121
content: "nuh uh ☝️",
22-
ephemeral: true
22+
flags: MessageFlags.Ephemeral
2323
});
2424
if (!game) return interaction.reply({
2525
content: t("strings:errors.gameNotFound", { lng }),
26-
ephemeral: true
26+
flags: MessageFlags.Ephemeral
2727
});
2828
if (game.state !== "waiting") return interaction.reply({
2929
content: t("strings:errors.inProgress", { lng }),
30-
ephemeral: true
30+
flags: MessageFlags.Ephemeral
3131
});
3232
const member = interaction.guild?.members.cache.get(interaction.user.id);
3333
if (!member || !member.permissions.has(PermissionFlagsBits.ManageMessages) && !config.developerIds.includes(interaction.user.id)) return interaction.reply({
3434
content: t("strings:errors.forbidden", { lng }),
35-
ephemeral: true
35+
flags: MessageFlags.Ephemeral
3636
});
3737
await interaction.deferReply({
38-
ephemeral: true
38+
flags: MessageFlags.Ephemeral
3939
});
4040
const msg = interaction.channel?.messages.cache.get(game.messageId);
4141
if (msg) await msg.delete();

src/commands/uno.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { randomUUID } from "crypto";
2-
import { ApplicationIntegrationType, Guild, InteractionContextType, Message, MessageCreateOptions, SlashCommandBuilder } from "discord.js";
2+
import { ApplicationIntegrationType, Guild, InteractionContextType, Message, MessageCreateOptions, MessageFlags, SlashCommandBuilder } from "discord.js";
33
import { t } from "i18next";
44

55
import lobbyGameMessage from "../components/lobbyGameMessage.js";
@@ -24,7 +24,10 @@ export const c: command = {
2424
let lng = interaction.locale.split("-")[0];
2525
if (isGame) {
2626
lng = isGame.locale;
27-
return await interaction.reply({ content: t("strings:errors.gameInChannel", { lng, url: "https://discord.com/channels/" + interaction.guildId + "/" + isGame.channelId + "/" + isGame.messageId }), ephemeral: true });
27+
return await interaction.reply({
28+
content: t("strings:errors.gameInChannel", { lng, url: "https://discord.com/channels/" + interaction.guildId + "/" + isGame.channelId + "/" + isGame.messageId }),
29+
flags: MessageFlags.Ephemeral
30+
});
2831
}
2932
const req = await Buno.findOne({
3033
where: {
@@ -57,7 +60,7 @@ export const c: command = {
5760
} as unoGame;
5861
client.games.push(game);
5962
const message = await interaction.channel?.send(await lobbyGameMessage(client, game as waitingUnoGame, interaction.guild as Guild) as MessageCreateOptions);
60-
await interaction.deferReply({ ephemeral: true });
63+
await interaction.deferReply({ flags: MessageFlags.Ephemeral });
6164
await interaction.deleteReply();
6265
game.messageId = message?.id as string;
6366

src/components/chooseColor.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { ActionRowBuilder, InteractionReplyOptions, InteractionUpdateOptions, StringSelectMenuBuilder } from "discord.js";
1+
import { ActionRowBuilder, InteractionReplyOptions, InteractionUpdateOptions, MessageFlags, StringSelectMenuBuilder } from "discord.js";
22
import { t } from "i18next";
33

44
import { colorEmotes, colors, SelectIDs, uniqueVariants } from "../utils/constants.js";
55

66
export default (cardType: typeof uniqueVariants[number], lng: string): InteractionReplyOptions | InteractionUpdateOptions => {
77
return {
88
content: t("strings:game.color.text", { lng }),
9-
ephemeral: true,
9+
flags: MessageFlags.Ephemeral,
1010
components: [
1111
new ActionRowBuilder<StringSelectMenuBuilder>().setComponents([
1212
new StringSelectMenuBuilder().setCustomId(SelectIDs.CHOOSE_COLOR)

src/components/pickPlayer.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ActionRowBuilder, Client, InteractionReplyOptions, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } from "discord.js";
1+
import { ActionRowBuilder, Client, InteractionReplyOptions, MessageFlags, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } from "discord.js";
22
import { t } from "i18next";
33

44
import { runningUnoGame } from "../typings/unoGame.js";
@@ -29,6 +29,6 @@ export default async (client: Client, game: runningUnoGame, player: string): Pro
2929
return {
3030
components: [await createRow()],
3131
content: t("strings:game.card.seven", { lng }),
32-
ephemeral: true
32+
flags: MessageFlags.Ephemeral
3333
};
3434
};

src/events/interactionCreate.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BaseInteraction, ButtonInteraction, ChatInputCommandInteraction, ModalSubmitInteraction, RepliableInteraction, StringSelectMenuInteraction } from "discord.js";
1+
import { BaseInteraction, ButtonInteraction, ChatInputCommandInteraction, MessageFlags, ModalSubmitInteraction, RepliableInteraction, StringSelectMenuInteraction } from "discord.js";
22
import { t } from "i18next";
33

44
import { Blacklisted } from "../database/models/blacklisted.js";
@@ -14,7 +14,7 @@ export const e: event = async (client, interaction: BaseInteraction) => {
1414
});
1515
if (blCheck && !config.developerIds.includes(interaction.user.id)) return (interaction as RepliableInteraction).reply({
1616
content: t("strings:errors.blacklisted", { lng, reason: blCheck.getDataValue("reason") }),
17-
ephemeral: true
17+
flags: MessageFlags.Ephemeral
1818
});
1919
if (interaction.isChatInputCommand()) {
2020
const i = interaction as ChatInputCommandInteraction;

src/interactions/buttons/actionPanel.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } from "discord.js";
1+
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, MessageFlags } from "discord.js";
22
import { t } from "i18next";
33

44
import { button } from "../../typings/button.js";
@@ -12,19 +12,19 @@ export const b: button = {
1212
if (game) lng = game.locale;
1313
if (!game) return interaction.reply({
1414
content: t("strings:errors.gameNotFound", { lng }),
15-
ephemeral: true
15+
flags: MessageFlags.Ephemeral
1616
});
1717
else if (game.state === "waiting") return interaction.reply({
1818
content: t("strings:errors.notRunning", { lng }),
19-
ephemeral: true
19+
flags: MessageFlags.Ephemeral
2020
});
2121
else if (game.currentPlayer !== interaction.user.id) return interaction.reply({
2222
content: t("strings:game.notYourTurn", { lng }),
23-
ephemeral: true
23+
flags: MessageFlags.Ephemeral
2424
});
2525
else if (!game.settings.adminabusemode && !game.settings.shouldYellBUNO && !game.settings.allowContest) return interaction.reply({
2626
content: t("strings:errors.noActions", { lng }),
27-
ephemeral: true
27+
flags: MessageFlags.Ephemeral
2828
});
2929
const embed = new EmbedBuilder()
3030
.setColor("Random")
@@ -77,7 +77,7 @@ export const b: button = {
7777
return interaction.reply({
7878
embeds: [embed],
7979
components: [row],
80-
ephemeral: true
80+
flags: MessageFlags.Ephemeral
8181
});
8282
}
8383
};

src/interactions/buttons/adminAbuseEditCards.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ActionRowBuilder, EmbedBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } from "discord.js";
1+
import { ActionRowBuilder, EmbedBuilder, MessageFlags, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } from "discord.js";
22
import { t } from "i18next";
33

44
import backToAdminAbuseHome from "../../components/backToAdminAbuseHome.js";
@@ -15,19 +15,19 @@ export const b: button = {
1515
if (game) lng = game.locale;
1616
if (!game) return interaction.reply({
1717
content: t("strings:errors.gameNotFound", { lng }),
18-
ephemeral: true
18+
flags: MessageFlags.Ephemeral
1919
});
2020
else if (game.state === "waiting") return interaction.reply({
2121
content: t("strings:errors.notRunning", { lng }),
22-
ephemeral: true
22+
flags: MessageFlags.Ephemeral
2323
});
2424
else if (game.currentPlayer !== interaction.user.id) return interaction.reply({
2525
content: t("strings:game.notYourTurn", { lng }),
26-
ephemeral: true
26+
flags: MessageFlags.Ephemeral
2727
});
2828
else if (!game.settings.adminabusemode || game.hostId !== interaction.user.id) return interaction.reply({
2929
content: "nuh uh ☝️",
30-
ephemeral: true
30+
flags: MessageFlags.Ephemeral
3131
});
3232
await interaction.deferUpdate();
3333
const embed = new EmbedBuilder()

src/interactions/buttons/adminAbusePanel.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, EmojiResolvable } from "discord.js";
1+
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, EmojiResolvable, MessageFlags } from "discord.js";
22
import { t } from "i18next";
33

44
import { button } from "../../typings/button.js";
@@ -12,19 +12,19 @@ export const b: button = {
1212
if (game) lng = game.locale;
1313
if (!game) return interaction.reply({
1414
content: t("strings:errors.gameNotFound", { lng }),
15-
ephemeral: true
15+
flags: MessageFlags.Ephemeral
1616
});
1717
else if (game.state === "waiting") return interaction.reply({
1818
content: t("strings:errors.notRunning", { lng }),
19-
ephemeral: true
19+
flags: MessageFlags.Ephemeral
2020
});
2121
else if (game.currentPlayer !== interaction.user.id) return interaction.reply({
2222
content: t("strings:game.notYourTurn", { lng }),
23-
ephemeral: true
23+
flags: MessageFlags.Ephemeral
2424
});
2525
else if (!game.settings.adminabusemode || game.hostId !== interaction.user.id) return interaction.reply({
2626
content: "nuh uh ☝️",
27-
ephemeral: true
27+
flags: MessageFlags.Ephemeral
2828
});
2929
const actions: {
3030
emoji: EmojiResolvable,

src/interactions/buttons/adminAbuseSwapCards.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } from "discord.js";
1+
import { ActionRowBuilder, MessageFlags, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } from "discord.js";
22
import { t } from "i18next";
33

44
import { button } from "../../typings/button.js";
@@ -13,19 +13,19 @@ export const b: button = {
1313
if (game) lng = game.locale;
1414
if (!game) return interaction.reply({
1515
content: t("strings:errors.gameNotFound", { lng }),
16-
ephemeral: true
16+
flags: MessageFlags.Ephemeral
1717
});
1818
else if (game.state === "waiting") return interaction.reply({
1919
content: t("strings:errors.notRunning", { lng }),
20-
ephemeral: true
20+
flags: MessageFlags.Ephemeral
2121
});
2222
else if (game.currentPlayer !== interaction.user.id) return interaction.reply({
2323
content: t("strings:game.notYourTurn", { lng }),
24-
ephemeral: true
24+
flags: MessageFlags.Ephemeral
2525
});
2626
else if (!game.settings.adminabusemode || game.hostId !== interaction.user.id) return interaction.reply({
2727
content: "nuh uh ☝️",
28-
ephemeral: true
28+
flags: MessageFlags.Ephemeral
2929
});
3030
await interaction.deferUpdate();
3131
const options = await Promise.all(game.players.map(async p => {

src/interactions/buttons/adminAbuseViewCards.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { EmbedBuilder } from "discord.js";
1+
import { EmbedBuilder, MessageFlags } from "discord.js";
22
import { t } from "i18next";
33

44
import backToAdminAbuseHome from "../../components/backToAdminAbuseHome.js";
@@ -18,19 +18,19 @@ export const b: button = {
1818
if (game) lng = game.locale;
1919
if (!game) return interaction.reply({
2020
content: t("strings:errors.gameNotFound", { lng }),
21-
ephemeral: true
21+
flags: MessageFlags.Ephemeral
2222
});
2323
else if (game.state === "waiting") return interaction.reply({
2424
content: t("strings:errors.notRunning", { lng }),
25-
ephemeral: true
25+
flags: MessageFlags.Ephemeral
2626
});
2727
else if (game.currentPlayer !== interaction.user.id) return interaction.reply({
2828
content: t("strings:game.notYourTurn", { lng }),
29-
ephemeral: true
29+
flags: MessageFlags.Ephemeral
3030
});
3131
else if (!game.settings.adminabusemode || game.hostId !== interaction.user.id) return interaction.reply({
3232
content: "nuh uh ☝️",
33-
ephemeral: true
33+
flags: MessageFlags.Ephemeral
3434
});
3535
game.adminAbused = true;
3636
await interaction.deferUpdate();

src/interactions/buttons/confirmLeaveGame.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
import { Guild, TextChannel } from "discord.js";
2+
import { Guild, MessageFlags, TextChannel } from "discord.js";
33
import { t } from "i18next";
44

55
import runningGameMessage from "../../components/runningGameMessage.js";
@@ -19,15 +19,15 @@ export const b: button = {
1919
if (game) lng = game.locale;
2020
if (!game) return interaction.reply({
2121
content: t("strings:errors.gameNotFound", { lng }),
22-
ephemeral: true
22+
flags: MessageFlags.Ephemeral
2323
});
2424
if (game.state !== "inProgress") return interaction.reply({
2525
content: t("strings:errors.notRunningWrongButton", { lng }),
26-
ephemeral: true,
26+
flags: MessageFlags.Ephemeral,
2727
});
2828
if (!game.players.includes(interaction.user.id)) return interaction.reply({
2929
content: t("strings:errors.notInGame", { lng }),
30-
ephemeral: true,
30+
flags: MessageFlags.Ephemeral,
3131
});
3232
await interaction.deferUpdate();
3333
const index = game.players.findIndex(p => p === interaction.user.id);

0 commit comments

Comments
 (0)