Compare commits

...

5 commits

12 changed files with 57 additions and 35 deletions

View file

@ -19,13 +19,13 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('yes')
.setCustomId(`yes${interaction.user.id}`)
.setLabel('Yes')
.setStyle(ButtonStyle.Primary),
)
.addComponents(
new ButtonBuilder()
.setCustomId('no')
.setCustomId(`no${interaction.user.id}`)
.setLabel('No')
.setStyle(ButtonStyle.Danger),
);
@ -36,7 +36,7 @@ export default {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isButton) return;
interactionMenu.update({ components: [] });
if (interactionMenu.customId === 'yes') {
if (interactionMenu.customId === `yes${interaction.user.id}`) {
const body = { serverID: interaction.guild.id, stat: 'disable' };
await db.autoresponseStat.update(body, { where: { serverID: interaction.guild.id } });
return interaction.editReply({ content: 'Auto response has been disabled.', ephemeral: true });

View file

@ -25,19 +25,19 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('edit')
.setCustomId(`edit${interaction.user.id}`)
.setLabel('Edit')
.setStyle(ButtonStyle.Primary),
)
.addComponents(
new ButtonBuilder()
.setCustomId('remove')
.setCustomId(`remove${interaction.user.id}`)
.setLabel('Remove')
.setStyle(ButtonStyle.Danger),
)
.addComponents(
new ButtonBuilder()
.setCustomId('nothing')
.setCustomId(`nothing${interaction.user.id}`)
.setLabel('Do nothing')
.setStyle(ButtonStyle.Secondary),
);
@ -48,7 +48,7 @@ export default {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isButton) return;
interactionMenu.update({ components: [] });
if (interactionMenu.customId === 'edit') {
if (interactionMenu.customId === `edit${interaction.user.id}`) {
if (!args.message) {
return interaction.reply({ content: 'You need to input a message for me to edit!', ephemeral: true });
}
@ -56,7 +56,7 @@ export default {
await db.leaveChannel.update(body, { where: { guildID: interaction.guild.id } });
return interaction.editReply({ content: `The leave message has been set to ${args.message}`, ephemeral: true });
}
else if (interactionMenu.customId === 'remove') {
else if (interactionMenu.customId === `remove${interaction.user.id}`) {
db.leaveChannel.destroy({ where: { guildID: interaction.guild.id, channelID: interaction.channel.id } });
return interaction.editReply({ content: 'The leave message has been deleted.', ephemeral: true });
}

View file

@ -19,13 +19,13 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('yes')
.setCustomId(`yes${interaction.user.id}`)
.setLabel('Yes')
.setStyle(ButtonStyle.Primary),
)
.addComponents(
new ButtonBuilder()
.setCustomId('no')
.setCustomId(`no${interaction.user.id}`)
.setLabel('No')
.setStyle(ButtonStyle.Danger),
);
@ -36,7 +36,7 @@ export default {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isButton) return;
interactionMenu.update({ components: [] });
if (interactionMenu.customId === 'yes') {
if (interactionMenu.customId === `yes${interaction.user.id}`) {
const body = { serverID: interaction.guild.id, stat: 'disable' };
await db.quotationStat.update(body, { where: { serverID: interaction.guild.id } });
return interaction.editReply({ content: 'Quotation has been disabled.', ephemeral: true });

View file

@ -26,19 +26,19 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('edit')
.setCustomId(`edit${interaction.user.id}`)
.setLabel('Edit')
.setStyle(ButtonStyle.Primary),
)
.addComponents(
new ButtonBuilder()
.setCustomId('remove')
.setCustomId(`remove${interaction.user.id}`)
.setLabel('Remove')
.setStyle(ButtonStyle.Danger),
)
.addComponents(
new ButtonBuilder()
.setCustomId('nothing')
.setCustomId(`nothing${interaction.user.id}`)
.setLabel('Do nothing')
.setStyle(ButtonStyle.Secondary),
);
@ -49,7 +49,7 @@ export default {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isButton) return;
interactionMenu.update({ components: [] });
if (interactionMenu.customId === 'edit') {
if (interactionMenu.customId === `edit${interaction.user.id}`) {
if (!args.message) {
return interaction.reply({ content: 'You need to input a message for me to edit!', ephemeral: true });
}
@ -57,7 +57,7 @@ export default {
await db.joinChannel.update(body, { where: { guildID: interaction.guild.id } });
return interaction.editReply({ content: `The join message has been set to ${args.message}`, ephemeral: true });
}
else if (interactionMenu.customId === 'remove') {
else if (interactionMenu.customId === `remove${interaction.user.id}`) {
db.joinChannel.destroy({ where: { guildID: interaction.guild.id, channelID: interaction.channel.id } });
return interaction.editReply({ content: 'The join message has been deleted.', ephemeral: true });
}

View file

@ -41,13 +41,13 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('yes')
.setCustomId(`yes${interaction.user.id}`)
.setLabel('Yes')
.setStyle(ButtonStyle.Primary),
)
.addComponents(
new ButtonBuilder()
.setCustomId('no')
.setCustomId(`no${interaction.user.id}`)
.setLabel('No')
.setStyle(ButtonStyle.Danger),
);
@ -58,7 +58,7 @@ export default {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isButton) return;
interactionMenu.update({ components: [] });
if (interactionMenu.customId === 'yes') {
if (interactionMenu.customId === `yes${interaction.user.id}`) {
Blacklists.destroy({ where: { type:command, uid:userid } });
return interaction.editReply(`The following ID have been unblacklisted from ${command}: ${userid}`);
}

View file

@ -90,7 +90,7 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new SelectMenuBuilder()
.setCustomId('downloadQuality')
.setCustomId(`downloadQuality${interaction.user.id}`)
.setPlaceholder('Nothing selected')
.setMinValues(1)
.setMaxValues(2)
@ -103,7 +103,7 @@ export default {
client.on('interactionCreate', async (interactionMenu) => {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isSelectMenu()) return;
if (interactionMenu.customId === 'downloadQuality') {
if (interactionMenu.customId === `downloadQuality${interaction.user.id}`) {
await interactionMenu.deferReply({ ephemeral: false });
download(url, interactionMenu, interaction);
}
@ -121,7 +121,7 @@ async function download(url, interaction, originalInteraction) {
.setAuthor({ name: `Downloaded by ${interaction.user.tag}`, iconURL: interaction.user.displayAvatarURL(), url: url })
.setFooter({ text: `You can get the original video by clicking on the "Downloaded by ${interaction.user.tag}" message!` });
if (interaction.customId === 'downloadQuality') {
if (interaction.customId === `downloadQuality${interaction.user.id}`) {
format = interaction.values[0];
if (interaction.values[1]) format += '+' + interaction.values[1];
}
@ -148,7 +148,7 @@ async function download(url, interaction, originalInteraction) {
const row = new ActionRowBuilder()
.addComponents(
new SelectMenuBuilder()
.setCustomId('preset')
.setCustomId(`preset${interaction.user.id}`)
.setPlaceholder('Nothing selected')
.addOptions(options),
);
@ -158,7 +158,7 @@ async function download(url, interaction, originalInteraction) {
client.on('interactionCreate', async (interactionMenu) => {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isSelectMenu()) return;
if (interactionMenu.customId === 'preset') {
if (interactionMenu.customId === `preset${interaction.user.id}`) {
await interactionMenu.deferReply({ ephemeral: false });
compress(file, interactionMenu, Embed);
if (interaction.isMessage) cleanUp();

View file

@ -10,7 +10,11 @@ export default {
.addStringOption(option =>
option.setName('feedback')
.setDescription('The message you want to send me.')
.setRequired(true)),
.setRequired(true))
.addAttachmentOption(option =>
option.setName('image')
.setDescription('Optional attachment.')
.setRequired(false)),
category: 'utility',
async execute(interaction, args) {
const Embed = new EmbedBuilder()
@ -27,7 +31,12 @@ export default {
}
const channel = interaction.client.channels.resolve(feedbackChannelId);
channel.send({ embeds: [Embed] });
if (args.image) {
channel.send({ embeds: [Embed], files: [args.image] });
}
else {
channel.send({ embeds: [Embed] });
}
await interaction.reply({ content: 'Your feedback has been sent! Don\'t forget to have dm open if you want to get an answer from the dev!', ephemeral: true });
},
};

View file

@ -18,13 +18,13 @@ export default {
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('yes')
.setCustomId(`yes${interaction.user.id}`)
.setLabel('Yes')
.setStyle(ButtonStyle.Primary),
)
.addComponents(
new ButtonBuilder()
.setCustomId('no')
.setCustomId(`no${interaction.user.id}`)
.setLabel('No')
.setStyle(ButtonStyle.Danger),
);
@ -35,7 +35,7 @@ export default {
if (interaction.user !== interactionMenu.user) return;
if (!interactionMenu.isButton) return;
interactionMenu.update({ components: [] });
if (interactionMenu.customId === 'yes') {
if (interactionMenu.customId === `yes${interaction.user.id}`) {
await db.optout.destroy({ where: { userID: interaction.user.id } });
return interaction.editReply('You have successfully been opt in');
}

View file

@ -4,6 +4,7 @@ import fs from 'node:fs';
import os from 'node:os';
import path from 'node:path';
import { exec } from 'node:child_process';
const { NODE_ENV } = process.env;
export default {
@ -68,6 +69,7 @@ async function gifski(output, input) {
if (stderr) {
console.error(stderr);
}
console.log(NODE_ENV === 'development' ? stdout : null);
resolve();
});
});
@ -82,6 +84,7 @@ async function gifsicle(input, output) {
if (stderr) {
console.error(stderr);
}
console.log(NODE_ENV === 'development' ? stdout : null);
resolve();
});
});

View file

@ -370,15 +370,17 @@ export default {
};
const args = {};
for (let i = 0; i < command.data.options.length; i++) {
for (let i = 0, j = 0; i < command.data.options.length; i++, j++) {
if (!messageArgs[i]) continue;
const arg = command.data.options[i];
const arg = command.data.options[j];
const type = arg.constructor.name.toLowerCase();
let payloadName = arg.name;
let payload = messageArgs[i];
if (payload.startsWith('--')) {
arg.name = payload.substring(2);
if (messageArgs[i].startsWith('--')) {
payloadName = payload.substring(2);
payload = true;
j--;
}
else if (type.includes('mentionable')) {
payload = message.mentions.members.first();
@ -387,7 +389,7 @@ export default {
payload = message.attachments.first();
}
args[arg.name] = payload;
args[payloadName] = payload;
}
await command.execute(message, args, client);
}

View file

@ -49,7 +49,11 @@ const commands = [
.addStringOption(option =>
option.setName('feedback')
.setDescription('The message you want to send me.')
.setRequired(true)),
.setRequired(true))
.addAttachmentOption(option =>
option.setName('image')
.setDescription('Optional attachment.')
.setRequired(false)),
new SlashCommandBuilder()
.setName('inspirobot')

View file

@ -1,5 +1,6 @@
import os from 'node:os';
import { exec } from 'node:child_process';
const { NODE_ENV } = process.env;
export default {
downloadVideo,
@ -17,6 +18,7 @@ async function downloadVideo(urlArg, output, format = 'bestvideo*+bestaudio/best
if (stderr) {
console.error(stderr);
}
console.log(NODE_ENV === 'development' ? stdout : null);
resolve();
});
});
@ -45,6 +47,7 @@ async function ffmpeg(command) {
if (stderr) {
console.error(stderr);
}
console.log(NODE_ENV === 'development' ? stdout : null);
resolve();
});
});
@ -69,6 +72,7 @@ async function compressVideo(input, output, preset) {
if (stderr) {
console.error(stderr);
}
console.log(NODE_ENV === 'development' ? stdout : null);
resolve();
});
});