global starboard, esnipe snipe fix
This commit is contained in:
parent
3de5418cf1
commit
d3ccdffbd9
49 changed files with 1131 additions and 1096 deletions
73
bot.js
73
bot.js
|
@ -1,9 +1,8 @@
|
||||||
const { Client, Collection, MessageEmbed, Intents } = require("discord.js");
|
const { MessageEmbed, Intents } = require("discord.js");
|
||||||
const { GiveawaysManager } = require("discord-giveaways");
|
const Cath = require("./client/Cath");
|
||||||
const config = require("./config.json");
|
|
||||||
const version = require("./package.json").version;
|
const version = require("./package.json").version;
|
||||||
require("dotenv").config();
|
const config = require("./config.json");
|
||||||
const client = new Client({
|
const client = new Cath({
|
||||||
allowedMentions: { parse: ["users", "roles"], repliedUser: true },
|
allowedMentions: { parse: ["users", "roles"], repliedUser: true },
|
||||||
presence: {
|
presence: {
|
||||||
activities: [
|
activities: [
|
||||||
|
@ -17,8 +16,9 @@ const client = new Client({
|
||||||
restTimeOffset: 0,
|
restTimeOffset: 0,
|
||||||
partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"],
|
partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"],
|
||||||
intents: [
|
intents: [
|
||||||
Intents.FLAGS.GUILDS,
|
|
||||||
//Intents.FLAGS.GUILD_MEMBERS,
|
//Intents.FLAGS.GUILD_MEMBERS,
|
||||||
|
//Intents.FLAGS.GUILD_PRESENCES,
|
||||||
|
Intents.FLAGS.GUILDS,
|
||||||
Intents.FLAGS.GUILD_BANS,
|
Intents.FLAGS.GUILD_BANS,
|
||||||
Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
|
Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
|
||||||
Intents.FLAGS.GUILD_INVITES,
|
Intents.FLAGS.GUILD_INVITES,
|
||||||
|
@ -26,68 +26,13 @@ const client = new Client({
|
||||||
Intents.FLAGS.GUILD_MESSAGES,
|
Intents.FLAGS.GUILD_MESSAGES,
|
||||||
Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
|
Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
|
||||||
Intents.FLAGS.DIRECT_MESSAGES,
|
Intents.FLAGS.DIRECT_MESSAGES,
|
||||||
//Intents.FLAGS.GUILD_PRESENCES,
|
Intents.FLAGS.DIRECT_MESSAGE_TYPING,
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
module.exports = client;
|
module.exports = client;
|
||||||
require("./util/functions/economy")(client);
|
require("./util/functions/economy")(client);
|
||||||
require("./util/dist/manager")(client);
|
require("./util/dist/manager")(client);
|
||||||
require("./util/dist/handler")(client);
|
require("./util/dist/handler")(client);
|
||||||
client.commands = new Collection();
|
|
||||||
client.slashCommands = new Collection();
|
|
||||||
client.aliases = new Collection();
|
|
||||||
client.esnipes = new Collection();
|
|
||||||
client.hide = new Collection();
|
|
||||||
client.snipes = new Array();
|
|
||||||
client.queue = new Map();
|
|
||||||
client.Timers = new Map();
|
|
||||||
client.config = config;
|
|
||||||
client.function = require("./util/functions/function");
|
|
||||||
client.data = require("./util/functions/mongoose");
|
|
||||||
client.err = require("./util/dist/err");
|
|
||||||
client.serr = require("./util/dist/slash");
|
|
||||||
client.cat = client.config.ca;
|
|
||||||
client.SuggestionLog = client.config.Suggestion;
|
|
||||||
client.ReportLog = client.config.Report;
|
|
||||||
client.DMLog = client.config.DMLog;
|
|
||||||
client.CMDLog = client.config.CMDLog;
|
|
||||||
client.ServerLog = client.config.ServerLog;
|
|
||||||
client.ErrorLog = client.config.ErrorLog;
|
|
||||||
client.color = client.config.color;
|
|
||||||
client.author = "Cath Team";
|
|
||||||
client.invite = "https://discord.gg/SbQHChmGcp";
|
|
||||||
client.web = client.config.URL;
|
|
||||||
client.data
|
|
||||||
.connect(process.env.MONGO)
|
|
||||||
.then(() => console.log("Connected to MongoDB!"))
|
|
||||||
.catch(e => console.log(e));
|
|
||||||
client.owners = [
|
|
||||||
"452076196419600394", //Night
|
|
||||||
"766645910087139338", //chekseaa
|
|
||||||
"755476040029306952", //Kałÿ
|
|
||||||
"534027706325532694", //Cat drinking a cat
|
|
||||||
"381442059111759883", //Thunder
|
|
||||||
"556808365574193194", //chunchunmaru
|
|
||||||
];
|
|
||||||
client.currency = "<:cp:840231933933387797>";
|
|
||||||
client.path = [
|
|
||||||
"614423108388126731",
|
|
||||||
"767173194943168542",
|
|
||||||
"783633408738721834",
|
|
||||||
"718762019586572341",
|
|
||||||
"784052348561522730",
|
|
||||||
"840225563193114624",
|
|
||||||
"800396461229080619",
|
|
||||||
];
|
|
||||||
client.giveaways = new GiveawaysManager(client, {
|
|
||||||
storage: "./util/Data/giveaways.json",
|
|
||||||
updateCountdownEvery: 1000,
|
|
||||||
default: {
|
|
||||||
botsCanWin: false,
|
|
||||||
embedColor: client.color,
|
|
||||||
reaction: "🎉",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
process.on("unhandledRejection", async err => {
|
process.on("unhandledRejection", async err => {
|
||||||
if (client.user) {
|
if (client.user) {
|
||||||
if (client.user.id === client.user.id) {
|
if (client.user.id === client.user.id) {
|
||||||
|
@ -100,6 +45,6 @@ process.on("unhandledRejection", async err => {
|
||||||
client.channels.cache.get(client.ErrorLog).send({ embeds: [embed] });
|
client.channels.cache.get(client.ErrorLog).send({ embeds: [embed] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return console.log(err);
|
return console.error(err);
|
||||||
});
|
});
|
||||||
client.login(process.env.TOKEN);
|
client.start();
|
||||||
|
|
72
client/Cath.js
Normal file
72
client/Cath.js
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
const { Client, Collection } = require("discord.js");
|
||||||
|
const config = require("../config.json");
|
||||||
|
const { GiveawaysManager } = require("discord-giveaways");
|
||||||
|
require("dotenv").config();
|
||||||
|
class Cath extends Client {
|
||||||
|
/**
|
||||||
|
* @param {Client.options} options
|
||||||
|
*/
|
||||||
|
constructor(options = {}) {
|
||||||
|
super(options);
|
||||||
|
this.commands = new Collection();
|
||||||
|
this.slashCommands = new Collection();
|
||||||
|
this.aliases = new Collection();
|
||||||
|
this.esnipes = new Collection();
|
||||||
|
this.hide = new Collection();
|
||||||
|
this.snipes = new Collection();
|
||||||
|
this.queue = new Map();
|
||||||
|
this.Timers = new Map();
|
||||||
|
this.config = config;
|
||||||
|
this.function = require("../util/functions/function");
|
||||||
|
this.data = require("../util/functions/mongoose");
|
||||||
|
this.err = require("../util/dist/err");
|
||||||
|
this.serr = require("../util/dist/slash");
|
||||||
|
this.cat = this.config.ca;
|
||||||
|
this.SuggestionLog = this.config.Suggestion;
|
||||||
|
this.ReportLog = this.config.Report;
|
||||||
|
this.DMLog = this.config.DMLog;
|
||||||
|
this.CMDLog = this.config.CMDLog;
|
||||||
|
this.ServerLog = this.config.ServerLog;
|
||||||
|
this.ErrorLog = this.config.ErrorLog;
|
||||||
|
this.color = this.config.color;
|
||||||
|
this.author = "Cath Team";
|
||||||
|
this.invite = "https://discord.gg/SbQHChmGcp";
|
||||||
|
this.web = this.config.URL;
|
||||||
|
this.owners = [
|
||||||
|
"452076196419600394", //Night
|
||||||
|
"766645910087139338", //chekseaa
|
||||||
|
"755476040029306952", //Kałÿ
|
||||||
|
"534027706325532694", //Cat drinking a cat
|
||||||
|
"381442059111759883", //Thunder
|
||||||
|
"556808365574193194", //chunchunmaru
|
||||||
|
];
|
||||||
|
this.currency = "<:cp:840231933933387797>";
|
||||||
|
this.path = [
|
||||||
|
"614423108388126731",
|
||||||
|
"767173194943168542",
|
||||||
|
"783633408738721834",
|
||||||
|
"718762019586572341",
|
||||||
|
"784052348561522730",
|
||||||
|
"840225563193114624",
|
||||||
|
"800396461229080619",
|
||||||
|
];
|
||||||
|
this.giveaways = new GiveawaysManager(this, {
|
||||||
|
storage: "./util/Data/giveaways.json",
|
||||||
|
updateCountdownEvery: 1000,
|
||||||
|
default: {
|
||||||
|
botsCanWin: false,
|
||||||
|
embedColor: this.color,
|
||||||
|
reaction: "🎉",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
start() {
|
||||||
|
this.data
|
||||||
|
.connect(process.env.MONGO)
|
||||||
|
.then(() => console.log("Connected to MongoDB!"))
|
||||||
|
.catch(e => console.log(e));
|
||||||
|
this.login(process.env.TOKEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Cath;
|
6
client/StarboardClient.js
Normal file
6
client/StarboardClient.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
const { StarboardClient } = require("cath");
|
||||||
|
const client = require("../bot");
|
||||||
|
module.exports = new StarboardClient({
|
||||||
|
client,
|
||||||
|
color: "02023a",
|
||||||
|
});
|
119
command/Config/premium.js
Normal file
119
command/Config/premium.js
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
const { MessageEmbed } = require("discord.js");
|
||||||
|
module.exports = {
|
||||||
|
name: "premiumserver",
|
||||||
|
category: "Config",
|
||||||
|
description: "Add premium to a server",
|
||||||
|
Premium: true,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 5,
|
||||||
|
name: "choice",
|
||||||
|
description: "Whether add or remove premium server",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
try {
|
||||||
|
console.log(interaction.options.getBoolean("choice"));
|
||||||
|
const user = await client.data.getUser(interaction.user.id);
|
||||||
|
const guild = await client.data.getGuild(interaction.guild.id);
|
||||||
|
if (interaction.options.getBoolean("choice") == true) {
|
||||||
|
if (guild.Premium == true) {
|
||||||
|
return client.serr(interaction, "Config", "premium", 506);
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
(user.Tier == 1 && user.PremiumServers.length >= 5) ||
|
||||||
|
(user.Tier == 2 && user.PremiumServers.length >= 2) ||
|
||||||
|
(user.Tier == 3 && user.PremiumServers.length >= 0)
|
||||||
|
) {
|
||||||
|
return client.serr(interaction, "Config", "premium", 505);
|
||||||
|
} else {
|
||||||
|
await client.data.setPremium(interaction.guild.id, "true");
|
||||||
|
await client.data.pushGuild(
|
||||||
|
interaction.user.id,
|
||||||
|
interaction.guild.id,
|
||||||
|
"push"
|
||||||
|
);
|
||||||
|
interaction.followUp({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setTitle("Success!")
|
||||||
|
.setDescription(
|
||||||
|
`Premium added to **${interaction.guild.name}**! \n`
|
||||||
|
)
|
||||||
|
.setFooter("Thank you for supporting Cath!")
|
||||||
|
.setColor("GREEN")
|
||||||
|
.setTimestamp()
|
||||||
|
.setAuthor(
|
||||||
|
interaction.user.tag,
|
||||||
|
interaction.user.displayAvatarURL({ dynamic: true })
|
||||||
|
),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
client.channels.cache.get(client.ServerLog).send({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setTitle("New Premium Server")
|
||||||
|
.addField(
|
||||||
|
"Server Info",
|
||||||
|
`**>Server Name**: \n${interaction.guild.name}
|
||||||
|
**>Server ID**: \n${interaction.guild.id}
|
||||||
|
**>Server Member Count**: \n${interaction.guild.memberCount}`
|
||||||
|
)
|
||||||
|
.setTimestamp()
|
||||||
|
.setThumbnail(interaction.guild.iconURL({ dynamic: true }))
|
||||||
|
.setColor("GREEN"),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (guild.Premium == false) {
|
||||||
|
return client.serr(interaction, "Config", "premium", 507);
|
||||||
|
}
|
||||||
|
if (!user.PremiumServers.includes(interaction.guild.id))
|
||||||
|
return client.serr(interaction, "Config", "premium", 509);
|
||||||
|
else {
|
||||||
|
await client.data.setPremium(interaction.guild.id, "false");
|
||||||
|
await client.data.pushGuild(
|
||||||
|
interaction.user.id,
|
||||||
|
interaction.guild.id,
|
||||||
|
"splice"
|
||||||
|
);
|
||||||
|
interaction.followUp({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setTitle("Removed!")
|
||||||
|
.setDescription(
|
||||||
|
`Premium removed from **${interaction.guild.name}**! \n`
|
||||||
|
)
|
||||||
|
.setColor("RED")
|
||||||
|
.setTimestamp()
|
||||||
|
.setAuthor(
|
||||||
|
interaction.user.tag,
|
||||||
|
interaction.user.displayAvatarURL({ dynamic: true })
|
||||||
|
),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
client.channels.cache.get(client.ServerLog).send({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setTitle("Premium Server Removed")
|
||||||
|
.addField(
|
||||||
|
"Server Info",
|
||||||
|
`**>Server Name**: \n${interaction.guild.name}
|
||||||
|
**>Server ID**: \n${interaction.guild.id}
|
||||||
|
**>Server Member Count**: \n${interaction.guild.memberCount}`
|
||||||
|
)
|
||||||
|
.setTimestamp()
|
||||||
|
.setThumbnail(interaction.guild.iconURL({ dynamic: true }))
|
||||||
|
.setColor("RED"),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
return client.serr(interaction, "Config", "premium", 999);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
220
command/Config/set.js
Normal file
220
command/Config/set.js
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
const starboardClient = require("../../client/StarboardClient");
|
||||||
|
module.exports = {
|
||||||
|
name: "set",
|
||||||
|
description: "Configure settings for the server",
|
||||||
|
UserPerms: ["ADMINISTRATOR"],
|
||||||
|
category: "Config",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "muterole",
|
||||||
|
description: "Set mute role for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 8,
|
||||||
|
name: "role",
|
||||||
|
description: "The role for muted users",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "prefix",
|
||||||
|
description: "Set prefix for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "prefix",
|
||||||
|
description: "The prefix for the server",
|
||||||
|
required: true,
|
||||||
|
choices: [],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "welcome",
|
||||||
|
description: "Set welcome channel for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel for welcome messages",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "goodbye",
|
||||||
|
description: "Set goodbye channel for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel for goodbye messages",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "starboard",
|
||||||
|
description: "Set starboard channel for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel for starboard messages",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: "starcount",
|
||||||
|
description: "The required amount of star to trigger the starboard",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "chatbot",
|
||||||
|
description: "Set chatbot channel for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel for chatbot messages",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "log",
|
||||||
|
description: "Set log channel for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel for log messages",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: "level",
|
||||||
|
description: "Set whether level system is activated for the server",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 5,
|
||||||
|
name: "choice",
|
||||||
|
description: "whether level system is activated for the server",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
if (args[0].toLowerCase() === "muterole") {
|
||||||
|
const role = interaction.guild.roles.cache.get(args[1]);
|
||||||
|
if (role.managed) {
|
||||||
|
interaction.followUp({ content: "You must provide a non bot role" });
|
||||||
|
} else {
|
||||||
|
await client.data.setMuterole(interaction.guild.id, args[1]);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Saved **${role.name}** as the mute role`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (args[0].toLowerCase() === "prefix") {
|
||||||
|
await client.data.setPrefix(interaction.guild.id, args[1]);
|
||||||
|
interaction.followUp({ content: `Saved \`${args[1]}\` as the prefix` });
|
||||||
|
} else if (args[0].toLowerCase() === "welcome") {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[1]);
|
||||||
|
if (channel.type !== "GUILD_TEXT")
|
||||||
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
|
else {
|
||||||
|
await client.data.setWelcome(interaction.guild.id, args[1]);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Saved **${channel}** as the welcome channel`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (args[0].toLowerCase() === "goodbye") {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[1]);
|
||||||
|
if (channel.type !== "GUILD_TEXT")
|
||||||
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
|
else {
|
||||||
|
await client.data.setGoodbye(interaction.guild.id, args[1]);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Saved **${channel}** as the goodbye channel`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (args[0].toLowerCase() === "starboard") {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[1]);
|
||||||
|
if (channel.type !== "GUILD_TEXT")
|
||||||
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
|
else {
|
||||||
|
starboardClient.config.guilds.add({
|
||||||
|
id: interaction.guild.id,
|
||||||
|
options: {
|
||||||
|
starCount: args[2],
|
||||||
|
starboardChannel: args[1],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
await client.data.setStarboard(interaction.guild.id, args[1], args[2]);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Saved **${channel}** as the starboard channel`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (args[0].toLowerCase() === "chatbot") {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[1]);
|
||||||
|
if (channel.type !== "GUILD_TEXT")
|
||||||
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
|
else {
|
||||||
|
await client.data.setChatbot(interaction.guild.id, args[1]);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Saved **${channel}** as the chatbot channel`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (args[0].toLowerCase() === "log") {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[1]);
|
||||||
|
if (channel.type !== "GUILD_TEXT")
|
||||||
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
|
else {
|
||||||
|
let webhookid;
|
||||||
|
let webhooktoken;
|
||||||
|
await channel
|
||||||
|
.createWebhook(interaction.guild.name, {
|
||||||
|
avatar: interaction.guild.iconURL({ format: "png" }),
|
||||||
|
})
|
||||||
|
.then(webhook => {
|
||||||
|
webhookid = webhook.id;
|
||||||
|
webhooktoken = webhook.token;
|
||||||
|
});
|
||||||
|
await client.data.setLog(
|
||||||
|
interaction.guild.id,
|
||||||
|
channel.id,
|
||||||
|
webhookid,
|
||||||
|
webhooktoken
|
||||||
|
);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Saved **${channel}** as the log channel`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (args[0].toLowerCase() === "level") {
|
||||||
|
if (args[1]) {
|
||||||
|
await client.data.setGLevel(interaction.guild.id, "true");
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Levelling is enabled in this server now.`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await client.data.setGLevel(interaction.guild.id, "false");
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Levelling is disabled in this server now.`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
44
command/Economy/drop.js
Normal file
44
command/Economy/drop.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
module.exports = {
|
||||||
|
name: "drop",
|
||||||
|
usage: "{Channel} (Number)",
|
||||||
|
description: "Drops money to a channel",
|
||||||
|
category: "Economy",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel you want to drop",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: "cp",
|
||||||
|
description: "The amount of CP to drop",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[0]);
|
||||||
|
const coinsAmount = args[1];
|
||||||
|
if ((await client.bal(interaction.user.id)) < coinsAmount) {
|
||||||
|
return client.serr(interaction, "Economy", "drop", 20);
|
||||||
|
}
|
||||||
|
const filter = msg =>
|
||||||
|
msg.guild.id === interaction.guild.id && msg.content === `claim`;
|
||||||
|
interaction.followUp({
|
||||||
|
content: "The drop has started in " + channel.toString(),
|
||||||
|
});
|
||||||
|
channel.send({
|
||||||
|
content: `${interaction.user.username} has dropped a ${client.currency} bomb! Type \`claim\` to claim ${client.currency}!!`,
|
||||||
|
});
|
||||||
|
client.rmv(interaction.user.id, parseInt(coinsAmount));
|
||||||
|
channel.awaitMessages({ filter, max: 1, time: 60000 }).then(async msg => {
|
||||||
|
const id = msg.first().author.id;
|
||||||
|
const coinsToClaim = parseInt(coinsAmount);
|
||||||
|
await client.add(id, coinsToClaim, interaction);
|
||||||
|
msg.first().reply({
|
||||||
|
content: `Congratultions! You have claimed **${coinsToClaim}** ${client.currency}!`,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
|
@ -129,12 +129,12 @@ module.exports = {
|
||||||
content: `There isn't any command or category named "${args[0]}"`,
|
content: `There isn't any command or category named "${args[0]}"`,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (command.UserPerm && Array.isArray(command.UserPerm)) {
|
if (command.UserPerms && Array.isArray(command.UserPerms)) {
|
||||||
UserPermissions = command.UserPerm;
|
UserPermissions = command.UserPerms;
|
||||||
} else UserPermissions = [command.UserPerm ? command.UserPerm : ""];
|
} else UserPermissions = [command.UserPerms ? command.UserPerms : ""];
|
||||||
if (command.BotPerm && Array.isArray(command.BotPerm)) {
|
if (command.BotPerms && Array.isArray(command.BotPerms)) {
|
||||||
BotPermissions = command.BotPerm;
|
BotPermissions = command.BotPerms;
|
||||||
} else BotPermissions = [command.BotPerm ? command.BotPerm : ""];
|
} else BotPermissions = [command.BotPerms ? command.BotPerms : ""];
|
||||||
const BotPerms = BotPermissions.map(x =>
|
const BotPerms = BotPermissions.map(x =>
|
||||||
x
|
x
|
||||||
.split("_")
|
.split("_")
|
||||||
|
@ -164,7 +164,7 @@ module.exports = {
|
||||||
if (command.timeout) {
|
if (command.timeout) {
|
||||||
embed.addField("**Cooldown**:", utils.timer(command.timeout));
|
embed.addField("**Cooldown**:", utils.timer(command.timeout));
|
||||||
}
|
}
|
||||||
if (command.UserPerm) {
|
if (command.UserPerms) {
|
||||||
embed.addField("**Required User Permission**:", UserPerms);
|
embed.addField("**Required User Permission**:", UserPerms);
|
||||||
}
|
}
|
||||||
if (command.BotPerm) {
|
if (command.BotPerm) {
|
||||||
|
|
60
command/Moderation/announce.js
Normal file
60
command/Moderation/announce.js
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
const { MessageEmbed } = require("discord.js");
|
||||||
|
module.exports = {
|
||||||
|
name: "announce",
|
||||||
|
UserPerm: ["MANAGE_MESSAGES"],
|
||||||
|
BotPerm: ["MANAGE_MESSAGES"],
|
||||||
|
usage: "{Channel} (Message)",
|
||||||
|
description: "Announce a message to a channel.",
|
||||||
|
category: "Moderation",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The channel to announce",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "message",
|
||||||
|
description: "The message to announce",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
const channel = interaction.guild.channels.cache.get(args[0]);
|
||||||
|
if (channel.type !== "GUILD_TEXT") {
|
||||||
|
return interaction.followUp({
|
||||||
|
content: "Please provide a text channel",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
channel.send({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setAuthor(
|
||||||
|
`Sent by ${interaction.member.displayName}`,
|
||||||
|
interaction.user.displayAvatarURL({ dynamic: true })
|
||||||
|
)
|
||||||
|
.setDescription(args[1])
|
||||||
|
.setTimestamp()
|
||||||
|
.setColor(client.color),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
interaction.followUp({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setTitle(`Message Announced`)
|
||||||
|
.addField("**Moderator**", interaction.user.tag, true)
|
||||||
|
.setTimestamp()
|
||||||
|
.setFooter(
|
||||||
|
interaction.member.displayName,
|
||||||
|
interaction.user.displayAvatarURL({ dynamic: true })
|
||||||
|
)
|
||||||
|
.setColor(client.color),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
|
@ -5,13 +5,13 @@ module.exports = {
|
||||||
description: "Clear messages in a specific channel",
|
description: "Clear messages in a specific channel",
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: "channel",
|
name: 7,
|
||||||
description: "Channel where the messages to be deleted",
|
description: "Channel where the messages to be deleted",
|
||||||
type: "CHANNEL",
|
type: "CHANNEL",
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "amount",
|
name: 4,
|
||||||
description: "Amount of message in range of 1-100 to be deleted",
|
description: "Amount of message in range of 1-100 to be deleted",
|
||||||
type: "NUMBER",
|
type: "NUMBER",
|
||||||
required: true,
|
required: true,
|
||||||
|
@ -30,7 +30,7 @@ module.exports = {
|
||||||
}
|
}
|
||||||
if (channel.type !== "GUILD_TEXT") {
|
if (channel.type !== "GUILD_TEXT") {
|
||||||
return interaction.followUp({
|
return interaction.followUp({
|
||||||
content: "Please provide a text channel instead of voice or category",
|
content: "Please provide a text channel",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const limit = await interaction.channel.messages.fetch({
|
const limit = await interaction.channel.messages.fetch({
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const Discord = require("discord.js");
|
const Discord = require("discord.js");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "slowmode",
|
name: "slowmode",
|
||||||
UserPerm: "MANAGE_CHANNELS",
|
UserPerms: ["MANAGE_CHANNELS"],
|
||||||
description: "Set slowmode at a specific channel",
|
description: "Set slowmode at a specific channel",
|
||||||
BotPerm: "MANAGE_CHANNELS",
|
BotPerm: "MANAGE_CHANNELS",
|
||||||
usage: "(Time)",
|
usage: "(Time)",
|
||||||
|
|
43
command/Owner/blacklist.js
Normal file
43
command/Owner/blacklist.js
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
module.exports = {
|
||||||
|
name: "blacklist",
|
||||||
|
category: "Owner",
|
||||||
|
usage: "(User) (Toggle) (Reason)",
|
||||||
|
description: "Blacklist someone from the bot",
|
||||||
|
Owner: true,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 6,
|
||||||
|
name: "user",
|
||||||
|
description: "The user to blacklist/whitelist",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 5,
|
||||||
|
name: "yesno",
|
||||||
|
description: "Whether blacklist or whitelist",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "reason",
|
||||||
|
description: "The reason to blacklist",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
let user = interaction.options.getUser("user");
|
||||||
|
toggle = interaction.options.getBoolean("yesno");
|
||||||
|
reason = interaction.options.getString("reason");
|
||||||
|
if (toggle === true) {
|
||||||
|
await client.data.BK(user.id, toggle, reason);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `**Blacklisted** ${user.username}.\n**Reason: **${reason}`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await client.data.BK(user.id, toggle, reason);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `Removed blacklist from ${user.username}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
34
command/Utilities/emojiadd.js
Normal file
34
command/Utilities/emojiadd.js
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
module.exports = {
|
||||||
|
name: "emojiadd",
|
||||||
|
usage: "(Link) (Name)",
|
||||||
|
description: "Show an emoji URL or add the emoji to the server",
|
||||||
|
category: "Utilities",
|
||||||
|
UserPerm: ["MANAGE_EMOJIS_AND_STICKERS"],
|
||||||
|
BotPerm: ["MANAGE_EMOJIS_AND_STICKERS"],
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "link",
|
||||||
|
description: "The link you want to add",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "name",
|
||||||
|
description: "The emoji name you want to add",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
try {
|
||||||
|
if (args[1].length < 2 || args[1].match(/\W/))
|
||||||
|
return client.serr(interaction, "Utilities", "emojiadd", 49);
|
||||||
|
interaction.guild.emojis.create(args[0], args[1]).then(msg => {
|
||||||
|
const em = interaction.guild.emojis.cache.find(a => a.name == args[1]);
|
||||||
|
interaction.followUp(`Added <:${em.name}:${em.id}> to the server`);
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
129
command/Utilities/esnipe.js
Normal file
129
command/Utilities/esnipe.js
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
const { MessageEmbed } = require("discord.js");
|
||||||
|
const moment = require("moment");
|
||||||
|
module.exports = {
|
||||||
|
name: "editsnipe",
|
||||||
|
description: "Snipes a edited message",
|
||||||
|
category: "Utilities",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The sniped channel",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: "message",
|
||||||
|
description: "The sniped message",
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
var i = 0;
|
||||||
|
var description = "";
|
||||||
|
const embed = new MessageEmbed()
|
||||||
|
.setAuthor(
|
||||||
|
`Sniped by ${interaction.user.tag}`,
|
||||||
|
interaction.user.displayAvatarURL({ dynamic: true })
|
||||||
|
)
|
||||||
|
.setColor(client.color)
|
||||||
|
.setFooter(`Made by ${client.author}`)
|
||||||
|
.setTimestamp()
|
||||||
|
.setURL(client.web);
|
||||||
|
const snipes = client.esnipes.get(args[0]) || [];
|
||||||
|
if (interaction.guild.channels.cache.get(args[0]).type !== "GUILD_TEXT")
|
||||||
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
|
else if (args[1]) {
|
||||||
|
const msg = snipes[args[1] - 1];
|
||||||
|
if (!msg) {
|
||||||
|
snipes.forEach(m => {
|
||||||
|
const map = [];
|
||||||
|
for (var i = 0; i < m.attachment?.length; i++) {
|
||||||
|
map.push(
|
||||||
|
`**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (m.author !== "No Author") {
|
||||||
|
description += `\n\n**Author:** ${m.author.username}#${
|
||||||
|
m.author.discriminator
|
||||||
|
} (Deleted ${moment(m.date).fromNow()})\n**ID:** ${
|
||||||
|
m.author.id
|
||||||
|
}\n**Old Content:** ${m.oldContent}\n**New Content:** ${
|
||||||
|
m.newContent
|
||||||
|
}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
description += `\n\n**Author:** None (Deleted ${moment(
|
||||||
|
m.date
|
||||||
|
).fromNow()})\n\n**Old Content:** ${
|
||||||
|
m.oldContent
|
||||||
|
}\n**New Content:** ${m.newContent}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
embed.setDescription(description);
|
||||||
|
return interaction.followUp({ embeds: [embed] });
|
||||||
|
} else {
|
||||||
|
const map = [];
|
||||||
|
for (var i = 0; i < msg.attachment?.length; i++) {
|
||||||
|
map.push(
|
||||||
|
`**Attchment ${i + 1}:** [Click to view](${msg.attachment[i]})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (msg.author !== "No Author") {
|
||||||
|
description += `\n\n**Author:** ${msg.author.username}#${
|
||||||
|
msg.author.discriminator
|
||||||
|
} (Deleted ${moment(msg.date).fromNow()})\n**ID:** ${
|
||||||
|
msg.author.id
|
||||||
|
}\n**Old Content:** ${m.oldContent}\n**New Content:** ${
|
||||||
|
m.newContent
|
||||||
|
}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
description += `\n\n**Author:** None (Deleted ${moment(
|
||||||
|
msg.date
|
||||||
|
).fromNow()})\n\n**Old Content:** ${m.oldContent}\n**New Content:** ${
|
||||||
|
m.newContent
|
||||||
|
}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
embed.setDescription(description);
|
||||||
|
return interaction.followUp({ embeds: [embed] });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!snipes.length) {
|
||||||
|
interaction.followUp({
|
||||||
|
content: "There isn't any snipe in this channel yet",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
snipes.forEach(m => {
|
||||||
|
const map = [];
|
||||||
|
for (var i = 0; i < m.attachment?.length; i++) {
|
||||||
|
map.push(
|
||||||
|
`**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (m.author !== "No Author") {
|
||||||
|
description += `\n\n**Author:** ${m.author.username}#${
|
||||||
|
m.author.discriminator
|
||||||
|
} (Deleted ${moment(m.date).fromNow()})\n**ID:** ${
|
||||||
|
m.author.id
|
||||||
|
}\n**Old Content:** ${m.oldContent}\n**New Content:** ${
|
||||||
|
m.newContent
|
||||||
|
}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
description += `\n\n**Author:** None (Deleted ${moment(
|
||||||
|
m.date
|
||||||
|
).fromNow()})\n\n**Old Content:** ${
|
||||||
|
m.oldContent
|
||||||
|
}\n**New Content:** ${m.newContent}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
embed.setDescription(description);
|
||||||
|
return interaction.followUp({ embeds: [embed] });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
|
@ -2,8 +2,22 @@ const { MessageEmbed } = require("discord.js");
|
||||||
const moment = require("moment");
|
const moment = require("moment");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "snipe",
|
name: "snipe",
|
||||||
description: "Snipes a deleted message.",
|
description: "Snipes a deleted message",
|
||||||
category: "Utilities",
|
category: "Utilities",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 7,
|
||||||
|
name: "channel",
|
||||||
|
description: "The sniped channel",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: "message",
|
||||||
|
description: "The sniped message",
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
var description = "";
|
var description = "";
|
||||||
|
@ -14,95 +28,96 @@ module.exports = {
|
||||||
)
|
)
|
||||||
.setColor(client.color)
|
.setColor(client.color)
|
||||||
.setFooter(`Made by ${client.author}`)
|
.setFooter(`Made by ${client.author}`)
|
||||||
|
.setTimestamp()
|
||||||
.setURL(client.web);
|
.setURL(client.web);
|
||||||
client.snipes.reverse().forEach(msg => {
|
const snipes = client.snipes.get(args[0]) || [];
|
||||||
if (msg.channel.id != interaction.channel.id) return;
|
if (interaction.guild.channels.cache.get(args[0]).type !== "GUILD_TEXT")
|
||||||
if (i >= 5) return;
|
interaction.followUp({ content: "Please provide a text channel" });
|
||||||
if (msg.attachment) {
|
else if (args[1]) {
|
||||||
if (msg.attachment.length == 1) {
|
const msg = snipes[args[1] - 1];
|
||||||
if (msg.author !== "No Author") {
|
if (!msg) {
|
||||||
description =
|
snipes.forEach(m => {
|
||||||
description +
|
const map = [];
|
||||||
`\n\n**Author:** ${msg.author.username}#${
|
for (var i = 0; i < m.attachment?.length; i++) {
|
||||||
msg.author.discriminator
|
map.push(
|
||||||
} (Deleted ${moment(msg.date).fromNow()})\n**ID:** ${
|
`**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})`
|
||||||
msg.author.id
|
);
|
||||||
}\n**Content:** ${
|
}
|
||||||
msg.content
|
if (m.author !== "No Author") {
|
||||||
}\n**Attachment URL:** [Click to view](${msg.attachment})`;
|
description += `\n\n**Author:** ${m.author.username}#${
|
||||||
|
m.author.discriminator
|
||||||
|
} (Deleted ${moment(m.date).fromNow()})\n**ID:** ${
|
||||||
|
m.author.id
|
||||||
|
}\n**Content:** ${m.content}\n${map ? map.join("\n") : ""}`;
|
||||||
i++;
|
i++;
|
||||||
} else
|
} else {
|
||||||
description =
|
|
||||||
description +
|
|
||||||
`\n\n**Author:** None (Deleted ${moment(
|
|
||||||
msg.date
|
|
||||||
).fromNow()})\n\n**Content:** ${
|
|
||||||
msg.content
|
|
||||||
}\n**Attachment URL:** [Click to view](${msg.attachment})`;
|
|
||||||
i++;
|
|
||||||
} else if (msg.attachment.length > 1) {
|
|
||||||
const map = msg.attachment.map(
|
|
||||||
(s, i) => `**${i + 1}:** [Click to view](${s})`
|
|
||||||
);
|
|
||||||
if (msg.author !== "No Author") {
|
|
||||||
description += `\n\n**Author:** ${msg.author.username}#${
|
|
||||||
msg.author.discriminator
|
|
||||||
} (Deleted ${moment(msg.date).fromNow()})\n**ID:** ${
|
|
||||||
msg.author.id
|
|
||||||
}\n**Content:** ${msg.content}\n**Attachment URLs:** \n${map.join(
|
|
||||||
"\n"
|
|
||||||
)}`;
|
|
||||||
i++;
|
|
||||||
} else
|
|
||||||
description += `\n\n**Author:** None (Deleted ${moment(
|
description += `\n\n**Author:** None (Deleted ${moment(
|
||||||
msg.date
|
m.date
|
||||||
).fromNow()})\\n**Content:** ${
|
).fromNow()})\n\n**Content:** ${m.content}\n${
|
||||||
msg.content
|
map ? map.join("\n") : ""
|
||||||
}\n**Attachment URLs:** \n${map.join("\n")}`;
|
}`;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
embed.setDescription(description);
|
||||||
|
return interaction.followUp({ embeds: [embed] });
|
||||||
|
} else {
|
||||||
|
const map = [];
|
||||||
|
for (var i = 0; i < msg.attachment?.length; i++) {
|
||||||
|
map.push(
|
||||||
|
`**Attchment ${i + 1}:** [Click to view](${msg.attachment[i]})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (msg.author !== "No Author") {
|
||||||
|
description += `\n\n**Author:** ${msg.author.username}#${
|
||||||
|
msg.author.discriminator
|
||||||
|
} (Deleted ${moment(msg.date).fromNow()})\n**ID:** ${
|
||||||
|
msg.author.id
|
||||||
|
}\n**Content:** ${msg.content}\n${map ? map.join("\n") : ""}`;
|
||||||
i++;
|
i++;
|
||||||
} else {
|
} else {
|
||||||
if (msg.author !== "No Author") {
|
description += `\n\n**Author:** None (Deleted ${moment(
|
||||||
description =
|
msg.date
|
||||||
description +
|
).fromNow()})\n\n**Content:** ${msg.content}\n${
|
||||||
`\n\n**Author:** ${msg.author.username}#${
|
map ? map.join("\n") : ""
|
||||||
msg.author.discriminator
|
}`;
|
||||||
} (Deleted ${moment(msg.date).fromNow()})\n**ID:** ${
|
|
||||||
msg.author.id
|
|
||||||
}\n**Content:** ${msg.content}`;
|
|
||||||
i++;
|
|
||||||
} else
|
|
||||||
description =
|
|
||||||
description +
|
|
||||||
`\n\n**Author:** None (Deleted ${moment(
|
|
||||||
msg.date
|
|
||||||
).fromNow()})\n\n**Content:** ${msg.content}`;
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
} else {
|
embed.setDescription(description);
|
||||||
if (msg.author !== "No Author") {
|
return interaction.followUp({ embeds: [embed] });
|
||||||
description =
|
|
||||||
description +
|
|
||||||
`\n\n**Author:** ${msg.author.username}#${
|
|
||||||
msg.author.discriminator
|
|
||||||
} (Deleted ${moment(msg.date).fromNow()})\n**ID:** ${
|
|
||||||
msg.author.id
|
|
||||||
}\n**Content:** ${msg.content}`;
|
|
||||||
i++;
|
|
||||||
} else
|
|
||||||
description =
|
|
||||||
description +
|
|
||||||
`\n\n**Author:** None (Deleted ${moment(
|
|
||||||
msg.date
|
|
||||||
).fromNow()})\n\n**Content:** ${msg.content}`;
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
});
|
} else {
|
||||||
if (i == 0)
|
if (!snipes.length) {
|
||||||
return await interaction.followUp({
|
interaction.followUp({
|
||||||
content: "There isn't any snipe in this server yet",
|
content: "There isn't any snipe in this channel yet",
|
||||||
});
|
});
|
||||||
embed.setDescription(description);
|
} else {
|
||||||
embed.setTimestamp();
|
snipes.forEach(m => {
|
||||||
return await interaction.followUp({ embeds: [embed] });
|
const map = [];
|
||||||
|
for (var i = 0; i < m.attachment?.length; i++) {
|
||||||
|
map.push(
|
||||||
|
`**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (m.author !== "No Author") {
|
||||||
|
description += `\n\n**Author:** ${m.author.username}#${
|
||||||
|
m.author.discriminator
|
||||||
|
} (Deleted ${moment(m.date).fromNow()})\n**ID:** ${
|
||||||
|
m.author.id
|
||||||
|
}\n**Content:** ${m.content}\n${map ? map.join("\n") : ""}`;
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
description += `\n\n**Author:** None (Deleted ${moment(
|
||||||
|
m.date
|
||||||
|
).fromNow()})\n\n**Content:** ${m.content}\n${
|
||||||
|
map ? map.join("\n") : ""
|
||||||
|
}`;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
embed.setDescription(description);
|
||||||
|
return interaction.followUp({ embeds: [embed] });
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
const schema = require("../../models/guilds");
|
|
||||||
const prefix = require("../../config.json").prefix;
|
|
||||||
module.exports = {
|
|
||||||
name: "prefix-reset",
|
|
||||||
aliases: ["pr"],
|
|
||||||
description: 'Reset the prefix to "C." at the server',
|
|
||||||
UserPerm: "ADMINISTRATOR",
|
|
||||||
category: "Config",
|
|
||||||
run: async (client, message, args, utils) => {
|
|
||||||
message.channel
|
|
||||||
.send({ content: "**Do you want to reset your prefix?**" })
|
|
||||||
.then(async msg => {
|
|
||||||
const emoji = await utils.confirmation(
|
|
||||||
msg,
|
|
||||||
message.author,
|
|
||||||
["✅", "❌"],
|
|
||||||
10000
|
|
||||||
);
|
|
||||||
if (emoji === "✅") {
|
|
||||||
msg.delete();
|
|
||||||
schema.findOne({ Guild: message.guild.id }, async (err, data) => {
|
|
||||||
if (data) {
|
|
||||||
data.Prefix = prefix;
|
|
||||||
await schema.findOneAndUpdate({ Guild: message.guild.id }, data);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
message.channel.send({
|
|
||||||
content: `The prefix has been reset to **${prefix}**`,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (emoji === "❌") {
|
|
||||||
msg.delete();
|
|
||||||
message.channel.send({ content: "Cancelled." });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,32 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
const schema = require("../../models/guilds");
|
|
||||||
module.exports = {
|
|
||||||
name: "prefix",
|
|
||||||
usage: "(Prefix)",
|
|
||||||
description: "Set the prefix at the server",
|
|
||||||
UserPerm: "ADMINISTRATOR",
|
|
||||||
category: "Config",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
const res = args.join(" ");
|
|
||||||
if (!res) return client.err(message, "Config", "prefix", 46);
|
|
||||||
schema.findOne({ Guild: message.guild.id }, async (err, data) => {
|
|
||||||
if (err) throw err;
|
|
||||||
if (data) {
|
|
||||||
schema.findOne({ Guild: message.guild.id }, async (err, data) => {
|
|
||||||
data.Prefix = res;
|
|
||||||
await schema.findOneAndUpdate({ Guild: message.guild.id }, data);
|
|
||||||
});
|
|
||||||
message.channel.send(`Your prefix has been updated to **${res}**`);
|
|
||||||
} else {
|
|
||||||
data = new schema({
|
|
||||||
Guild: message.guild.id,
|
|
||||||
Prefix: res,
|
|
||||||
});
|
|
||||||
data.save();
|
|
||||||
message.channel.send(
|
|
||||||
`Custom prefix in this server is now set to **${res}**`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,58 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "premiumserveradd",
|
|
||||||
category: "Config",
|
|
||||||
timeout: 1000 * 60,
|
|
||||||
aliases: ["psadd", "psa", "premiumserver"],
|
|
||||||
description: "Add premium to a server",
|
|
||||||
Premium: true,
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
try {
|
|
||||||
const user = await client.data.getUser(message.author.id);
|
|
||||||
const guild = await client.data.getGuild(message.guild.id);
|
|
||||||
if (guild.Premium == true) {
|
|
||||||
return client.err(message, "Config", "premium", 506);
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
(user.Tier == 1 && user.PremiumServers.length >= 5) ||
|
|
||||||
(user.Tier == 2 && user.PremiumServers.length >= 2) ||
|
|
||||||
(user.Tier == 3 && user.PremiumServers.length >= 0)
|
|
||||||
) {
|
|
||||||
return client.err(message, "Config", "premium", 505);
|
|
||||||
}
|
|
||||||
await client.data.setPremium(message.guild.id, "true");
|
|
||||||
await client.data.pushGuild(message.author.id, message.guild.id, "push");
|
|
||||||
message.channel.send(
|
|
||||||
new MessageEmbed()
|
|
||||||
.setTitle("Success!")
|
|
||||||
.setDescription(`Premium added to **${message.guild.name}**! \n`)
|
|
||||||
.setFooter("Thank you for supporting Cath!")
|
|
||||||
.setColor("GREEN")
|
|
||||||
.setTimestamp()
|
|
||||||
.setAuthor(
|
|
||||||
message.author.tag,
|
|
||||||
message.author.displayAvatarURL({ dynamic: true })
|
|
||||||
)
|
|
||||||
);
|
|
||||||
client.ServerLog.send(
|
|
||||||
new MessageEmbed()
|
|
||||||
.setTitle("New Premium Server")
|
|
||||||
.addField("Server Info", [
|
|
||||||
`**>Server Name**: \n${message.guild.name}`,
|
|
||||||
`**>Server ID**: \n${message.guild.id}`,
|
|
||||||
`**>Server Member Count**: \n${message.guild.memberCount}`,
|
|
||||||
])
|
|
||||||
.addField("Owner Info", [
|
|
||||||
`**>Owner Tag**: \n${message.guild.owner.user.tag}`,
|
|
||||||
`**>Owner ID**: \n${message.guild.owner.id}`,
|
|
||||||
])
|
|
||||||
.setTimestamp()
|
|
||||||
.setThumbnail(message.guild.iconURL({ dynamic: true }))
|
|
||||||
.setColor("GREEN")
|
|
||||||
);
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
return client.err(message, "Config", "premium", 999);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,55 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "set",
|
|
||||||
description: "Set Goodbye/Welcome/Log Channel for the server",
|
|
||||||
usage: "(goodbye/welcome/log) (#Channel)",
|
|
||||||
UserPerm: "ADMINISTRATOR",
|
|
||||||
category: "Config",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
if (!args[0]) return client.err(message, "Config", "set", 45);
|
|
||||||
if (args[0].toLowerCase() === "goodbye") {
|
|
||||||
const channel = message.mentions.channels.first();
|
|
||||||
if (!channel) return client.err(message, "Config", "set", 28);
|
|
||||||
await client.data.setGoodbye(message.guild.id, channel.id);
|
|
||||||
message.channel.send(`Saved ${channel} as the goodbye channel.`);
|
|
||||||
} else if (args[0].toLowerCase() === "log") {
|
|
||||||
const channel = message.mentions.channels.first();
|
|
||||||
if (!channel) return client.err(message, "Config", "set", 28);
|
|
||||||
let webhookid;
|
|
||||||
let webhooktoken;
|
|
||||||
await channel
|
|
||||||
.createWebhook(message.guild.name, {
|
|
||||||
avatar: message.guild.iconURL({ format: "png" }),
|
|
||||||
})
|
|
||||||
.then(webhook => {
|
|
||||||
webhookid = webhook.id;
|
|
||||||
webhooktoken = webhook.token;
|
|
||||||
});
|
|
||||||
await client.data.setLog(
|
|
||||||
message.guild.id,
|
|
||||||
channel.id,
|
|
||||||
webhookid,
|
|
||||||
webhooktoken
|
|
||||||
);
|
|
||||||
message.channel.send(`Saved ${channel} as the log channel.`);
|
|
||||||
} else if (args[0].toLowerCase() === "welcome") {
|
|
||||||
const channel = message.mentions.channels.first();
|
|
||||||
if (!channel) return client.err(message, "Config", "set", 28);
|
|
||||||
await client.data.setWelcome(message.guild.id, channel.id);
|
|
||||||
message.channel.send(`Saved ${channel} as the welcome channel.`);
|
|
||||||
} else if (args[0].toLowerCase() === "level") {
|
|
||||||
if (args[1].toLowerCase() === "on" || args[1].toLowerCase() === "true") {
|
|
||||||
await client.data.setGLevel(message.guild.id, "true");
|
|
||||||
message.channel.send(`Levelling is enabled in this server now.`);
|
|
||||||
} else if (
|
|
||||||
args[1].toLowerCase() === "off" ||
|
|
||||||
args[1].toLowerCase() === "false"
|
|
||||||
) {
|
|
||||||
await client.data.setGLevel(message.guild.id, "false");
|
|
||||||
message.channel.send(`Levelling is disabled in this server now.`);
|
|
||||||
} else return client.err(message, "Config", "set", 45);
|
|
||||||
} else {
|
|
||||||
return client.err(message, "Config", "set", 45);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,35 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "drop",
|
|
||||||
usage: "{Channel} (Number)",
|
|
||||||
description: "Drops money to a channel",
|
|
||||||
category: "Economy",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
const p = await client.prefix(message);
|
|
||||||
const channel = message.mentions.channels.first() || message.channel;
|
|
||||||
const coinsAmount = args[0];
|
|
||||||
if (!coinsAmount) {
|
|
||||||
return client.err(message, "Economy", "drop", 5);
|
|
||||||
}
|
|
||||||
if ((await client.bal(message.author.id)) < coinsAmount) {
|
|
||||||
return client.err(message, "Economy", "drop", 20);
|
|
||||||
}
|
|
||||||
const filter = msg =>
|
|
||||||
msg.guild.id === message.guild.id && msg.content === `${p}claim`;
|
|
||||||
message.channel.send("The drop has started in " + channel.toString());
|
|
||||||
channel.send(
|
|
||||||
`${message.author.username} has dropped a ${client.currency} bomb! Use ${p}claim to claim ${client.currency}!!`
|
|
||||||
);
|
|
||||||
client.rmv(message.author.id, parseInt(coinsAmount));
|
|
||||||
channel.awaitMessages(filter, { max: 1, time: 60000 }).then(async msg => {
|
|
||||||
const id = msg.first().author.id;
|
|
||||||
const coinsToClaim = parseInt(coinsAmount);
|
|
||||||
await client.add(id, coinsToClaim, message);
|
|
||||||
msg
|
|
||||||
.first()
|
|
||||||
.reply(
|
|
||||||
`Congratultions! You have claimed **${coinsToClaim}** ${client.currency}!`
|
|
||||||
);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,40 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "announce",
|
|
||||||
UserPerm: "MANAGE_MESSAGES",
|
|
||||||
BotPerm: "MANAGE_MESSAGES",
|
|
||||||
usage: "{Channel} (Message)",
|
|
||||||
description: "Announce a message to a channel.",
|
|
||||||
category: "Moderation",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
const channel = message.mentions.channels.first() || message.channel;
|
|
||||||
if (!args[0]) return client.err(message, "Moderation", "announce", 4);
|
|
||||||
try {
|
|
||||||
message.delete();
|
|
||||||
channel.send(
|
|
||||||
new MessageEmbed()
|
|
||||||
.setAuthor(
|
|
||||||
`Sent by ${message.member.displayName}`,
|
|
||||||
message.author.displayAvatarURL({ dynamic: true })
|
|
||||||
)
|
|
||||||
.setDescription(args.slice(0).join(" "))
|
|
||||||
.setTimestamp()
|
|
||||||
.setColor(client.color)
|
|
||||||
);
|
|
||||||
message.reply(
|
|
||||||
new MessageEmbed()
|
|
||||||
.setTitle(`Message Announced`)
|
|
||||||
.addField("**Moderator**", message.author.tag, true)
|
|
||||||
.setTimestamp()
|
|
||||||
.setFooter(
|
|
||||||
message.member.displayName,
|
|
||||||
message.author.displayAvatarURL({ dynamic: true })
|
|
||||||
)
|
|
||||||
.setColor(client.color)
|
|
||||||
);
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
return client.err(message, "Moderation", "announce", 999);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,42 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
const ms = require("ms");
|
|
||||||
module.exports = {
|
|
||||||
name: "purge",
|
|
||||||
aliases: ["clear", "c"],
|
|
||||||
UserPerm: "MANAGE_MESSAGES",
|
|
||||||
BotPerm: "MANAGE_MESSAGES",
|
|
||||||
description: "Clear/Purge 1-100 messages in the channel",
|
|
||||||
usage: "(Number)",
|
|
||||||
category: "Moderation",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
if (
|
|
||||||
!args[0] ||
|
|
||||||
isNaN(args[0]) ||
|
|
||||||
parseInt(args[0]) > 100 ||
|
|
||||||
parseInt(args[0] < 0)
|
|
||||||
)
|
|
||||||
return client.err(message, "Moderation", "clear", 7);
|
|
||||||
const messages = await message.channel.messages.fetch({
|
|
||||||
limit: parseInt(args[0]),
|
|
||||||
});
|
|
||||||
const usable = messages.filter(
|
|
||||||
m => m.createdTimestamp - Date.now() < ms("14d") && !m.pinned
|
|
||||||
);
|
|
||||||
await message.delete();
|
|
||||||
await message.channel.bulkDelete(usable).then(() =>
|
|
||||||
message.channel
|
|
||||||
.send(
|
|
||||||
new MessageEmbed()
|
|
||||||
.setTitle(`Message Cleared`)
|
|
||||||
.addField("**Moderator**", message.author.tag, true)
|
|
||||||
.setTimestamp()
|
|
||||||
.setFooter(
|
|
||||||
message.member.displayName,
|
|
||||||
message.author.displayAvatarURL({ dynamic: true })
|
|
||||||
)
|
|
||||||
.setColor(client.color)
|
|
||||||
)
|
|
||||||
.then(m => m.delete({ timeout: 10000 }))
|
|
||||||
);
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,26 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "bk",
|
|
||||||
category: "Owner",
|
|
||||||
usage: "(User) (Toggle) (Reason)",
|
|
||||||
description: "Blacklist someone from the bot",
|
|
||||||
Owner: true,
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
let user = args[0];
|
|
||||||
toggle = args[1];
|
|
||||||
reason = args.slice(2).join(" ");
|
|
||||||
if (toggle === "true") {
|
|
||||||
await client.data.BK(user, toggle, reason);
|
|
||||||
message.reply(
|
|
||||||
`**Blacklisted** ${message.guild.members.cache.get(
|
|
||||||
user
|
|
||||||
)}.\n**Reason: **${reason}`
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
await client.data.BK(user, toggle, reason);
|
|
||||||
message.reply(
|
|
||||||
`Removed blacklist from ${message.guild.members.cache.get(user)}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,4 +1,4 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "info",
|
name: "info",
|
||||||
Owner: true,
|
Owner: true,
|
||||||
|
@ -9,102 +9,8 @@ module.exports = {
|
||||||
message.guild.iconURL({ dynamic: true, size: 4096 })
|
message.guild.iconURL({ dynamic: true, size: 4096 })
|
||||||
)
|
)
|
||||||
.setColor(client.color)
|
.setColor(client.color)
|
||||||
.addFields(
|
.setDescription(
|
||||||
{
|
"<@&840539971068755989>\nThe Server Owner\n<@&765928569397575750>\nThe unpingable ones\n<@&854306717977935882>\nThe Server Owner's Bots\n<@&832145795523280907>\nThe unpingable ones\n<@&756805977298305135>\nThe ones who can control the server\n<@&840537065984491531>\nPremium users of Cath\n<@&856223068782723093>\nThe developers and the helpers of Cath\n<@&836279963069710336>\nVIPs of this server. Chosen by the server owner\n<@&807976942066204674>\nPartner of Cath or the server\n<@&828273514497835059>\nThe wealthy ones\n<@&756805886244028427>\nOld VIPs\n<@&749676662098100235>\nMaybe useful for the server\n<@&840536973126270976>\nPlatium camo color\n<@&841200768706543636>\nGold camo color\n<@&841026716181069824>\nReceive announcements\n<@&841200845885538325>\nRecevie updates for Cath(s)\n<@&841026772790673448>\nRecevie updates for Night's YouTube\n<@&840926118617809006>\nPeople who are bad"
|
||||||
name: "<@&840539971068755989>",
|
|
||||||
value: "The Server Owner",
|
|
||||||
inline: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&827182913002012694>",
|
|
||||||
value: "🤐",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&765928569397575750>",
|
|
||||||
value: "The unpingable ones",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&854306717977935882>",
|
|
||||||
value: "The Server Owner's Bots",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&832145795523280907>",
|
|
||||||
value: "The unpingable ones",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&756805977298305135>",
|
|
||||||
value: "The ones who can control the server",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&840537065984491531>",
|
|
||||||
value: "Premium users of Cath",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&856223068782723093>",
|
|
||||||
value: "The developers and the helpers of Cath",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&836279963069710336>",
|
|
||||||
value: "VIPs of this server. Chosen by the server owner",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&807976942066204674>",
|
|
||||||
value: "Partner of Cath or the server",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&828273514497835059>",
|
|
||||||
value: "The wealthy ones",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&756805886244028427>",
|
|
||||||
value: "Old VIPs",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&749676662098100235>",
|
|
||||||
value: "Maybe useful for the server",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&840536973126270976>",
|
|
||||||
value: "Platium camo color",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&841200768706543636>",
|
|
||||||
value: "Gold camo color",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&841026716181069824>",
|
|
||||||
value: "Receive announcements",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&841200845885538325>",
|
|
||||||
value: "Recevie updates for Cath(s)",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&841026772790673448>",
|
|
||||||
value: "Recevie updates for Night's YouTube",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "<@&840926118617809006>",
|
|
||||||
value: "People who are bad",
|
|
||||||
inline: true,
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
.setThumbnail(client.user.displayAvatarURL())
|
.setThumbnail(client.user.displayAvatarURL())
|
||||||
.setURL(client.web)
|
.setURL(client.web)
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "setavatar",
|
|
||||||
category: "Owner",
|
|
||||||
usage: "(Link)",
|
|
||||||
description: "Set bot avatar from a link",
|
|
||||||
Owner: true,
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
if (message.deletable) {
|
|
||||||
message.delete();
|
|
||||||
}
|
|
||||||
if (!args || args.length < 1) {
|
|
||||||
return client.err(message, "Owner", "setBotAvatar", 404);
|
|
||||||
}
|
|
||||||
client.user.setAvatar(args.join(" "));
|
|
||||||
message.channel
|
|
||||||
.send("Profile picture has been changed.")
|
|
||||||
.then(m => m.delete({ timeout: 10000 }));
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,22 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "status",
|
|
||||||
usage: "(Boolean)",
|
|
||||||
description: "Maintenance mode",
|
|
||||||
category: "Owner",
|
|
||||||
Owner: true,
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
if (!args[0]) return message.channel.send("True or False?");
|
|
||||||
if (args[0].toLowerCase() === "true") {
|
|
||||||
await client.data.maintenance(client.user.id, "true");
|
|
||||||
message.channel.send(
|
|
||||||
`**${client.user.username}** is under maintenance now`
|
|
||||||
);
|
|
||||||
} else if (args[0].toLowerCase() === "false") {
|
|
||||||
await client.data.maintenance(client.user.id, "false");
|
|
||||||
message.channel.send(`**${client.user.username}** back online`);
|
|
||||||
} else {
|
|
||||||
message.channel.send("True or False?");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,59 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed, Util } = require("discord.js");
|
|
||||||
module.exports = {
|
|
||||||
name: "emojiadd",
|
|
||||||
usage: "(Link/Photo) (Name)",
|
|
||||||
aliases: ["addemoji"],
|
|
||||||
description: "Show an emoji URL or add the emoji to the server",
|
|
||||||
category: "Utilities",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
if (!args.length) return client.err(message, "Utilities", "emojiadd", 0);
|
|
||||||
|
|
||||||
if (message.attachments) {
|
|
||||||
message.attachments.map(m => {
|
|
||||||
if (
|
|
||||||
m.name.endsWith(".png") ||
|
|
||||||
m.name.endsWith(".jpeg") ||
|
|
||||||
m.name.endsWith(".jpeg") ||
|
|
||||||
m.name.endsWith(".gif") ||
|
|
||||||
m.name.endsWith(".webp")
|
|
||||||
) {
|
|
||||||
try {
|
|
||||||
if (message.attachments.map(u => u.size) > 256000)
|
|
||||||
return client.err(message, "Utilities", "emojiadd", 50);
|
|
||||||
if (args[0].length < 2 || args[0].match(/\W/))
|
|
||||||
return client.err(message, "Utilities", "emojiadd", 49);
|
|
||||||
message.attachments.map(u => {
|
|
||||||
try {
|
|
||||||
message.guild.emojis.create(u.url, args[0]).then(msg => {
|
|
||||||
const em = message.guild.emojis.cache.find(
|
|
||||||
a => a.name == args[0]
|
|
||||||
);
|
|
||||||
message.reply(`Added <:${em.name}:${em.id}> to the server`);
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
return client.err(message, "Utilities", "emojiadd", 999);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
return client.err(message, "Utilities", "emojiadd", 999);
|
|
||||||
}
|
|
||||||
} else return client.err(message, "Utilities", "emojiadd", 48);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (args[0].includes("https")) {
|
|
||||||
try {
|
|
||||||
if (args[1].length < 2 || args[1].match(/\W/))
|
|
||||||
return client.err(message, "Utilities", "emojiadd", 49);
|
|
||||||
message.guild.emojis.create(args[0], args[1]).then(msg => {
|
|
||||||
const em = message.guild.emojis.cache.find(a => a.name == args[1]);
|
|
||||||
message.reply(`Added <:${em.name}:${em.id}> to the server`);
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
return client.err(message, "Utilities", "emojiadd", 999);
|
|
||||||
}
|
|
||||||
} else return client.err(message, "Utilities", "emojiadd", 101);
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,157 +0,0 @@
|
||||||
const { Client, Message, MessageEmbed } = require("discord.js");
|
|
||||||
const moment = require("moment");
|
|
||||||
module.exports = {
|
|
||||||
name: "editsnipe",
|
|
||||||
category: "Utilities",
|
|
||||||
aliases: ["esnipe"],
|
|
||||||
usage: "{Channel}",
|
|
||||||
description: "Snipe an edited message",
|
|
||||||
run: async (client, message, args) => {
|
|
||||||
let channel =
|
|
||||||
message.mentions.channels.first() ||
|
|
||||||
message.guild.channels.cache.get(args[0]) ||
|
|
||||||
message.channel,
|
|
||||||
snipes = client.esnipes.get(channel.id),
|
|
||||||
page = 0,
|
|
||||||
reactions = ["◀️", "⏪", "⏩", "▶️"];
|
|
||||||
if (!snipes)
|
|
||||||
return message.reply(
|
|
||||||
`No snipes have been found for the channel \`${channel.name}\``
|
|
||||||
);
|
|
||||||
|
|
||||||
let users = await Promise.all(
|
|
||||||
snipes.map(snipe =>
|
|
||||||
client.users.fetch(
|
|
||||||
snipe.author === "No author found??" ? client.user.id : snipe.author
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (args[0] === "--history") {
|
|
||||||
let embed = new MessageEmbed()
|
|
||||||
.addField("Channel:", `${channel} (${channel.name})`)
|
|
||||||
.addField(
|
|
||||||
"History",
|
|
||||||
`${
|
|
||||||
snipes.length > 20
|
|
||||||
? `${snipes
|
|
||||||
.map(
|
|
||||||
(snipe, c) =>
|
|
||||||
`${users[c].tag} | ${moment
|
|
||||||
.utc(snipe.date)
|
|
||||||
.fromNow()} | snipe **${c + 1}**`
|
|
||||||
)
|
|
||||||
.slice(0, 20)
|
|
||||||
.join("\n")}\n ${snipes.length - 20} more...`
|
|
||||||
: `${snipes
|
|
||||||
.map(
|
|
||||||
(snipe, c) =>
|
|
||||||
`${users[c].tag} | ${moment
|
|
||||||
.utc(snipe.date)
|
|
||||||
.fromNow()} | snipe **${c + 1}**`
|
|
||||||
)
|
|
||||||
.slice(0, 20)
|
|
||||||
.join("\n")}`
|
|
||||||
}`
|
|
||||||
);
|
|
||||||
let msg = await message.channel.send(embed);
|
|
||||||
|
|
||||||
await Promise.all(reactions.map(r => msg.react(r)));
|
|
||||||
const backwardsFilter = (reaction, user) =>
|
|
||||||
user.id === message.author.id &&
|
|
||||||
reactions.includes(reaction.emoji.name);
|
|
||||||
const backwards = msg.createReactionCollector(backwardsFilter);
|
|
||||||
backwards.on("collect", r => {
|
|
||||||
switch (r.emoji.name) {
|
|
||||||
case "⏪":
|
|
||||||
page = 0;
|
|
||||||
break;
|
|
||||||
case "⏩":
|
|
||||||
page = snipes.length;
|
|
||||||
break;
|
|
||||||
case "◀️":
|
|
||||||
page === 1
|
|
||||||
? (page = 0)
|
|
||||||
: page === 0
|
|
||||||
? (page = snipes.length)
|
|
||||||
: page--;
|
|
||||||
break;
|
|
||||||
case "▶️":
|
|
||||||
page === snipes.length ? (page = 1) : page++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (page === 0) {
|
|
||||||
let embed = new MessageEmbed()
|
|
||||||
.addField("Channel:", `${channel} (${channel.name})`)
|
|
||||||
.addField(
|
|
||||||
"History",
|
|
||||||
`${snipes.length
|
|
||||||
.map(
|
|
||||||
(snipe, c) =>
|
|
||||||
`${users[c].tag} | ${moment
|
|
||||||
.utc(snipe.date)
|
|
||||||
.fromNow()} | snipe **${c + 1}**`
|
|
||||||
)
|
|
||||||
.slice(0, 20)
|
|
||||||
.join("\n")}`
|
|
||||||
);
|
|
||||||
msg.edit(embed);
|
|
||||||
} else {
|
|
||||||
let newembed = new MessageEmbed()
|
|
||||||
.setAuthor(
|
|
||||||
`${client.users.cache.get(snipes[page - 1].author).tag}`,
|
|
||||||
`${client.users.cache
|
|
||||||
.get(snipes[page - 1].author)
|
|
||||||
.displayAvatarURL({ format: "png", dynamic: true })}`
|
|
||||||
)
|
|
||||||
.addField("Channel:", `${channel} (${channel.name})`)
|
|
||||||
.addField("When:", `${moment.utc(snipes[page - 1].date).fromNow()}`)
|
|
||||||
.addField(
|
|
||||||
"Content:",
|
|
||||||
snipes[page - 1].content || "No content could be found"
|
|
||||||
)
|
|
||||||
.addField(
|
|
||||||
"New content:",
|
|
||||||
snipes[page - 1].newContent || "No new content could be found"
|
|
||||||
)
|
|
||||||
.setFooter(`${page}/${snipes.length}`);
|
|
||||||
snipes[page - 1].image !== null
|
|
||||||
? newembed.setImage(snipes[page - 1].image)
|
|
||||||
: "";
|
|
||||||
msg.edit(newembed);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
let num = isNaN(args[0])
|
|
||||||
? 0
|
|
||||||
: !args[0]
|
|
||||||
? 0
|
|
||||||
: args[0] < snipes.length && args[0] > 0
|
|
||||||
? args[0]
|
|
||||||
: 0;
|
|
||||||
let embed = new MessageEmbed()
|
|
||||||
.setAuthor(
|
|
||||||
`${
|
|
||||||
client.users.cache.get(snipes[num].author)
|
|
||||||
? client.users.cache.get(snipes[num].author).tag
|
|
||||||
: "no"
|
|
||||||
}`,
|
|
||||||
`${client.users.cache
|
|
||||||
.get(snipes[num].author)
|
|
||||||
.displayAvatarURL({ format: "png", dynamic: true })}`
|
|
||||||
)
|
|
||||||
.addField("Channel:", `${channel} (${channel.name})`)
|
|
||||||
.addField("When:", `${moment.utc(snipes[num].date).fromNow()}`)
|
|
||||||
.addField(
|
|
||||||
"Content:",
|
|
||||||
snipes[num].content || "No content could be found"
|
|
||||||
)
|
|
||||||
.addField(
|
|
||||||
"New content:",
|
|
||||||
snipes[num].newContent || "No new content could be found"
|
|
||||||
)
|
|
||||||
.setFooter(`Showing snipe ${parseInt(num) + 1}`);
|
|
||||||
snipes[0].image !== null ? embed.setImage(snipes[num].image) : "";
|
|
||||||
await message.channel.send(embed);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,6 +1,4 @@
|
||||||
const Discord = require("discord.js");
|
const Discord = require("discord.js");
|
||||||
const { readdirSync } = require("fs");
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "help",
|
name: "help",
|
||||||
aliases: ["h"],
|
aliases: ["h"],
|
||||||
|
|
|
@ -58,6 +58,6 @@ client.prefix = async function (message) {
|
||||||
.findOne({ Guild: message.guild.id })
|
.findOne({ Guild: message.guild.id })
|
||||||
.catch(err => console.log(err));
|
.catch(err => console.log(err));
|
||||||
if (data) custom = data.Prefix;
|
if (data) custom = data.Prefix;
|
||||||
else custom = client.configprefix;
|
else custom = client.config.prefix;
|
||||||
return custom;
|
return custom;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
const client = require("../bot");
|
const client = require("../bot");
|
||||||
const utils = require("../util/functions/function");
|
const utils = require("../util/functions/function");
|
||||||
|
const codmclient = require("../client/CODMClient");
|
||||||
client.on("interactionCreate", async interaction => {
|
client.on("interactionCreate", async interaction => {
|
||||||
if (interaction.isCommand()) {
|
if (interaction.isCommand()) {
|
||||||
await interaction.deferReply({ ephemeral: false }).catch(() => {});
|
await interaction.deferReply({ ephemeral: false }).catch(() => {});
|
||||||
|
@ -17,10 +18,68 @@ client.on("interactionCreate", async interaction => {
|
||||||
interaction.member = interaction.guild.members.cache.get(
|
interaction.member = interaction.guild.members.cache.get(
|
||||||
interaction.user.id
|
interaction.user.id
|
||||||
);
|
);
|
||||||
if (!interaction.member.permissions.has(cmd.userPerms || []))
|
const data = {};
|
||||||
return await interaction.followUp({ content: "no perm" });
|
let guildDB = await client.data.getGuild(interaction.guild.id);
|
||||||
|
if (!guildDB) return;
|
||||||
|
let userDB = await client.data.getUser(interaction.user.id);
|
||||||
|
if (!userDB) return;
|
||||||
|
let userEconDB = await client.data.getUserEcon(interaction.user.id);
|
||||||
|
data.Guild = guildDB;
|
||||||
|
data.User = userDB;
|
||||||
|
data.UserEcon = userEconDB;
|
||||||
|
if (!guildDB) await client.data.CreateGuild(interaction.guild.id);
|
||||||
|
if (!userEconDB) await client.createProfile(interaction.user.id);
|
||||||
try {
|
try {
|
||||||
cmd.run(client, interaction, args, utils);
|
if (data.User) {
|
||||||
|
if (data.User.Blacklist)
|
||||||
|
return interaction.followUp({
|
||||||
|
content:
|
||||||
|
"You have been blacklisted from the bot, please contact the developers to appeal",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (cmd.Owner) {
|
||||||
|
if (!client.owners.includes(interaction.user.id)) return;
|
||||||
|
}
|
||||||
|
if (cmd.Premium) {
|
||||||
|
if (!data.User.Premium) {
|
||||||
|
return interaction.followUp({
|
||||||
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setURL(client.web)
|
||||||
|
.setAuthor(
|
||||||
|
interaction.user.tag,
|
||||||
|
interaction.user.displayAvatarURL({ dynamic: true })
|
||||||
|
)
|
||||||
|
.setColor(client.color)
|
||||||
|
.setDescription(
|
||||||
|
`You aren't a premium user. You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team to be premium user`
|
||||||
|
)
|
||||||
|
.setTimestamp()
|
||||||
|
.setFooter(`Made by ${client.author}`),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cmd.Level) {
|
||||||
|
if (!data.Guild.Level) return;
|
||||||
|
}
|
||||||
|
if (!interaction.guild.me.permissions.has(cmd.BotPerms || []))
|
||||||
|
return interaction.followUp({
|
||||||
|
content: `You can't use this command. I need to have ${cmd.BotPerms} permission to use this command.`,
|
||||||
|
});
|
||||||
|
if (!interaction.member.permissions.has(cmd.userPerms || []))
|
||||||
|
return interaction.followUp({
|
||||||
|
content: `You can't use this command. I need to have ${cmd.UserPerms} permission to use this command.`,
|
||||||
|
});
|
||||||
|
if (data.Guild) {
|
||||||
|
if (data.Guild.Category) {
|
||||||
|
if (data.Guild.Category.includes(cmd.directory)) return;
|
||||||
|
}
|
||||||
|
if (data.Guild.Commands) {
|
||||||
|
if (data.Guild.Commands.includes(cmd.name)) return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmd.run(client, interaction, args, utils, codmclient);
|
||||||
client.channels.cache.get(client.CMDLog).send({
|
client.channels.cache.get(client.CMDLog).send({
|
||||||
content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${cmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``,
|
content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${cmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``,
|
||||||
});
|
});
|
||||||
|
@ -52,10 +111,8 @@ client.on("interactionCreate", async interaction => {
|
||||||
interaction.member = interaction.guild.members.cache.get(
|
interaction.member = interaction.guild.members.cache.get(
|
||||||
interaction.user.id
|
interaction.user.id
|
||||||
);
|
);
|
||||||
if (!interaction.member.permissions.has(ownercmd.userPerms || []))
|
|
||||||
return await interaction.followUp({ content: "no perm" });
|
|
||||||
try {
|
try {
|
||||||
ownercmd.run(client, interaction, args, utils);
|
ownercmd.run(client, interaction, args, utils, codmclient);
|
||||||
client.channels.cache.get(client.CMDLog).send({
|
client.channels.cache.get(client.CMDLog).send({
|
||||||
content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${ownercmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``,
|
content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${ownercmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``,
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const client = require("../bot");
|
const client = require("../bot");
|
||||||
const codmclient = require("../client/codmclient");
|
const codmclient = require("../client/CODMClient");
|
||||||
const leven = require("leven");
|
const leven = require("leven");
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const cooldown = require("../models/cooldown");
|
const cooldown = require("../models/cooldown");
|
||||||
|
@ -107,9 +107,6 @@ client.on("messageCreate", async message => {
|
||||||
return message.reply({
|
return message.reply({
|
||||||
content: `You can't use this command. I need to have ${command.BotPerm} permission to use this command.`,
|
content: `You can't use this command. I need to have ${command.BotPerm} permission to use this command.`,
|
||||||
});
|
});
|
||||||
client.channels.cache.get(client.CMDLog).send({
|
|
||||||
content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``,
|
|
||||||
});
|
|
||||||
if (data.Guild) {
|
if (data.Guild) {
|
||||||
if (data.Guild.Category) {
|
if (data.Guild.Category) {
|
||||||
if (data.Guild.Category.includes(command.directory)) return;
|
if (data.Guild.Category.includes(command.directory)) return;
|
||||||
|
|
|
@ -2,30 +2,26 @@ const client = require("../bot");
|
||||||
client.on("messageDelete", async message => {
|
client.on("messageDelete", async message => {
|
||||||
let all = [];
|
let all = [];
|
||||||
if (message.attachments) {
|
if (message.attachments) {
|
||||||
const mapped = message.attachments.map(a => {
|
const files = message.attachments.map(e => e);
|
||||||
if (
|
for (var i = 0; i < files.length; i++) {
|
||||||
a.name.endsWith(".png") ||
|
const file = files[i];
|
||||||
a.name.endsWith(".jpg") ||
|
all.push(file.url);
|
||||||
a.name.endsWith(".jpeg") ||
|
|
||||||
a.name.endsWith(".gif") ||
|
|
||||||
a.name.endsWith(".webp")
|
|
||||||
)
|
|
||||||
return message.attachments.first().proxyURL;
|
|
||||||
else return message.attachments.first().url;
|
|
||||||
});
|
|
||||||
if (mapped.length == 1) {
|
|
||||||
all.push(mapped);
|
|
||||||
} else if (mapped.length > 1) {
|
|
||||||
message.attachments.map(b => {
|
|
||||||
all.push(mapped);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
client.snipes.push({
|
if (message.embeds) {
|
||||||
|
for (var i = 0; i < message.embeds.length; i++) {
|
||||||
|
const files = message.embeds.map(e => e.image?.url);
|
||||||
|
all.push(files);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const snipes = client.snipes.get(message.channel.id) || [];
|
||||||
|
snipes.push({
|
||||||
channel: message.channel,
|
channel: message.channel,
|
||||||
content: message.content ? message.content : "None",
|
content: message.content ? message.content : "None",
|
||||||
author: message.author ? message.author : "No Author",
|
author: message.author ? message.author : "No Author",
|
||||||
attachment: message.attachments ? all : null,
|
attachment: message.attachments ? all : null,
|
||||||
date: new Date(),
|
date: new Date(),
|
||||||
});
|
});
|
||||||
|
snipes.splice(10);
|
||||||
|
client.snipes.set(message.channel.id, snipes);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,69 +1,28 @@
|
||||||
const client = require("../bot");
|
const client = require("../bot");
|
||||||
client.on("messageUpdate", (message, newMessage) => {
|
client.on("messageUpdate", async (message, newMessage) => {
|
||||||
function getAllTextFromEmbed(embed) {
|
let all = [];
|
||||||
let text = "";
|
if (message.attachments) {
|
||||||
function getTime(now) {
|
const files = message.attachments.map(e => e);
|
||||||
const date = new Date(now);
|
for (var i = 0; i < files.length; i++) {
|
||||||
const escape = value => `0${value}`.slice(-2);
|
const file = files[i];
|
||||||
const ampm = date.getHours() >= 12 ? "PM" : "AM";
|
all.push(file.url);
|
||||||
|
|
||||||
return `${date.getMonth()}/${date.getDate()}/${date.getFullYear()} at ${escape(
|
|
||||||
date.getHours()
|
|
||||||
)}:${escape(date.getMinutes())}:${escape(date.getSeconds())}${ampm}`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (embed.title)
|
|
||||||
text += `**${embed.title
|
|
||||||
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
|
||||||
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}**`;
|
|
||||||
if (embed.description)
|
|
||||||
text += `\n${embed.description
|
|
||||||
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
|
||||||
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`;
|
|
||||||
if (embed.fields) {
|
|
||||||
text += "\n";
|
|
||||||
for (const field of embed.fields)
|
|
||||||
text += `\n**${field.name
|
|
||||||
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
|
||||||
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}**\n ${field.value
|
|
||||||
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
|
||||||
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`;
|
|
||||||
}
|
|
||||||
if (embed.footer) {
|
|
||||||
let field = `\n\n**${embed.footer.text
|
|
||||||
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
|
||||||
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`;
|
|
||||||
|
|
||||||
if (embed.timestamp) {
|
|
||||||
const time =
|
|
||||||
embed.timestamp instanceof Date
|
|
||||||
? getTime(embed.timestamp.getTime())
|
|
||||||
: embed.timestamp;
|
|
||||||
field += `at ${time}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
text += `${field}**`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return text;
|
|
||||||
}
|
}
|
||||||
let snipes = client.esnipes.get(message.channel.id) || [];
|
if (message.embeds) {
|
||||||
snipes.unshift({
|
for (var i = 0; i < message.embeds.length; i++) {
|
||||||
content:
|
const files = message.embeds.map(e => e.image?.url);
|
||||||
message.embeds.length > 0
|
all.push(files);
|
||||||
? getAllTextFromEmbed(message.embeds[0])
|
}
|
||||||
: message.content,
|
}
|
||||||
newContent:
|
const esnipes = client.esnipes.get(message.channel.id) || [];
|
||||||
newMessage.embeds.length > 0
|
esnipes.push({
|
||||||
? getAllTextFromEmbed(newMessage.embeds[0])
|
channel: message.channel,
|
||||||
: newMessage.content,
|
oldContent: message.content ? message.content : "None",
|
||||||
author: message.author ? message.author.id : "No author found??",
|
newContent: newMessage.content ? newMessage.content : "None",
|
||||||
image: message.attachments.first()
|
author: message.author ? message.author : "No Author",
|
||||||
? message.attachments.first().proxyURL
|
attachment: message.attachments ? all : null,
|
||||||
: message.embeds.length > 0 && message.embeds[0].image
|
date: new Date(),
|
||||||
? message.embeds[0].image.url
|
|
||||||
: "",
|
|
||||||
date: Date.now(),
|
|
||||||
});
|
});
|
||||||
client.esnipes.set(message.channel.id, snipes);
|
esnipes.splice(10);
|
||||||
|
client.esnipes.set(message.channel.id, esnipes);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,17 @@
|
||||||
const client = require("../bot");
|
const client = require("../bot");
|
||||||
const version = require("../package.json").version;
|
const version = require("../package.json").version;
|
||||||
|
const starboardClient = require("../client/StarboardClient");
|
||||||
|
const g = require("../models/guilds");
|
||||||
client.on("ready", async () => {
|
client.on("ready", async () => {
|
||||||
client.manager.init(client.user.id);
|
client.manager.init(client.user.id);
|
||||||
|
const data = await g.find();
|
||||||
|
starboardClient.config.guilds.set(
|
||||||
|
data.map(x => {
|
||||||
|
return {
|
||||||
|
id: x.Guild,
|
||||||
|
options: { starCount: x.StarCount, starboardChannel: x.Starboard },
|
||||||
|
};
|
||||||
|
})
|
||||||
|
);
|
||||||
console.log(`${client.user.username} ✅\nVersion: v${version}`);
|
console.log(`${client.user.username} ✅\nVersion: v${version}`);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,83 +1,8 @@
|
||||||
const client = require("../bot");
|
const client = require("../bot");
|
||||||
const { MessageEmbed } = require("discord.js");
|
const starboardclient = require("../client/StarboardClient");
|
||||||
client.on("messageReactionAdd", async (reaction, user) => {
|
client.on("messageReactionAdd", async (reaction, user) => {
|
||||||
const star = async () => {
|
starboardclient.listener(reaction);
|
||||||
const starch = reaction.message.guild.channels.cache.find(
|
|
||||||
n => n.name.toLowerCase() === "starboard"
|
|
||||||
);
|
|
||||||
const msgs = await starch.messages.fetch({ limit: 100 });
|
|
||||||
const here = msgs.find(msg =>
|
|
||||||
msg.embeds.length === 1
|
|
||||||
? msg.embeds[0].footer.text.startsWith(reaction.message.id)
|
|
||||||
? true
|
|
||||||
: false
|
|
||||||
: false
|
|
||||||
);
|
|
||||||
if (here) here.edit(`${reaction.count} - ⭐`);
|
|
||||||
else {
|
|
||||||
const embed = new MessageEmbed()
|
|
||||||
.setColor(client.color)
|
|
||||||
.setTitle(
|
|
||||||
`From ${reaction.message.author.tag}`,
|
|
||||||
reaction.message.author.displayAvatarURL({ dynamic: true })
|
|
||||||
)
|
|
||||||
.setThumbnail(
|
|
||||||
reaction.message.author.displayAvatarURL({ dynamic: true })
|
|
||||||
)
|
|
||||||
.addField(`Message`, `[Jump!](${reaction.message.url})`)
|
|
||||||
.setDescription(
|
|
||||||
`Content: ${
|
|
||||||
reaction.message.content ? reaction.message.content : "None"
|
|
||||||
}`
|
|
||||||
)
|
|
||||||
.setImage(
|
|
||||||
reaction.message.attachments.length
|
|
||||||
? reaction.message.attachments.first().url
|
|
||||||
: null
|
|
||||||
)
|
|
||||||
.setFooter(`${reaction.message.id}`)
|
|
||||||
.setTimestamp(reaction.message.createdTimestamp);
|
|
||||||
if (starch) {
|
|
||||||
starch.send({ content: "1 - ⭐", embeds: [embed] });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (reaction.emoji.name === "⭐") {
|
|
||||||
if (reaction.message.channel.name.toLowerCase() === "starboard") return;
|
|
||||||
if (reaction.message.partial) {
|
|
||||||
await reaction.fetch();
|
|
||||||
await reaction.message.fetch();
|
|
||||||
star();
|
|
||||||
} else star();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
client.on("messageReactionRemove", async (reaction, user) => {
|
client.on("messageReactionRemove", async reaction => {
|
||||||
const star = async () => {
|
starboardclient.listener(reaction);
|
||||||
const starch = reaction.message.guild.channels.cache.find(
|
|
||||||
n => n.name.toLowerCase() === "starboard"
|
|
||||||
);
|
|
||||||
const msgs = await starch.messages.fetch({ limit: 100 });
|
|
||||||
const here = msgs.find(msg =>
|
|
||||||
msg.embeds.length === 1
|
|
||||||
? msg.embeds[0].footer.text.startsWith(reaction.message.id)
|
|
||||||
? true
|
|
||||||
: false
|
|
||||||
: false
|
|
||||||
);
|
|
||||||
if (here) {
|
|
||||||
if (reaction.count === 0) {
|
|
||||||
setTimeout(function () {
|
|
||||||
here.delete();
|
|
||||||
}, 5000);
|
|
||||||
} else here.edit(`${reaction.count} - ⭐`);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (reaction.emoji.name === "⭐") {
|
|
||||||
if (reaction.message.channel.name.toLowerCase() === "starboard") return;
|
|
||||||
if (reaction.message.partial) {
|
|
||||||
await reaction.fetch();
|
|
||||||
await reaction.message.fetch();
|
|
||||||
star();
|
|
||||||
} else star();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
11
events/typingStart.js
Normal file
11
events/typingStart.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
const client = require("../bot");
|
||||||
|
client.on("typingStart", async typing => {
|
||||||
|
if (!typing.user) return;
|
||||||
|
if (typing.user.bot) return;
|
||||||
|
if (!typing.channel) return;
|
||||||
|
if (typing.channel.type !== "DM") return;
|
||||||
|
typing.user.send({
|
||||||
|
content:
|
||||||
|
"```DMs is reserved for bug reports/suggestions/feedbacks/queries and is forwarded to the developers. Please refrain from using it as a clipboard or trying to run commands in here [by violating this condition, you agree to let us sell your data]```",
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,11 +0,0 @@
|
||||||
const mongoose = require("mongoose");
|
|
||||||
module.exports = mongoose.model(
|
|
||||||
"custom-commands",
|
|
||||||
new mongoose.Schema({
|
|
||||||
Guild: String,
|
|
||||||
Command: String,
|
|
||||||
Response: Array,
|
|
||||||
Delete: Boolean,
|
|
||||||
Random: Boolean,
|
|
||||||
})
|
|
||||||
);
|
|
|
@ -19,6 +19,22 @@ module.exports = mongoose.model(
|
||||||
Log: { type: String, default: "null" },
|
Log: { type: String, default: "null" },
|
||||||
LogWebhookID: { type: String, default: "null" },
|
LogWebhookID: { type: String, default: "null" },
|
||||||
LogWebhookToken: { type: String, default: "null" },
|
LogWebhookToken: { type: String, default: "null" },
|
||||||
|
Starboard: {
|
||||||
|
type: String,
|
||||||
|
default: "null",
|
||||||
|
},
|
||||||
|
StarCount: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
Muterole: {
|
||||||
|
type: String,
|
||||||
|
default: "null",
|
||||||
|
},
|
||||||
|
Chatbot: {
|
||||||
|
type: String,
|
||||||
|
default: "null",
|
||||||
|
},
|
||||||
Premium: {
|
Premium: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
const mongoose = require("mongoose");
|
|
||||||
|
|
||||||
module.exports = mongoose.model(
|
|
||||||
"modmail",
|
|
||||||
new mongoose.Schema({
|
|
||||||
Guild: String,
|
|
||||||
Category: String,
|
|
||||||
Choices: Object,
|
|
||||||
Role: String,
|
|
||||||
})
|
|
||||||
);
|
|
|
@ -1,10 +0,0 @@
|
||||||
const mongoose = require("mongoose");
|
|
||||||
|
|
||||||
module.exports = mongoose.model(
|
|
||||||
"reaction-roles",
|
|
||||||
new mongoose.Schema({
|
|
||||||
Guild: String,
|
|
||||||
Message: String,
|
|
||||||
Roles: Object,
|
|
||||||
})
|
|
||||||
);
|
|
|
@ -1,5 +1,5 @@
|
||||||
const client = require("../bot");
|
const client = require("../bot");
|
||||||
const codmclient = require("../client/codmclient");
|
const codmclient = require("../client/CODMClient");
|
||||||
const leven = require("leven");
|
const leven = require("leven");
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const schema = require("../unused/models/custom-commands");
|
const schema = require("../unused/models/custom-commands");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const client = require("../bot");
|
const client = require("../../bot");
|
||||||
const Schema = require("../models/reaction");
|
const Schema = require("../models/reaction");
|
||||||
|
|
||||||
client.on("messageReactionAdd", async (reaction, user) => {
|
client.on("messageReactionAdd", async (reaction, user) => {
|
File diff suppressed because one or more lines are too long
|
@ -1,44 +0,0 @@
|
||||||
const { readdirSync } = require("fs");
|
|
||||||
module.exports = client => {
|
|
||||||
readdirSync("./commands/").forEach(dir => {
|
|
||||||
const commands = readdirSync(`./commands/${dir}/`).filter(file =>
|
|
||||||
file.endsWith(".js")
|
|
||||||
);
|
|
||||||
for (let file of commands) {
|
|
||||||
let pull = require(`../commands/${dir}/${file}`);
|
|
||||||
if (pull.name) {
|
|
||||||
client.commands.set(pull.name, pull);
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (pull.aliases && Array.isArray(pull.aliases))
|
|
||||||
pull.aliases.forEach(alias => client.aliases.set(alias, pull.name));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
readdirSync("./cat/").forEach(dir => {
|
|
||||||
const commands = readdirSync(`./cat/${dir}/`).filter(file =>
|
|
||||||
file.endsWith(".js")
|
|
||||||
);
|
|
||||||
for (let file of commands) {
|
|
||||||
let pull = require(`../cat/${dir}/${file}`);
|
|
||||||
if (pull.name) {
|
|
||||||
client.hide.set(pull.name, pull);
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
readdirSync("./events/").forEach(file => {
|
|
||||||
const events = readdirSync("./events/").filter(file =>
|
|
||||||
file.endsWith(".js")
|
|
||||||
);
|
|
||||||
for (let file of events) {
|
|
||||||
let pull = require(`../events/${file}`);
|
|
||||||
if (pull) {
|
|
||||||
client.events.set(file, file);
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
3
util/dist/handler.js
vendored
3
util/dist/handler.js
vendored
|
@ -75,8 +75,9 @@ module.exports = async client => {
|
||||||
return [...accumulator, { id: v.id, permissions }];
|
return [...accumulator, { id: v.id, permissions }];
|
||||||
}, []);
|
}, []);
|
||||||
client.guilds.cache.forEach(g =>
|
client.guilds.cache.forEach(g =>
|
||||||
g.commands.permissions.set({ fullPermissions })
|
g.commands.permissions.set({ fullPermissions }).catch(e => null)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
//.catch(e => null);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
6
util/dist/slash.js
vendored
6
util/dist/slash.js
vendored
|
@ -189,6 +189,12 @@ module.exports = async (interaction, dir, file, err) => {
|
||||||
case 506:
|
case 506:
|
||||||
err = "This server is already premium";
|
err = "This server is already premium";
|
||||||
break;
|
break;
|
||||||
|
case 507:
|
||||||
|
err = "This server isn't premium yet";
|
||||||
|
break;
|
||||||
|
case 508:
|
||||||
|
err = "You didn't make the server premium";
|
||||||
|
break;
|
||||||
case 999:
|
case 999:
|
||||||
err = "An unexpected error occured. Please try again.";
|
err = "An unexpected error occured. Please try again.";
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -348,6 +348,56 @@ async function confirmation(message, author, validReactions, time = 60000) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function selectRandom(array = []) {
|
||||||
|
return array[Math.floor(Math.random() * array.length)];
|
||||||
|
}
|
||||||
|
function getAllTextFromEmbed(embed) {
|
||||||
|
let text = "";
|
||||||
|
function getTime(now) {
|
||||||
|
const date = new Date(now);
|
||||||
|
const escape = value => `0${value}`.slice(-2);
|
||||||
|
const ampm = date.getHours() >= 12 ? "PM" : "AM";
|
||||||
|
|
||||||
|
return `${date.getMonth()}/${date.getDate()}/${date.getFullYear()} at ${escape(
|
||||||
|
date.getHours()
|
||||||
|
)}:${escape(date.getMinutes())}:${escape(date.getSeconds())}${ampm}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (embed.title)
|
||||||
|
text += `**${embed.title
|
||||||
|
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
||||||
|
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}**`;
|
||||||
|
if (embed.description)
|
||||||
|
text += `\n${embed.description
|
||||||
|
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
||||||
|
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`;
|
||||||
|
if (embed.fields) {
|
||||||
|
text += "\n";
|
||||||
|
for (const field of embed.fields)
|
||||||
|
text += `\n**${field.name
|
||||||
|
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
||||||
|
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}**\n ${field.value
|
||||||
|
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
||||||
|
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`;
|
||||||
|
}
|
||||||
|
if (embed.footer) {
|
||||||
|
let field = `\n\n**${embed.footer.text
|
||||||
|
.replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite")
|
||||||
|
.replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`;
|
||||||
|
|
||||||
|
if (embed.timestamp) {
|
||||||
|
const time =
|
||||||
|
embed.timestamp instanceof Date
|
||||||
|
? getTime(embed.timestamp.getTime())
|
||||||
|
: embed.timestamp;
|
||||||
|
field += `at ${time}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
text += `${field}**`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
}
|
||||||
module.exports = {
|
module.exports = {
|
||||||
rndint,
|
rndint,
|
||||||
toBool,
|
toBool,
|
||||||
|
@ -363,4 +413,6 @@ module.exports = {
|
||||||
cooldown,
|
cooldown,
|
||||||
ms,
|
ms,
|
||||||
confirmation,
|
confirmation,
|
||||||
|
selectRandom,
|
||||||
|
getAllTextFromEmbed,
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,6 +33,10 @@ module.exports = {
|
||||||
Welcome,
|
Welcome,
|
||||||
Goodbye,
|
Goodbye,
|
||||||
Log,
|
Log,
|
||||||
|
Starboard,
|
||||||
|
StarCount,
|
||||||
|
Muterole,
|
||||||
|
Chatbot,
|
||||||
Premium,
|
Premium,
|
||||||
Category,
|
Category,
|
||||||
Commands,
|
Commands,
|
||||||
|
@ -45,6 +49,10 @@ module.exports = {
|
||||||
Welcome,
|
Welcome,
|
||||||
Goodbye,
|
Goodbye,
|
||||||
Log,
|
Log,
|
||||||
|
Starboard,
|
||||||
|
StarCount,
|
||||||
|
Muterole,
|
||||||
|
Chatbot,
|
||||||
Premium,
|
Premium,
|
||||||
Category,
|
Category,
|
||||||
Commands,
|
Commands,
|
||||||
|
@ -56,6 +64,10 @@ module.exports = {
|
||||||
const Welcome = guild.Welcome;
|
const Welcome = guild.Welcome;
|
||||||
const Goodbye = guild.Goodbye;
|
const Goodbye = guild.Goodbye;
|
||||||
const Log = guild.Log;
|
const Log = guild.Log;
|
||||||
|
const Starboard = guild.Starboard;
|
||||||
|
const StarCount = guild.StarCount;
|
||||||
|
const Muterole = guild.Muterole;
|
||||||
|
const Chatbot = guild.Chatbot;
|
||||||
const Premium = guild.Premium;
|
const Premium = guild.Premium;
|
||||||
const Category = guild.Category;
|
const Category = guild.Category;
|
||||||
const Commands = guild.Commands;
|
const Commands = guild.Commands;
|
||||||
|
@ -66,6 +78,10 @@ module.exports = {
|
||||||
Welcome,
|
Welcome,
|
||||||
Goodbye,
|
Goodbye,
|
||||||
Log,
|
Log,
|
||||||
|
Starboard,
|
||||||
|
StarCount,
|
||||||
|
Muterole,
|
||||||
|
Chatbot,
|
||||||
Premium,
|
Premium,
|
||||||
Category,
|
Category,
|
||||||
Commands,
|
Commands,
|
||||||
|
@ -204,12 +220,12 @@ module.exports = {
|
||||||
*/
|
*/
|
||||||
async BK(ID, Toggle, Reason) {
|
async BK(ID, Toggle, Reason) {
|
||||||
if (!ID) throw new Error("User ID?");
|
if (!ID) throw new Error("User ID?");
|
||||||
if (!Toggle) throw new Error("Blacklist Toggle?");
|
//if (!Toggle) throw new Error("Blacklist Toggle?");
|
||||||
if (!Reason) throw new Error("Blacklist Feason?");
|
if (!Reason) throw new Error("Blacklist Feason?");
|
||||||
const user = await u.findOne({ User: ID });
|
const user = await u.findOne({ User: ID });
|
||||||
if (!user) {
|
if (!user) {
|
||||||
const sus = new u({ User: ID });
|
const sus = new u({ User: ID });
|
||||||
if (Toggle == "true") {
|
if (Toggle == true) {
|
||||||
user.Blacklist = true;
|
user.Blacklist = true;
|
||||||
user.Blacklist_Reason = Reason;
|
user.Blacklist_Reason = Reason;
|
||||||
} else {
|
} else {
|
||||||
|
@ -220,7 +236,7 @@ module.exports = {
|
||||||
cachegoose.clearCache();
|
cachegoose.clearCache();
|
||||||
return { Reason };
|
return { Reason };
|
||||||
} else {
|
} else {
|
||||||
if (Toggle == "true") {
|
if (Toggle == true) {
|
||||||
user.Blacklist = true;
|
user.Blacklist = true;
|
||||||
user.Blacklist_Reason = Reason;
|
user.Blacklist_Reason = Reason;
|
||||||
} else {
|
} else {
|
||||||
|
@ -369,6 +385,63 @@ module.exports = {
|
||||||
cachegoose.clearCache();
|
cachegoose.clearCache();
|
||||||
return { Channel };
|
return { Channel };
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @param {String} ID - Guild ID
|
||||||
|
* @param {String} Role = Role ID
|
||||||
|
*/ async setMuterole(ID, Role) {
|
||||||
|
if (!ID) throw new Error("Guild ID?");
|
||||||
|
if (!Role) throw new Error("Role?");
|
||||||
|
const guild = await g.findOne({ Guild: ID });
|
||||||
|
if (!guild) {
|
||||||
|
const newU = new g({ Guild: ID });
|
||||||
|
newU.Muterole = Role;
|
||||||
|
await newU.save().catch(error => console.log(error));
|
||||||
|
return { Role };
|
||||||
|
}
|
||||||
|
guild.Muterole = Role;
|
||||||
|
await guild.save().catch(error => console.log(error));
|
||||||
|
cachegoose.clearCache();
|
||||||
|
return { Role };
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @param {String} ID - Guild ID
|
||||||
|
* @param {String} Channel = Channel ID
|
||||||
|
* @param {Number} Count - StarCount
|
||||||
|
*/ async setStarboard(ID, Channel, Count) {
|
||||||
|
if (!ID) throw new Error("Guild ID?");
|
||||||
|
if (!Channel) throw new Error("Channel?");
|
||||||
|
const guild = await g.findOne({ Guild: ID });
|
||||||
|
if (!guild) {
|
||||||
|
const newU = new g({ Guild: ID });
|
||||||
|
newU.Starboard = Channel;
|
||||||
|
newU.StarCount = Count;
|
||||||
|
await newU.save().catch(error => console.log(error));
|
||||||
|
return { Channel };
|
||||||
|
}
|
||||||
|
guild.Starboard = Channel;
|
||||||
|
guild.StarCount = Count;
|
||||||
|
await guild.save().catch(error => console.log(error));
|
||||||
|
cachegoose.clearCache();
|
||||||
|
return { Channel };
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @param {String} ID - Guild ID
|
||||||
|
* @param {String} Channel = Channel ID
|
||||||
|
*/ async setChatbot(ID, Channel) {
|
||||||
|
if (!ID) throw new Error("Guild ID?");
|
||||||
|
if (!Channel) throw new Error("Channel?");
|
||||||
|
const guild = await g.findOne({ Guild: ID });
|
||||||
|
if (!guild) {
|
||||||
|
const newU = new g({ Guild: ID });
|
||||||
|
newU.Chatbot = Channel;
|
||||||
|
await newU.save().catch(error => console.log(error));
|
||||||
|
return { Channel };
|
||||||
|
}
|
||||||
|
guild.Chatbot = Channel;
|
||||||
|
await guild.save().catch(error => console.log(error));
|
||||||
|
cachegoose.clearCache();
|
||||||
|
return { Channel };
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* @param {String} ID - Guild ID
|
* @param {String} ID - Guild ID
|
||||||
* @param {String} Toggle - premium Toggle
|
* @param {String} Toggle - premium Toggle
|
||||||
|
|
|
@ -35,7 +35,7 @@ module.exports = class Util {
|
||||||
((currPage % contents.length) + contents.length) % contents.length;
|
((currPage % contents.length) + contents.length) % contents.length;
|
||||||
const embed = msg.embeds[0]
|
const embed = msg.embeds[0]
|
||||||
.setDescription(contents[currPage])
|
.setDescription(contents[currPage])
|
||||||
.setFooter(`Page ${currPage + 1} of ${contents.length}.`);
|
.setFooter(`Page ${currPage + 1} of ${contents.length}`);
|
||||||
msg.edit({ embeds: [embed] });
|
msg.edit({ embeds: [embed] });
|
||||||
this.pagination(msg, author, contents, false, currPage);
|
this.pagination(msg, author, contents, false, currPage);
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue