Remove optionals from whois and finduser

This commit is contained in:
Tarrgon
2025-06-04 15:08:08 -04:00
parent bf21e9b423
commit 417cc02bbd
2 changed files with 15 additions and 32 deletions
+5 -16
View File
@@ -13,30 +13,19 @@ export default {
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers) .setDefaultMemberPermissions(PermissionFlagsBits.BanMembers)
.addStringOption(option => .addStringOption(option =>
option option
.setName('username') .setName('user')
.setDescription('The e621 username to find the discord user of.') .setDescription('The e621 username or e621 id to find the discord user of.')
.setRequired(false) .setRequired(true)
)
.addStringOption(option =>
option
.setName('id')
.setDescription('The e621 user id to find the discord user of.')
.setRequired(false)
), ),
handler: async function (client: Client, interaction: ChatInputCommandInteraction) { handler: async function (client: Client, interaction: ChatInputCommandInteraction) {
await deferInteraction(interaction); await deferInteraction(interaction);
if (!interaction.guild) return interaction.editReply('This command must be used in a server'); if (!interaction.guild) return interaction.editReply('This command must be used in a server');
const username = interaction.options.getString('username'); const user = interaction.options.getString('user', true);
const id = interaction.options.getString('id');
if (!username && !id) {
return interaction.editReply({ content: 'No username or id given.' });
}
try { try {
const e621User = await getE621User((id ?? username) as string); const e621User = await getE621User(user);
if (!e621User) { if (!e621User) {
return interaction.editReply('I got lost along the way. Who again?'); return interaction.editReply('I got lost along the way. Who again?');
+10 -16
View File
@@ -1,6 +1,8 @@
import { ApplicationIntegrationType, BitFieldResolvable, ChatInputCommandInteraction, Client, GuildBasedChannel, InteractionContextType, MessageFlags, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js'; import { ApplicationIntegrationType, BitFieldResolvable, ChatInputCommandInteraction, Client, GuildBasedChannel, InteractionContextType, MessageFlags, MessageMentions, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
import { channelIsInStaffCategory, handleWhoIsInteraction } from '../utils'; import { channelIsInStaffCategory, handleWhoIsInteraction } from '../utils';
const mentionRegex = new RegExp(MessageMentions.UsersPattern);
export default { export default {
name: 'whois', name: 'whois',
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
@@ -9,27 +11,19 @@ export default {
.setIntegrationTypes(ApplicationIntegrationType.GuildInstall) .setIntegrationTypes(ApplicationIntegrationType.GuildInstall)
.setContexts(InteractionContextType.Guild) .setContexts(InteractionContextType.Guild)
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers) .setDefaultMemberPermissions(PermissionFlagsBits.BanMembers)
.addUserOption(option =>
option
.setName('user')
.setDescription('The discord user to find the e621 user of.')
.setRequired(false)
)
.addStringOption(option => .addStringOption(option =>
option option
.setName('id') .setName('user')
.setDescription('The discord user id to find the e621 user of.') .setDescription('The discord user mention, or ID to find the e621 user of.')
.setRequired(false) .setRequired(true)
), ),
handler: async function (client: Client, interaction: ChatInputCommandInteraction) { handler: async function (client: Client, interaction: ChatInputCommandInteraction) {
const user = interaction.options.getUser('user'); const input = interaction.options.getString('user', true);
const id = interaction.options.getString('id');
if (!user && !id) { const matches = mentionRegex.exec(input);
return interaction.reply({ content: 'No user or id given.', flags: [MessageFlags.Ephemeral] }); mentionRegex.lastIndex = 0;
}
const idToUse = (user?.id ?? id) as string; const idToUse = matches ? matches.groups!.id : input;
handleWhoIsInteraction(interaction, idToUse, !(await channelIsInStaffCategory(interaction.channel as GuildBasedChannel))); handleWhoIsInteraction(interaction, idToUse, !(await channelIsInStaffCategory(interaction.channel as GuildBasedChannel)));
} }