diff --git a/src/commands/confess.ts b/src/commands/confess.ts index 50c7138..35ee041 100644 --- a/src/commands/confess.ts +++ b/src/commands/confess.ts @@ -18,12 +18,14 @@ import { CommandInteraction, + EmbedBuilder, SlashCommandBuilder, TextChannel, } from "discord.js"; import { BotClient } from "../bot"; import { dt } from "../main"; import { StoreMan } from "../storeman"; +import getRandomColor from "../utils/getRandomColor"; export const data = new SlashCommandBuilder() .setName("confess") @@ -36,7 +38,6 @@ export const data = new SlashCommandBuilder() ); export async function execute(interaction: CommandInteraction) { - if (dt.isBanned(interaction.guild?.id!, interaction.user.id)) { return interaction.reply({ content: "You are banned from confessions in this server!", @@ -52,25 +53,46 @@ export async function execute(interaction: CommandInteraction) { }); } + const confessChannel = dt.getGuildInfo(interaction.guild?.id!)?.settings .confessChannel; const adminChannel = dt.getGuildInfo(interaction.guild?.id!)?.settings .modChannel; + const color = getRandomColor(); const messageId = StoreMan.genId(); + const userConfessionEmbed = new EmbedBuilder() + .setColor(color) + .setTitle(`Anonymous Confession ${messageId}`) + // @ts-ignore + .setDescription(`"${interaction.options.getString("message")}"`); + + const adminConfessionEmbed = new EmbedBuilder() + .setColor(color) + .setTitle(`Anonymous Confession ${messageId}`) + // @ts-ignore + .setDescription(`"${interaction.options.getString("message")}"`) + .addFields({ + name: "Author", + value: interaction.user.displayName + }, + { + name: "Author ID", + value: interaction.user.id + } + ); + const message = await ( BotClient.channels.cache.get(confessChannel!) as TextChannel ) - .send( - // @ts-ignore - `# Confession ${messageId}:\n${interaction.options.getString("message")}`, - ); + .send({ + embeds: [userConfessionEmbed] + }); await (BotClient.channels.cache.get(adminChannel!) as TextChannel) - .send( - // @ts-ignore - `# Confession ${messageId}:\n### Author: ${interaction.user.displayName}\n### Author ID: ${interaction.user.id}\n${interaction.options.getString("message")}`, - ); + .send({ + embeds: [adminConfessionEmbed] + }); dt.addConfession(message, messageId, interaction.user.displayName, interaction.user.id); diff --git a/src/storeman/client.ts b/src/storeman/client.ts index 1d30a8c..e998041 100644 --- a/src/storeman/client.ts +++ b/src/storeman/client.ts @@ -189,6 +189,16 @@ export class StoreMan { return false; } + public getBans(guildId: string): string[] { + for (const guild of this.data) { + if (guild.id === guildId) { + return guild.settings.bans; + } + } + + return []; + } + // Attempts to ban a user from confessions. public addBan(guildId: string, confessionId: string): boolean { const confession = this.getConfession(guildId, confessionId); diff --git a/src/utils/getRandomColor.ts b/src/utils/getRandomColor.ts new file mode 100644 index 0000000..735661e --- /dev/null +++ b/src/utils/getRandomColor.ts @@ -0,0 +1,3 @@ +const getRandomColor = () => (Math.random() * 0xFFFFFF << 0); + +export default getRandomColor;