Compare commits

...

3 commits

Author SHA1 Message Date
powermaker450 25a386cf1a Proper typings(?) 2024-10-13 18:31:41 -04:00
powermaker450 29d15301cb Ok maybe we shouldn't do that 2024-10-13 18:20:35 -04:00
powermaker450 914fd78ff6 Add a little disclaimer 2024-10-13 18:16:28 -04:00
6 changed files with 21 additions and 24 deletions

View file

@ -2,4 +2,5 @@
Anonymous confessions for Discord, free as in freedom and price!
This is a fun little side-project I started after wanting to have my own Discord confessions bot, as an alternative to some that already exist.
This is a fun little side-project I started after wanting to have my own Discord confessions bot, as an alternative to some that already exist. \
**As a result, this bot currently does not scale well. I may make it do so in the future, but it is not currently a priority.**

View file

@ -20,7 +20,7 @@ import {
ActionRowBuilder,
ButtonBuilder,
ButtonStyle,
CommandInteraction,
ChatInputCommandInteraction,
ComponentType,
EmbedBuilder,
SlashCommandBuilder,
@ -50,7 +50,7 @@ export const data = new SlashCommandBuilder()
.setDescription("The link to an image to attach (optional)")
);
export async function execute(interaction: CommandInteraction) {
export async function execute(interaction: ChatInputCommandInteraction) {
// TODO: This all works as intended, but I'd like for it so be a reusable function
// instead because all of this is reused in src/main.ts:56
try {
@ -73,12 +73,11 @@ export async function execute(interaction: CommandInteraction) {
.confessChannel;
const adminChannel = dt.getGuildInfo(interaction.guild?.id!)?.settings
.modChannel;
// @ts-ignore
const messageContent: string = `"${interaction.options.getString("message")}"`;
// @ts-ignore
const attachment: string = interaction.options.getString("attachment");
const isAttachment = (text: string) =>
const messageContent = `"${interaction.options.getString("message")}"`;
const attachment = interaction.options.getString("attachment")!;
const isAttachment = (text: string | null) =>
text && (text.startsWith("http://") || text.startsWith("https://"));
const color = getRandomColor();
@ -86,7 +85,6 @@ export async function execute(interaction: CommandInteraction) {
const userConfessionEmbed = new EmbedBuilder()
.setColor(color)
.setTitle(`Anonymous Confession \`${messageId}\``)
// @ts-ignore
.setDescription(messageContent);
isAttachment(attachment) && userConfessionEmbed.setImage(attachment);
@ -94,7 +92,6 @@ export async function execute(interaction: CommandInteraction) {
const adminConfessionEmbed = new EmbedBuilder()
.setColor(color)
.setTitle(`Anonymous Confession \`${messageId}\``)
// @ts-ignore
.setDescription(messageContent)
.addFields(
{

View file

@ -17,7 +17,7 @@
*/
import {
CommandInteraction,
ChatInputCommandInteraction,
PermissionFlagsBits,
SlashCommandBuilder
} from "discord.js";
@ -37,11 +37,10 @@ export const data = new SlashCommandBuilder()
)
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers);
export async function execute(interaction: CommandInteraction) {
export async function execute(interaction: ChatInputCommandInteraction) {
const result = dt.addBan(
interaction.guild?.id!,
// @ts-ignore
interaction.options.getString("id")
interaction.options.getString("id")!
);
try {

View file

@ -17,6 +17,7 @@
*/
import {
ChatInputCommandInteraction,
CommandInteraction,
EmbedBuilder,
SlashCommandBuilder,
@ -36,7 +37,7 @@ export const data = new SlashCommandBuilder()
option.setName("id").setDescription("The confession id").setRequired(true)
);
export async function execute(interaction: CommandInteraction) {
export async function execute(interaction: ChatInputCommandInteraction) {
if (!dt.getGuildInfo(interaction.guild?.id!)) {
return interaction.reply({
content:
@ -45,8 +46,7 @@ export async function execute(interaction: CommandInteraction) {
});
}
// @ts-ignore
const idVal = interaction.options.getString("id");
const idVal = interaction.options.getString("id")!;
const result = dt.getConfession(interaction.guild?.id!, idVal);
if (result) {
@ -71,8 +71,6 @@ export async function execute(interaction: CommandInteraction) {
});
});
dt.delConfesssion(interaction, idVal);
return interaction.reply({
content: "Confession removed.",
ephemeral: true

View file

@ -17,7 +17,7 @@
*/
import {
CommandInteraction,
ChatInputCommandInteraction,
PermissionFlagsBits,
SlashCommandBuilder
} from "discord.js";
@ -37,11 +37,10 @@ export const data = new SlashCommandBuilder()
)
.setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages);
export function execute(interaction: CommandInteraction) {
export function execute(interaction: ChatInputCommandInteraction) {
const result = dt.removeBan(
interaction.guild?.id!,
// @ts-ignore
interaction.options.getString("id")
interaction.options.getString("id")!
);
try {

View file

@ -20,6 +20,7 @@ import {
ActionRowBuilder,
ButtonBuilder,
ButtonStyle,
ChatInputCommandInteraction,
ComponentType,
EmbedBuilder,
Events,
@ -58,7 +59,9 @@ BotClient.on(Events.InteractionCreate, async interaction => {
const { commandName } = interaction;
if (commands[commandName as keyof typeof commands]) {
commands[commandName as keyof typeof commands].execute(interaction);
commands[commandName as keyof typeof commands].execute(
interaction as ChatInputCommandInteraction
);
}
});