Updated command files
This commit is contained in:
parent
6752829876
commit
bc818511d5
10 changed files with 411 additions and 570 deletions
|
@ -1,51 +1,48 @@
|
||||||
const Discord = require("discord.js");
|
|
||||||
const messages = require("../utils/messages");
|
const messages = require("../utils/messages");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
description: "Create a drop giveaway",
|
|
||||||
|
description: 'Create a drop giveaway',
|
||||||
|
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: "winners",
|
name: 'winners',
|
||||||
description: "How many winners the giveaway should have",
|
description: 'How many winners the giveaway should have',
|
||||||
type: Discord.ApplicationCommandOptionType.Integer,
|
type: 'INTEGER',
|
||||||
required: true,
|
required: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "prize",
|
name: 'prize',
|
||||||
description: "What the prize of the giveaway should be",
|
description: 'What the prize of the giveaway should be',
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
type: 'STRING',
|
||||||
required: true,
|
required: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "channel",
|
name: 'channel',
|
||||||
description: "The channel to start the giveaway in",
|
description: 'The channel to start the giveaway in',
|
||||||
type: Discord.ApplicationCommandOptionType.Channel,
|
type: 'CHANNEL',
|
||||||
required: true,
|
required: true
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
|
|
||||||
// If the member doesn't have enough permissions
|
// If the member doesn't have enough permissions
|
||||||
if (
|
if(!interaction.member.permissions.has('MANAGE_MESSAGES') && !interaction.member.roles.cache.some((r) => r.name === "Giveaways")){
|
||||||
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
||||||
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
||||||
) {
|
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content:
|
content: ':x: You need to have the manage messages permissions to start giveaways.',
|
||||||
":x: You need to have the manage messages permissions to start giveaways.",
|
ephemeral: true
|
||||||
ephemeral: true,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const giveawayChannel = interaction.options.getChannel("channel");
|
const giveawayChannel = interaction.options.getChannel('channel');
|
||||||
const giveawayWinnerCount = interaction.options.getInteger("winners");
|
const giveawayWinnerCount = interaction.options.getInteger('winners');
|
||||||
const giveawayPrize = interaction.options.getString("prize");
|
const giveawayPrize = interaction.options.getString('prize');
|
||||||
|
|
||||||
if (!giveawayChannel.isTextBased()) {
|
if(!giveawayChannel.isText()) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content: ":x: Selected channel is not text-based.",
|
content: ':x: Selected channel is not text-based.',
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,9 +57,10 @@ module.exports = {
|
||||||
// specify drop
|
// specify drop
|
||||||
isDrop: true,
|
isDrop: true,
|
||||||
// Messages
|
// Messages
|
||||||
messages,
|
messages
|
||||||
});
|
});
|
||||||
|
|
||||||
interaction.reply(`Giveaway started in ${giveawayChannel}!`);
|
interaction.reply(`Giveaway started in ${giveawayChannel}!`);
|
||||||
},
|
|
||||||
|
}
|
||||||
};
|
};
|
|
@ -1,71 +1,65 @@
|
||||||
const Discord = require("discord.js");
|
const ms = require('ms');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
description: "End a giveaway",
|
|
||||||
|
description: 'End a giveaway',
|
||||||
|
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: "giveaway",
|
name: 'giveaway',
|
||||||
description: "The giveaway to end (message ID or giveaway prize)",
|
description: 'The giveaway to end (message ID or giveaway prize)',
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
type: 'STRING',
|
||||||
required: true,
|
required: true
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
|
|
||||||
// If the member doesn't have enough permissions
|
// If the member doesn't have enough permissions
|
||||||
if (
|
if(!interaction.member.permissions.has('MANAGE_MESSAGES') && !interaction.member.roles.cache.some((r) => r.name === "Giveaways")){
|
||||||
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
||||||
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
||||||
) {
|
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content:
|
content: ':x: You need to have the manage messages permissions to end giveaways.',
|
||||||
":x: You need to have the manage messages permissions to end giveaways.",
|
ephemeral: true
|
||||||
ephemeral: true,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const query = interaction.options.getString("giveaway");
|
const query = interaction.options.getString('giveaway');
|
||||||
|
|
||||||
// try to found the giveaway with prize then with ID
|
// try to found the giveaway with prize then with ID
|
||||||
const giveaway =
|
const giveaway =
|
||||||
// Search with giveaway prize
|
// Search with giveaway prize
|
||||||
client.giveawaysManager.giveaways.find(
|
client.giveawaysManager.giveaways.find((g) => g.prize === query && g.guildId === interaction.guild.id) ||
|
||||||
(g) => g.prize === query && g.guildId === interaction.guild.id
|
|
||||||
) ||
|
|
||||||
// Search with giveaway ID
|
// Search with giveaway ID
|
||||||
client.giveawaysManager.giveaways.find(
|
client.giveawaysManager.giveaways.find((g) => g.messageId === query && g.guildId === interaction.guild.id);
|
||||||
(g) => g.messageId === query && g.guildId === interaction.guild.id
|
|
||||||
);
|
|
||||||
|
|
||||||
// If no giveaway was found
|
// If no giveaway was found
|
||||||
if (!giveaway) {
|
if (!giveaway) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content: "Unable to find a giveaway for `" + query + "`.",
|
content: 'Unable to find a giveaway for `'+ query + '`.',
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (giveaway.ended) {
|
if (giveaway.ended) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content: "This giveaway is already ended.",
|
content: 'This giveaway is already ended.',
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit the giveaway
|
// Edit the giveaway
|
||||||
client.giveawaysManager
|
client.giveawaysManager.end(giveaway.messageId)
|
||||||
.end(giveaway.messageId)
|
|
||||||
// Success message
|
// Success message
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// Success message
|
// Success message
|
||||||
interaction.reply("Giveaway ended!");
|
interaction.reply('Giveaway ended!');
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
interaction.reply({
|
interaction.reply({
|
||||||
content: e,
|
content: e,
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
|
||||||
|
}
|
||||||
};
|
};
|
|
@ -1,37 +1,41 @@
|
||||||
const messages = require("../utils/messages");
|
const message = require('../utils/messages');
|
||||||
const { EmbedBuilder, MessageActionRow, MessageButton } = require("discord.js");
|
const {
|
||||||
|
MessageEmbed,
|
||||||
|
MessageActionRow,
|
||||||
|
MessageButton
|
||||||
|
} = require('discord.js');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "help",
|
name: "help",
|
||||||
description: "Get all Bot Commands",
|
description: "Get all Bot Commands",
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
let helpembed = new EmbedBuilder();
|
|
||||||
helpembed.setColor("RANDOM");
|
|
||||||
helpembed.setAuthor({ name: `Commands of ${client.user.username}` });
|
|
||||||
helpembed.setColor("#2f3136");
|
|
||||||
helpembed.setThumbnail(
|
|
||||||
"https://cdn.discordapp.com/avatars/608119997713350679/d71c7cbb2ba132867367ed47261aea6d.png"
|
|
||||||
);
|
|
||||||
client.commands.map((cmd) => {
|
|
||||||
helpembed.addField(`\`${cmd.name}\``, `${cmd.description}`, true);
|
|
||||||
});
|
|
||||||
helpembed.setTimestamp();
|
|
||||||
helpembed.setFooter({ text: `© EmotionChild | Have a nice day!` });
|
|
||||||
|
|
||||||
const row = new MessageActionRow().addComponents(
|
let helpembed = new MessageEmbed()
|
||||||
new MessageButton()
|
helpembed.setColor("RANDOM")
|
||||||
.setEmoji("865572290065072128")
|
helpembed.setAuthor(
|
||||||
.setLabel(`Invite ${client.user.username}`)
|
`Commands of ${client.user.username}`
|
||||||
.setURL(
|
|
||||||
`https://discord.com/api/oauth2/authorize?client_id=726333575091454002&permissions=8&scope=bot%20applications.commands`
|
|
||||||
)
|
)
|
||||||
.setStyle("LINK")
|
helpembed.setColor("#2f3136")
|
||||||
|
helpembed.setThumbnail("https://cdn.discordapp.com/avatars/608119997713350679/d71c7cbb2ba132867367ed47261aea6d.png")
|
||||||
|
client.commands.map((cmd) => {
|
||||||
|
helpembed.addField(
|
||||||
|
`\`${cmd.name}\``,
|
||||||
|
`${cmd.description}`,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
})
|
||||||
|
helpembed.setTimestamp()
|
||||||
|
helpembed.setFooter(`© EmotionChild | Have a nice day!`);
|
||||||
|
|
||||||
|
const row = new MessageActionRow()
|
||||||
|
.addComponents(
|
||||||
|
new MessageButton()
|
||||||
|
.setEmoji('865572290065072128')
|
||||||
|
.setLabel(`Invite ${client.user.username}`)
|
||||||
|
.setURL(`https://discord.com/api/oauth2/authorize?client_id=726333575091454002&permissions=8&scope=bot%20applications.commands`)
|
||||||
|
.setStyle('LINK'),
|
||||||
);
|
);
|
||||||
|
|
||||||
await interaction.reply({
|
await interaction.reply({ embeds: [helpembed],components: [row], ephemeral: true });
|
||||||
embeds: [helpembed],
|
|
||||||
components: [row],
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
};
|
};
|
|
@ -1,30 +1,29 @@
|
||||||
const messages = require("../utils/messages");
|
const messages = require('../utils/messages');
|
||||||
const { EmbedBuilder, MessageActionRow, MessageButton } = require("discord.js");
|
const {
|
||||||
|
MessageEmbed,
|
||||||
|
MessageActionRow,
|
||||||
|
MessageButton
|
||||||
|
} = require('discord.js');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "invite",
|
name: "invite",
|
||||||
description: "Get Invite Link for Giveaway Child",
|
description: "Get Invite Link for Holana",
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
let invite = new EmbedBuilder()
|
|
||||||
.setTitle(`${interaction.user.tag}`)
|
|
||||||
.setDescription("You can invite the bot by clicking on the below button.")
|
|
||||||
.setColor("#2f3136")
|
|
||||||
.setFooter({ text: `© EmotionChild | Have a nice day!` });
|
|
||||||
|
|
||||||
const row = new MessageActionRow().addComponents(
|
let invite = new MessageEmbed()
|
||||||
|
.setAuthor(`Invite of ${client.user.username}`, `${client.user.displayAvatarURL({ format: 'png' })}`)
|
||||||
|
.setColor("#2f3136")
|
||||||
|
.setFooter(`© EmotionChild | Have a nice day!`);
|
||||||
|
|
||||||
|
const row = new MessageActionRow()
|
||||||
|
.addComponents(
|
||||||
new MessageButton()
|
new MessageButton()
|
||||||
.setEmoji("865572290065072128")
|
.setEmoji('865572290065072128')
|
||||||
.setLabel(`Invite ${client.user.username}`)
|
.setLabel(`Invite ${client.user.username}`)
|
||||||
.setURL(
|
.setURL(`https://discord.com/api/oauth2/authorize?client_id=726333575091454002&permissions=8&scope=bot%20applications.commands`)
|
||||||
`https://discord.com/api/oauth2/authorize?client_id=910559370843131944&permissions=8&scope=bot%20applications.commands`
|
.setStyle('LINK'),
|
||||||
)
|
|
||||||
.setStyle("LINK")
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await interaction.reply({
|
await interaction.reply({ embeds: [invite],components: [row], ephemeral: true });
|
||||||
embeds: [invite],
|
|
||||||
components: [row],
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
};
|
};
|
|
@ -1,71 +0,0 @@
|
||||||
const Discord = require("discord.js");
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
description: "Pause a giveaway",
|
|
||||||
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: "giveaway",
|
|
||||||
description: "The giveaway to pause (message ID or giveaway prize)",
|
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
run: async (client, interaction) => {
|
|
||||||
// If the member doesn't have enough permissions
|
|
||||||
if (
|
|
||||||
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
||||||
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
||||||
) {
|
|
||||||
return interaction.reply({
|
|
||||||
content:
|
|
||||||
":x: You need to have the manage messages permissions to pause giveaways.",
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const query = interaction.options.getString("giveaway");
|
|
||||||
|
|
||||||
// try to found the giveaway with prize then with ID
|
|
||||||
const giveaway =
|
|
||||||
// Search with giveaway prize
|
|
||||||
client.giveawaysManager.giveaways.find(
|
|
||||||
(g) => g.prize === query && g.guildId === interaction.guild.id
|
|
||||||
) ||
|
|
||||||
// Search with giveaway ID
|
|
||||||
client.giveawaysManager.giveaways.find(
|
|
||||||
(g) => g.messageId === query && g.guildId === interaction.guild.id
|
|
||||||
);
|
|
||||||
|
|
||||||
// If no giveaway was found
|
|
||||||
if (!giveaway) {
|
|
||||||
return interaction.reply({
|
|
||||||
content: "Unable to find a giveaway for `" + query + "`.",
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (giveaway.pauseOptions.isPaused) {
|
|
||||||
return interaction.reply({
|
|
||||||
content: "This giveaway is already paused.",
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Edit the giveaway
|
|
||||||
client.giveawaysManager
|
|
||||||
.pause(giveaway.messageId)
|
|
||||||
// Success message
|
|
||||||
.then(() => {
|
|
||||||
// Success message
|
|
||||||
interaction.reply("Giveaway paused!");
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
interaction.reply({
|
|
||||||
content: e,
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,30 +1,30 @@
|
||||||
const messages = require("../utils/messages");
|
const messages = require('../utils/messages');
|
||||||
const { EmbedBuilder } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "ping",
|
name: "ping",
|
||||||
description: "Tells a bot latency,",
|
description: "Tells the bot's latency,",
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
// If the member doesn't have enough permissions
|
// If the member doesn't have enough permissions
|
||||||
if (!interaction.member.permissions.has("SEND_MESSAGES")) {
|
if (!interaction.member.permissions.has("SEND_MESSAGES")) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content:
|
content:
|
||||||
":x: You need to have the right permissions to use this command.",
|
":x: You need to have the manage messages permissions to start giveaways.",
|
||||||
ephemeral: true,
|
ephemeral: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let circles = {
|
let circles = {
|
||||||
green: "<:online:903711513183940669>",
|
green: "<:online:885049752297824276>",
|
||||||
yellow: "<:idle:903711513490112512> ",
|
yellow: "<:idle:885049726460899339>",
|
||||||
red: "<:dnd:903711513066487851>",
|
red: "<:offline:885049312877346817>",
|
||||||
};
|
};
|
||||||
|
|
||||||
let botping = new EmbedBuilder()
|
let botping = new MessageEmbed()
|
||||||
.setTitle(`${client.user.username} Ping`)
|
.setTitle(`${client.user.name} Ping`)
|
||||||
.setColor("2f3136")
|
.setColor("2f3136")
|
||||||
.addFields({
|
.addFields({
|
||||||
name: "<:connection2:896715171454677013> Bot Ping:",
|
name: "<:link:911514727375577088> Bot Ping:",
|
||||||
value: `${
|
value: `${
|
||||||
client.ws?.ping <= 200
|
client.ws?.ping <= 200
|
||||||
? circles.green
|
? circles.green
|
||||||
|
|
|
@ -1,70 +1,62 @@
|
||||||
const Discord = require("discord.js");
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
description: "Reroll a giveaway",
|
|
||||||
|
description: 'Reroll a giveaway',
|
||||||
|
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: "giveaway",
|
name: 'giveaway',
|
||||||
description: "The giveaway to reroll (message ID or prize)",
|
description: 'The giveaway to reroll (message ID or prize)',
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
type: 'STRING',
|
||||||
required: true,
|
required: true
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
|
|
||||||
// If the member doesn't have enough permissions
|
// If the member doesn't have enough permissions
|
||||||
if (
|
if(!interaction.member.permissions.has('MANAGE_MESSAGES') && !interaction.member.roles.cache.some((r) => r.name === "Giveaways")){
|
||||||
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
||||||
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
||||||
) {
|
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content:
|
content: ':x: You need to have the manage messages permissions to reroll giveaways.',
|
||||||
":x: You need to have the manage messages permissions to reroll giveaways.",
|
ephemeral: true
|
||||||
ephemeral: true,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const query = interaction.options.getString("giveaway");
|
const query = interaction.options.getString('giveaway');
|
||||||
|
|
||||||
// try to found the giveaway with prize then with ID
|
// try to found the giveaway with prize then with ID
|
||||||
const giveaway =
|
const giveaway =
|
||||||
// Search with giveaway prize
|
// Search with giveaway prize
|
||||||
client.giveawaysManager.giveaways.find(
|
client.giveawaysManager.giveaways.find((g) => g.prize === query && g.guildId === interaction.guild.id) ||
|
||||||
(g) => g.prize === query && g.guildId === interaction.guild.id
|
|
||||||
) ||
|
|
||||||
// Search with giveaway ID
|
// Search with giveaway ID
|
||||||
client.giveawaysManager.giveaways.find(
|
client.giveawaysManager.giveaways.find((g) => g.messageId === query && g.guildId === interaction.guild.id);
|
||||||
(g) => g.messageId === query && g.guildId === interaction.guild.id
|
|
||||||
);
|
|
||||||
|
|
||||||
// If no giveaway was found
|
// If no giveaway was found
|
||||||
if (!giveaway) {
|
if (!giveaway) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content: "Unable to find a giveaway for `" + query + "`.",
|
content: 'Unable to find a giveaway for `'+ query +'`.',
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!giveaway.ended) {
|
if (!giveaway.ended) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content: "The giveaway is not ended yet.",
|
content: 'The giveaway is not ended yet.',
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reroll the giveaway
|
// Reroll the giveaway
|
||||||
client.giveawaysManager
|
client.giveawaysManager.reroll(giveaway.messageId)
|
||||||
.reroll(giveaway.messageId)
|
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// Success message
|
// Success message
|
||||||
interaction.reply("Giveaway rerolled!");
|
interaction.reply('Giveaway rerolled!');
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
interaction.reply({
|
interaction.reply({
|
||||||
content: e,
|
content: e,
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
|
||||||
|
}
|
||||||
};
|
};
|
|
@ -1,60 +1,56 @@
|
||||||
const Discord = require("discord.js");
|
const ms = require('ms');
|
||||||
const ms = require("ms");
|
|
||||||
const messages = require("../utils/messages");
|
const messages = require("../utils/messages");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
description: "Start a giveaway",
|
|
||||||
|
description: 'Start a giveaway',
|
||||||
|
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: "duration",
|
name: 'duration',
|
||||||
description:
|
description: 'How long the giveaway should last for. Example values: 1m, 1h, 1d',
|
||||||
"How long the giveaway should last for. Example values: 1m, 1h, 1d",
|
type: 'STRING',
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
required: true
|
||||||
required: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "winners",
|
name: 'winners',
|
||||||
description: "How many winners the giveaway should have",
|
description: 'How many winners the giveaway should have',
|
||||||
type: Discord.ApplicationCommandOptionType.Integer,
|
type: 'INTEGER',
|
||||||
required: true,
|
required: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "prize",
|
name: 'prize',
|
||||||
description: "What the prize of the giveaway should be",
|
description: 'What the prize of the giveaway should be',
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
type: 'STRING',
|
||||||
required: true,
|
required: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "channel",
|
name: 'channel',
|
||||||
description: "The channel to start the giveaway in",
|
description: 'The channel to start the giveaway in',
|
||||||
type: Discord.ApplicationCommandOptionType.Channel,
|
type: 'CHANNEL',
|
||||||
required: true,
|
required: true
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
|
|
||||||
// If the member doesn't have enough permissions
|
// If the member doesn't have enough permissions
|
||||||
if (
|
if(!interaction.member.permissions.has('MANAGE_MESSAGES') && !interaction.member.roles.cache.some((r) => r.name === "Giveaways")){
|
||||||
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
||||||
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
||||||
) {
|
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content:
|
content: ':x: You need to have the manage messages permissions to start giveaways.',
|
||||||
":x: You need to have the manage messages permissions to start giveaways.",
|
ephemeral: true
|
||||||
ephemeral: true,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const giveawayChannel = interaction.options.getChannel("channel");
|
const giveawayChannel = interaction.options.getChannel('channel');
|
||||||
const giveawayDuration = interaction.options.getString("duration");
|
const giveawayDuration = interaction.options.getString('duration');
|
||||||
const giveawayWinnerCount = interaction.options.getInteger("winners");
|
const giveawayWinnerCount = interaction.options.getInteger('winners');
|
||||||
const giveawayPrize = interaction.options.getString("prize");
|
const giveawayPrize = interaction.options.getString('prize');
|
||||||
|
|
||||||
if (!giveawayChannel.isTextBased()) {
|
if(!giveawayChannel.isText()) {
|
||||||
return interaction.reply({
|
return interaction.reply({
|
||||||
content: ":x: Selected channel is not text-based.",
|
content: ':x: Selected channel is not text-based.',
|
||||||
ephemeral: true,
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,9 +65,11 @@ module.exports = {
|
||||||
// Who hosts this giveaway
|
// Who hosts this giveaway
|
||||||
hostedBy: client.config.hostedBy ? interaction.user : null,
|
hostedBy: client.config.hostedBy ? interaction.user : null,
|
||||||
// Messages
|
// Messages
|
||||||
messages,
|
messages
|
||||||
});
|
});
|
||||||
|
|
||||||
interaction.reply(`Giveaway started in ${giveawayChannel}!`);
|
interaction.reply(`Giveaway started in ${giveawayChannel}!`);
|
||||||
},
|
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
|
@ -1,87 +1,85 @@
|
||||||
const os = require("os");
|
const os = require('os');
|
||||||
const { EmbedBuilder } = require("discord.js");
|
const { MessageEmbed } = require('discord.js');
|
||||||
const feroms = require("fero-ms");
|
const feroms = require('fero-ms');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "stats",
|
name: 'stats',
|
||||||
description: "Sends bot physical statistics",
|
description: 'Sends bot physical statistics',
|
||||||
run: async (client, interaction) => {
|
run: async(client, interaction) => {
|
||||||
let uptime = client.uptime;
|
let uptime = client.uptime;
|
||||||
let shortUptime = feroms.ms(uptime);
|
let shortUptime = feroms.ms(uptime);
|
||||||
let model = os.cpus()[0].model;
|
let model = os.cpus()[0].model;
|
||||||
let cores = os.cpus().length;
|
let cores = os.cpus().length;
|
||||||
let platform = os.platform();
|
let platform = os.platform();
|
||||||
let nodejs = process.version;
|
let nodejs = process.version;
|
||||||
let djs = require("discord.js").version;
|
let djs = require('discord.js').version;
|
||||||
let botversion = require("../package.json").version;
|
let botversion = require('../package.json').version;
|
||||||
let server = client.guilds.cache.size;
|
let server = client.guilds.cache.size;
|
||||||
let user = client.users.cache.size;
|
let user = client.users.cache.size;
|
||||||
let channel = client.channels.cache.size;
|
let channel = client.channels.cache.size;
|
||||||
|
|
||||||
let statsembed = new EmbedBuilder()
|
let statsembed = new MessageEmbed()
|
||||||
.addFields(
|
.addFields(
|
||||||
{
|
{
|
||||||
name: "<:live2:896715171882500106> I have been online for?",
|
name: '<:live2:896715171882500106> I have been online for?',
|
||||||
value: `\`\`\`${shortUptime}\`\`\``,
|
value: `\`\`\`${shortUptime}\`\`\``
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:globe:896718155416760340> Guilds",
|
name: '<:globe:896718155416760340> Guilds',
|
||||||
value: `\`${server}\``,
|
value: `\`${server}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:mention:896718358672707584> Users",
|
name: '<:mention:896718358672707584> Users',
|
||||||
value: `\`${user}\``,
|
value: `\`${user}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:channel:896717996326809641> Channels",
|
name: '<:channel:896717996326809641> Channels',
|
||||||
value: `\`${channel}\``,
|
value: `\`${channel}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Bot Version",
|
name: 'Bot Version',
|
||||||
value: `\`v${botversion}\``,
|
value: `\`v${botversion}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:prime:896718399776886816> Arch",
|
name: '<:prime:896718399776886816> Arch',
|
||||||
value: `\`${os.arch()}\``,
|
value: `\`${os.arch()}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:info:896718244461826140> Platform",
|
name: '<:info:896718244461826140> Platform',
|
||||||
value: `\`${platform}\``,
|
value: `\`${platform}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:desktop:896718080821047346> Cores",
|
name: '<:desktop:896718080821047346> Cores',
|
||||||
value: `\`${cores}\``,
|
value: `\`${cores}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<a:Discord:896723328277024819> Discord.js Version",
|
name: '<a:Discord:896723328277024819> Discord.js Version',
|
||||||
value: `\`v${djs}\``,
|
value: `\`v${djs}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:jss:896718571491704852> Node.js Version",
|
name: '<:jss:896718571491704852> Node.js Version',
|
||||||
value: `\`${nodejs}\``,
|
value: `\`${nodejs}\``,
|
||||||
inline: true,
|
inline: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:ram:896715172029276180> Ram Usage",
|
name: '<:ram:896715172029276180> Ram Usage',
|
||||||
value: `\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(
|
value: `\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB/ ${(os.totalmem() / 1024 / 1024).toFixed(2)}MB\``,
|
||||||
2
|
inline: true
|
||||||
)}MB/ ${(os.totalmem() / 1024 / 1024).toFixed(2)}MB\``,
|
|
||||||
inline: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "<:desktop:896718080821047346> CPU Model",
|
name: '<:desktop:896718080821047346> CPU Model',
|
||||||
value: `\`\`\`${model}\`\`\``,
|
value: `\`\`\`${model}\`\`\``
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.setTimestamp();
|
.setTimestamp()
|
||||||
await interaction.reply({ embeds: [statsembed] });
|
await interaction.reply({ embeds: [statsembed] });
|
||||||
},
|
}
|
||||||
};
|
}
|
|
@ -1,71 +0,0 @@
|
||||||
const Discord = require("discord.js");
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
description: "Unpause a giveaway",
|
|
||||||
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: "giveaway",
|
|
||||||
description: "The giveaway to unpause (message ID or giveaway prize)",
|
|
||||||
type: Discord.ApplicationCommandOptionType.String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
run: async (client, interaction) => {
|
|
||||||
// If the member doesn't have enough permissions
|
|
||||||
if (
|
|
||||||
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
||||||
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
||||||
) {
|
|
||||||
return interaction.reply({
|
|
||||||
content:
|
|
||||||
":x: You need to have the manage messages permissions to unpause giveaways.",
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const query = interaction.options.getString("giveaway");
|
|
||||||
|
|
||||||
// try to found the giveaway with prize then with ID
|
|
||||||
const giveaway =
|
|
||||||
// Search with giveaway prize
|
|
||||||
client.giveawaysManager.giveaways.find(
|
|
||||||
(g) => g.prize === query && g.guildId === interaction.guild.id
|
|
||||||
) ||
|
|
||||||
// Search with giveaway ID
|
|
||||||
client.giveawaysManager.giveaways.find(
|
|
||||||
(g) => g.messageId === query && g.guildId === interaction.guild.id
|
|
||||||
);
|
|
||||||
|
|
||||||
// If no giveaway was found
|
|
||||||
if (!giveaway) {
|
|
||||||
return interaction.reply({
|
|
||||||
content: "Unable to find a giveaway for `" + query + "`.",
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!giveaway.pauseOptions.isPaused) {
|
|
||||||
return interaction.reply({
|
|
||||||
content: "This giveaway is not paused.",
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Edit the giveaway
|
|
||||||
client.giveawaysManager
|
|
||||||
.unpause(giveaway.messageId)
|
|
||||||
// Success message
|
|
||||||
.then(() => {
|
|
||||||
// Success message
|
|
||||||
interaction.reply("Giveaway unpaused!");
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
interaction.reply({
|
|
||||||
content: e,
|
|
||||||
ephemeral: true,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
Loading…
Reference in a new issue