Compare commits
7 commits
983bfcfc9e
...
f5f7b48935
Author | SHA1 | Date | |
---|---|---|---|
f5f7b48935 | |||
769fecfd87 | |||
0a3de197ff | |||
a6449b93e4 | |||
3b60fee0df | |||
5a6119bc42 | |||
2f7c03e011 |
7 changed files with 101 additions and 21 deletions
|
@ -24,9 +24,10 @@ export default {
|
|||
const member = args.user;
|
||||
const message = args.message;
|
||||
const attachment = args.image;
|
||||
const username = member.nickname ? member.nickname : member.user.username;
|
||||
|
||||
const webhook = await interaction.channel.createWebhook({
|
||||
name: member.user.username,
|
||||
name: username,
|
||||
avatar: member.user.displayAvatarURL(),
|
||||
reason: `Fakebot/user command triggered by: ${interaction.user.username}`,
|
||||
});
|
||||
|
@ -37,6 +38,12 @@ export default {
|
|||
await webhook.send({ content: message });
|
||||
}
|
||||
await webhook.delete(`Fakebot/user command triggered by: ${interaction.user.username}`);
|
||||
if (interaction.isMessage) {
|
||||
await interaction.delete();
|
||||
await interaction.deleteReply();
|
||||
}
|
||||
else {
|
||||
await interaction.editReply({ content: `Faked the user ${member}` });
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -176,7 +176,7 @@ export default {
|
|||
|
||||
const Embed = new EmbedBuilder()
|
||||
.setAuthor({ name: interaction.user.username, iconURL: interaction.user.displayAvatarURL() })
|
||||
.setDescription(tweet)
|
||||
.setDescription(tweet ? tweet : 'No content.')
|
||||
.addFields(
|
||||
{ name: 'Link', value: TweetLink, inline: true },
|
||||
{ name: 'Tweet ID', value: tweetid, inline: true },
|
||||
|
|
|
@ -3,9 +3,6 @@ import fs from 'node:fs';
|
|||
import os from 'node:os';
|
||||
import YTPGenerator from 'ytpplus-node';
|
||||
|
||||
const { prefix } = process.env;
|
||||
const prefixs = prefix.split(',');
|
||||
|
||||
export default {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('ytp')
|
||||
|
@ -16,7 +13,7 @@ export default {
|
|||
.setRequired(false)),
|
||||
category: 'fun',
|
||||
async execute(interaction, args) {
|
||||
if (!interaction.channel.nsfw && !args.force) return interaction.reply(`Please execute this command in an NSFW channel ( Content might not be NSFW but since the video are user submitted better safe than sorry ) OR do \`\`${prefixs[0]}ytp --force\`\` to make the command work outside of nsfw channel BE AWARE THAT IT WON'T CHANGE THE FINAL RESULT SO NSFW CAN STILL HAPPEN`);
|
||||
if (!interaction.channel.nsfw && !args.force) return interaction.reply(`Please execute this command in an NSFW channel ( Content might not be NSFW but since the video are user submitted better safe than sorry ) OR do \`\`${interaction.prefix}ytp --force\`\` to make the command work outside of nsfw channel BE AWARE THAT IT WON'T CHANGE THE FINAL RESULT SO NSFW CAN STILL HAPPEN`);
|
||||
|
||||
// Read userVid folder and select random vid and only take .mp4
|
||||
const mp4 = [];
|
||||
|
|
68
commands/owner/dm.js
Normal file
68
commands/owner/dm.js
Normal file
|
@ -0,0 +1,68 @@
|
|||
import { SlashCommandBuilder, EmbedBuilder } from 'discord.js';
|
||||
// const feedbackID = [];
|
||||
|
||||
export default {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('dm')
|
||||
.setDescription('Replies with Pong!')
|
||||
.addStringOption(option =>
|
||||
option.setName('userid')
|
||||
.setDescription('The user to who you want to send the message to.')
|
||||
.setRequired(true))
|
||||
.addStringOption(option =>
|
||||
option.setName('message')
|
||||
.setDescription('What do you want to tell them?')
|
||||
.setRequired(true))
|
||||
.addAttachmentOption(option =>
|
||||
option.setName('image')
|
||||
.setDescription('Optional attachment.')
|
||||
.setRequired(false)),
|
||||
category: 'owner',
|
||||
async execute(interaction, args, client) {
|
||||
/* Too lazy to implement that now (Watch it rest untouched for months)
|
||||
async function uuidv4() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
const uuid = uuidv4();
|
||||
feedbackID[uuid] = args.message;
|
||||
*/
|
||||
await client.users.fetch(args.userid);
|
||||
const user = client.users.resolve(args.userid);
|
||||
if (!user) return interaction.reply('Not a valid ID');
|
||||
const text = args.message;
|
||||
|
||||
const Embed = new EmbedBuilder()
|
||||
.setTitle('You received a message from the developer!')
|
||||
.setDescription(text)
|
||||
.setFooter({ text: `If you wish to respond use the following command: ${interaction.prefix}feedback <message>` })
|
||||
.setTimestamp();
|
||||
|
||||
user.send({ embeds: [Embed] });
|
||||
return interaction.reply({ content: `DM sent to ${user.username}`, ephemeral: true });
|
||||
/*
|
||||
const Attachment = (message.attachments).array();
|
||||
if (Attachment[0]) {
|
||||
client.users.resolve(user).send(Embed, { files: [Attachment[0].url] })
|
||||
.then(() => {
|
||||
return interaction.reply(`DM sent to ${user.username}`);
|
||||
})
|
||||
.catch(() => {
|
||||
return interaction.reply(`Could not send a DM to ${user.username}`);
|
||||
});
|
||||
}
|
||||
else {
|
||||
client.users.resolve(user).send(Embed)
|
||||
.then(() => {
|
||||
return interaction.reply(`DM sent to ${user.tag}`);
|
||||
})
|
||||
.catch(() => {
|
||||
return interaction.reply(`Could not send a DM to ${user.tag}`);
|
||||
});
|
||||
}
|
||||
*/
|
||||
},
|
||||
};
|
|
@ -25,7 +25,7 @@ export default {
|
|||
const client = interaction.client;
|
||||
const command = args.command;
|
||||
const userid = args.userid;
|
||||
const reason = args.reason;
|
||||
const reason = args.reason ? args.reason : 'No reason has been specified.';
|
||||
|
||||
const blacklist = await Blacklists.findOne({ where: { type:command, uid:userid } });
|
||||
|
||||
|
@ -33,12 +33,11 @@ export default {
|
|||
const body = { type:command, uid: userid, reason: reason };
|
||||
Blacklists.create(body);
|
||||
let user = userid;
|
||||
if (command !== 'guild') {
|
||||
await client.users.resolve(userid);
|
||||
user = client.users.fetch(userid).tag;
|
||||
}
|
||||
await client.users.fetch(userid);
|
||||
user = client.users.resolve(userid).tag;
|
||||
|
||||
return interaction.editReply(`${user} has been blacklisted from ${command} with the following reason ${reason}`);
|
||||
|
||||
return interaction.editReply(`${user} has been blacklisted from ${command} with the following reason \`${reason}\``);
|
||||
}
|
||||
else {
|
||||
const row = new ActionRowBuilder()
|
||||
|
@ -57,7 +56,7 @@ export default {
|
|||
|
||||
await interaction.editReply({ content: 'This user is already blacklisted, do you want to unblacklist him?', ephemeral: true, components: [row] });
|
||||
|
||||
interaction.client.on('interactionCreate', async (interactionMenu) => {
|
||||
interaction.client.once('interactionCreate', async (interactionMenu) => {
|
||||
if (interaction.user !== interactionMenu.user) return;
|
||||
if (!interactionMenu.isButton) return;
|
||||
interactionMenu.update({ components: [] });
|
||||
|
|
|
@ -75,6 +75,8 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
interaction.prefix = '/';
|
||||
|
||||
const args = {};
|
||||
// https://discord-api-types.dev/api/discord-api-types-v10/enum/ApplicationCommandOptionType
|
||||
interaction.options.data.forEach(arg => {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Make this shit work.
|
||||
*/
|
||||
|
||||
import { EmbedBuilder, PermissionFlagsBits } from 'discord.js';
|
||||
import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
|
||||
import db from '../../models/index.js';
|
||||
import { rand } from '../../utils/rand.js';
|
||||
const ratelimit = {};
|
||||
|
@ -337,6 +337,7 @@ export default {
|
|||
}
|
||||
message.user = message.author;
|
||||
message.isMessage = true;
|
||||
message.prefix = `${messageArray[0]} `;
|
||||
|
||||
let waitingmsg;
|
||||
const toDelete = [];
|
||||
|
@ -368,15 +369,23 @@ export default {
|
|||
msg.delete();
|
||||
});
|
||||
};
|
||||
const args = {};
|
||||
|
||||
const args = {};
|
||||
const argsLength = command.data.options.length;
|
||||
|
||||
command.data.options.forEach(obj => {
|
||||
if (obj.type === ApplicationCommandOptionType.Attachment) {
|
||||
args[obj.name] = message.attachments.first();
|
||||
}
|
||||
});
|
||||
|
||||
for (let i = 0, j = 0; i < argsLength; i++, j++) {
|
||||
if (!messageArgs[i]) continue;
|
||||
const arg = command.data.options[j];
|
||||
const type = arg.constructor.name.toLowerCase();
|
||||
if (arg.type === ApplicationCommandOptionType.Attachment) continue;
|
||||
let payloadName = arg.name;
|
||||
let payload = messageArgs[i];
|
||||
|
||||
if (i >= argsLength - 1) {
|
||||
payload = messageArgs.slice(i).join(' ');
|
||||
}
|
||||
|
@ -386,13 +395,11 @@ export default {
|
|||
payload = true;
|
||||
j--;
|
||||
}
|
||||
else if (type.includes('mentionable')) {
|
||||
|
||||
if (arg.type === ApplicationCommandOptionType.Mentionable) {
|
||||
await message.guild.members.fetch();
|
||||
payload = message.mentions.members.first() ? message.mentions.members.first() : message.guild.members.cache.find(u => u.user.username.toLowerCase().includes(payload.toLowerCase()));
|
||||
}
|
||||
else if (type.includes('attachment')) {
|
||||
payload = message.attachments.first();
|
||||
}
|
||||
|
||||
args[payloadName] = payload;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue