Move to scripts folder and add new owner commands
This commit is contained in:
parent
511111cf59
commit
4530b265e7
6 changed files with 154 additions and 24 deletions
37
commands/owner/deletetweet.js
Normal file
37
commands/owner/deletetweet.js
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import { SlashCommandBuilder } from '@discordjs/builders';
|
||||||
|
import Twit from 'twit';
|
||||||
|
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
dotenv.config();
|
||||||
|
const { twiConsumer, twiConsumerSecret, twiToken, twiTokenSecret } = process.env;
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName('deletewteet')
|
||||||
|
.setDescription('Delete a tweet')
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('tweetid')
|
||||||
|
.setDescription('The id of the tweet you wish to delete.')
|
||||||
|
.setRequired(true)),
|
||||||
|
ownerOnly: true,
|
||||||
|
async execute(interaction) {
|
||||||
|
await interaction.deferReply();
|
||||||
|
try {
|
||||||
|
const T = new Twit({
|
||||||
|
consumer_key: twiConsumer,
|
||||||
|
consumer_secret: twiConsumerSecret,
|
||||||
|
access_token: twiToken,
|
||||||
|
access_token_secret: twiTokenSecret,
|
||||||
|
});
|
||||||
|
|
||||||
|
T.post('statuses/destroy', {
|
||||||
|
id: interaction.options.getString('tweetid'),
|
||||||
|
});
|
||||||
|
return interaction.editReply('Tweet have been deleted!');
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
return interaction.editReply('Oh no, an error has occurred :(');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
|
@ -1,17 +1,12 @@
|
||||||
import { SlashCommandBuilder } from '@discordjs/builders';
|
import { SlashCommandBuilder } from '@discordjs/builders';
|
||||||
import dotenv from 'dotenv';
|
|
||||||
import process from 'node:process';
|
import process from 'node:process';
|
||||||
dotenv.config();
|
|
||||||
const { ownerId } = process.env;
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('die')
|
.setName('die')
|
||||||
.setDescription('Kill the bot'),
|
.setDescription('Kill the bot'),
|
||||||
|
ownerOnly: true,
|
||||||
async execute(interaction) {
|
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');
|
console.log('\x1b[31m\x1b[47m\x1b[5mSHUTING DOWN!!!!!\x1b[0m');
|
||||||
await interaction.reply({ content: 'Good bye', ephemeral: true })
|
await interaction.reply({ content: 'Good bye', ephemeral: true })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
|
70
commands/owner/ublacklist.js
Normal file
70
commands/owner/ublacklist.js
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
import { SlashCommandBuilder } from '@discordjs/builders';
|
||||||
|
import { MessageButton, MessageActionRow } from 'discord.js';
|
||||||
|
import db from '../../models/index.js';
|
||||||
|
const Blacklists = db.Blacklists;
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName('ublacklist')
|
||||||
|
.setDescription('Blacklist a user from the bot')
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('command')
|
||||||
|
.setDescription('Which command do you want to get a user blacklisted from?')
|
||||||
|
.setRequired(true))
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('userid')
|
||||||
|
.setDescription('Who do you want to blacklist?')
|
||||||
|
.setRequired(true))
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('reason')
|
||||||
|
.setDescription('The reason of the blacklist.')
|
||||||
|
.setRequired(false)),
|
||||||
|
ownerOnly: true,
|
||||||
|
async execute(interaction) {
|
||||||
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
const client = interaction.client;
|
||||||
|
const command = interaction.options.getString('command');
|
||||||
|
const userid = interaction.options.getString('userid');
|
||||||
|
const reason = interaction.options.getString('reason');
|
||||||
|
|
||||||
|
const blacklist = await Blacklists.findOne({ where: { type:command, uid:userid } });
|
||||||
|
|
||||||
|
if (!blacklist) {
|
||||||
|
const body = { type:command, uid: userid, reason: reason };
|
||||||
|
Blacklists.create(body);
|
||||||
|
let user = userid;
|
||||||
|
if (command !== 'guild') {user = client.users.resolve(userid).tag;}
|
||||||
|
|
||||||
|
return interaction.editReply(`${user} has been blacklisted from ${command} with the following reason ${reason}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const row = new MessageActionRow()
|
||||||
|
.addComponents(
|
||||||
|
new MessageButton()
|
||||||
|
.setCustomId('yes')
|
||||||
|
.setLabel('Yes')
|
||||||
|
.setStyle('PRIMARY'),
|
||||||
|
)
|
||||||
|
.addComponents(
|
||||||
|
new MessageButton()
|
||||||
|
.setCustomId('no')
|
||||||
|
.setLabel('No')
|
||||||
|
.setStyle('DANGER'),
|
||||||
|
);
|
||||||
|
|
||||||
|
await interaction.editReply({ content: 'This user is already blacklisted, do you want to unblacklist him?', ephemeral: true, components: [row] });
|
||||||
|
|
||||||
|
interaction.client.once('interactionCreate', async (interactionMenu) => {
|
||||||
|
if (!interactionMenu.isButton) return;
|
||||||
|
interactionMenu.update({ components: [] });
|
||||||
|
if (interactionMenu.customId === 'yes') {
|
||||||
|
Blacklists.destroy({ where: { type:command, uid:userid } });
|
||||||
|
return interaction.editReply(`The following ID have been unblacklisted from ${command}: ${userid}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return interaction.editReply('No one has been unblacklisted.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
|
@ -1,18 +0,0 @@
|
||||||
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);
|
|
|
@ -69,6 +69,10 @@ const commands = [
|
||||||
option.setName('board')
|
option.setName('board')
|
||||||
.setDescription('The board you wish to see')
|
.setDescription('The board you wish to see')
|
||||||
.setRequired(true)),
|
.setRequired(true)),
|
||||||
|
|
||||||
|
new SlashCommandBuilder()
|
||||||
|
.setName('donator')
|
||||||
|
.setDescription('All the people who donated for this bot <3'),
|
||||||
]
|
]
|
||||||
.map(command => command.toJSON());
|
.map(command => command.toJSON());
|
||||||
|
|
42
scripts/deploy-owner-commands.cjs
Normal file
42
scripts/deploy-owner-commands.cjs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
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'),
|
||||||
|
|
||||||
|
new SlashCommandBuilder()
|
||||||
|
.setName('ublacklist')
|
||||||
|
.setDescription('Blacklist a user from the bot')
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('command')
|
||||||
|
.setDescription('Which command do you want to get a user blacklisted from?')
|
||||||
|
.setRequired(true))
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('userid')
|
||||||
|
.setDescription('Who do you want to blacklist?')
|
||||||
|
.setRequired(true))
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('reason')
|
||||||
|
.setDescription('The reason of the blacklist.')
|
||||||
|
.setRequired(false)),
|
||||||
|
|
||||||
|
new SlashCommandBuilder()
|
||||||
|
.setName('deletewteet')
|
||||||
|
.setDescription('Delete a tweet')
|
||||||
|
.addStringOption(option =>
|
||||||
|
option.setName('tweetid')
|
||||||
|
.setDescription('The id of the tweet you wish to delete.')
|
||||||
|
.setRequired(true)),
|
||||||
|
]
|
||||||
|
.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);
|
Loading…
Reference in a new issue