Vylpes
ed8f5927c8
* Update discord.js * Migrate to slash commands * Clean up imports * Update permissions * Fix guild-specific commands not showing up * Fix changes requested
45 lines
No EOL
1.5 KiB
TypeScript
45 lines
No EOL
1.5 KiB
TypeScript
import { Command } from "../type/command";
|
|
import randomBunny from "random-bunny";
|
|
import { CommandInteraction, EmbedBuilder, SlashCommandBuilder } from "discord.js";
|
|
import EmbedColours from "../constants/EmbedColours";
|
|
|
|
export default class Bunny extends Command {
|
|
constructor() {
|
|
super();
|
|
|
|
super.CommandBuilder = new SlashCommandBuilder()
|
|
.setName("bunny")
|
|
.setDescription("Get a random picture of a rabbit.");
|
|
}
|
|
|
|
public override async execute(interaction: CommandInteraction) {
|
|
if (!interaction.isChatInputCommand()) return;
|
|
|
|
const subreddits = [
|
|
'rabbits',
|
|
'bunnieswithhats',
|
|
'buncomfortable',
|
|
'bunnytongues',
|
|
'dutchbunnymafia',
|
|
];
|
|
|
|
const random = Math.floor(Math.random() * subreddits.length);
|
|
const selectedSubreddit = subreddits[random];
|
|
|
|
const result = await randomBunny(selectedSubreddit, 'hot');
|
|
|
|
if (result.IsSuccess) {
|
|
const embed = new EmbedBuilder()
|
|
.setColor(EmbedColours.Ok)
|
|
.setTitle(result.Result!.Title)
|
|
.setDescription(result.Result!.Permalink)
|
|
.setImage(result.Result!.Url)
|
|
.setURL(`https://reddit.com${result.Result!.Permalink}`)
|
|
.setFooter({ text: `r/${selectedSubreddit} · ${result.Result!.Ups} upvotes`});
|
|
|
|
await interaction.reply({ embeds: [ embed ]});
|
|
} else {
|
|
await interaction.reply("There was an error running this command.");
|
|
}
|
|
}
|
|
} |