feat: add Cat module with /cat and /catgif commands using TheCatAPI
All checks were successful
Auto Build and Push Docker Image / build (push) Successful in 7s
All checks were successful
Auto Build and Push Docker Image / build (push) Successful in 7s
This commit is contained in:
40
src/commands/utility/cat.ts
Normal file
40
src/commands/utility/cat.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { SlashCommandBuilder, EmbedBuilder } from 'discord.js';
|
||||
import { Command } from '../../structures/Command.js';
|
||||
import { CatManager } from '../../structures/CatManager.js';
|
||||
|
||||
const command: Command = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('cat')
|
||||
.setDescription('Postet ein zufälliges Katzenbild oder Katzen-GIF.')
|
||||
.addStringOption(option =>
|
||||
option.setName('typ')
|
||||
.setDescription('Wähle zwischen Bild oder GIF')
|
||||
.setRequired(false)
|
||||
.addChoices(
|
||||
{ name: 'Bild', value: 'image' },
|
||||
{ name: 'GIF', value: 'gif' }
|
||||
))
|
||||
.setDMPermission(true),
|
||||
category: 'Public',
|
||||
async execute(interaction: any) {
|
||||
const type = (interaction.options.getString('typ') as 'image' | 'gif') || 'image';
|
||||
await interaction.deferReply();
|
||||
|
||||
const imageUrl = await CatManager.fetchCatImage(type);
|
||||
if (!imageUrl) {
|
||||
await interaction.editReply('❌ Konnte kein Katzenbild laden. Bitte versuche es später erneut.');
|
||||
return;
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(type === 'gif' ? '🐱 Zufälliges Katzen-GIF' : '🐱 Zufälliges Katzenbild')
|
||||
.setURL(imageUrl)
|
||||
.setImage(imageUrl)
|
||||
.setColor(0xf39c12)
|
||||
.setTimestamp();
|
||||
|
||||
await interaction.editReply({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
|
||||
export default command;
|
||||
Reference in New Issue
Block a user