Compare commits

..

2 commits

Author SHA1 Message Date
98ea70d35b owner command 2022-06-20 11:42:20 +02:00
b435d1a72b Inspirobot 2022-06-20 11:42:12 +02:00
5 changed files with 61 additions and 3 deletions

View file

@ -0,0 +1,13 @@
import { SlashCommandBuilder } from '@discordjs/builders';
import fetch from 'node-fetch';
export default {
data: new SlashCommandBuilder()
.setName('inspirobot')
.setDescription('Get an image from inspirobot'),
async execute(interaction) {
fetch('http://inspirobot.me/api?generate=true')
.then(res => res.text())
.then(body => interaction.reply({ files: [body] }));
},
};

22
commands/owner/die.js Normal file
View file

@ -0,0 +1,22 @@
import { SlashCommandBuilder } from '@discordjs/builders';
import dotenv from 'dotenv';
import process from 'node:process';
dotenv.config();
const { ownerId } = process.env;
export default {
data: new SlashCommandBuilder()
.setName('die')
.setDescription('Kill the bot'),
async execute(interaction) {
if (interaction.user.id !== ownerId) {
return interaction.reply({ content: '❌ This command is reserved for the owner!', ephemeral: true });
}
console.log('\x1b[31m\x1b[47m\x1b[5mSHUTING DOWN!!!!!\x1b[0m');
await interaction.reply({ content: 'Good bye', ephemeral: true })
.then(() => {
console.log('\x1b[31m\x1b[47m\x1b[5mSHUTING DOWN!!!!!\x1b[0m');
process.exit(1);
});
},
};

View file

@ -45,6 +45,10 @@ const commands = [
option.setName('feedback') option.setName('feedback')
.setDescription('The message you want to send me.') .setDescription('The message you want to send me.')
.setRequired(true)), .setRequired(true)),
new SlashCommandBuilder()
.setName('inspirobot')
.setDescription('Get an image from inspirobot'),
] ]
.map(command => command.toJSON()); .map(command => command.toJSON());

18
deploy-owner-commands.cjs Normal file
View file

@ -0,0 +1,18 @@
const { SlashCommandBuilder } = require('@discordjs/builders');
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');
require('dotenv').config();
const { clientId, guildId, token } = process.env;
const commands = [
new SlashCommandBuilder()
.setName('die')
.setDescription('Kill the bot'),
]
.map(command => command.toJSON());
const rest = new REST({ version: '9' }).setToken(token);
rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands })
.then(() => console.log(`Successfully registered application commands for the guild ${guildId}.`))
.catch(console.error);

View file

@ -9,16 +9,17 @@ const { token } = process.env;
const __filename = fileURLToPath(import.meta.url); const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename); const __dirname = path.dirname(__filename);
const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); const client = new Client({ intents: [Intents.FLAGS.GUILDS], shards: 'auto' });
// Load commands // Load commands
client.commands = new Collection(); client.commands = new Collection();
await loadCommandFromDir('fun'); await loadCommandFromDir('fun');
await loadCommandFromDir('utility'); await loadCommandFromDir('utility');
await loadCommandFromDir('owner');
// Load events // Load events
loadEventFromDir('client', client); await loadEventFromDir('client', client);
loadEventFromDir('process', process); await loadEventFromDir('process', process);
client.login(token); client.login(token);