chore: 🔥 Remove dist folder
I removed dist folder again since I accidently build and pushed it in the CI No dist folder in the repo
This commit is contained in:
parent
7c80746fd1
commit
40b640f88e
104 changed files with 0 additions and 6209 deletions
13
dist/buttons/primary/index.js
vendored
13
dist/buttons/primary/index.js
vendored
|
@ -1,13 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.metadata = void 0;
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.metadata = { guildOnly: false, ephemeral: false };
|
||||
// Execute the function
|
||||
const execute = (interaction) => {
|
||||
logger_1.default.debug(interaction.customId, "primary button clicked!");
|
||||
};
|
||||
exports.execute = execute;
|
65
dist/commands/config/index.js
vendored
65
dist/commands/config/index.js
vendored
|
@ -1,65 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const audits_1 = __importDefault(require("./modules/audits"));
|
||||
const cpgg_1 = __importDefault(require("./modules/cpgg"));
|
||||
const credits_1 = __importDefault(require("./modules/credits"));
|
||||
const embeds_1 = __importDefault(require("./modules/embeds"));
|
||||
const points_1 = __importDefault(require("./modules/points"));
|
||||
const shop_1 = __importDefault(require("./modules/shop"));
|
||||
const welcome_1 = __importDefault(require("./modules/welcome"));
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("config")
|
||||
.setDescription("Manage guild configurations.")
|
||||
.setDMPermission(false)
|
||||
// Modules
|
||||
.addSubcommand(audits_1.default.builder)
|
||||
.addSubcommand(cpgg_1.default.builder)
|
||||
.addSubcommand(credits_1.default.builder)
|
||||
.addSubcommand(embeds_1.default.builder)
|
||||
.addSubcommand(points_1.default.builder)
|
||||
.addSubcommand(shop_1.default.builder)
|
||||
.addSubcommand(welcome_1.default.builder);
|
||||
// Execute function
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "audits":
|
||||
yield audits_1.default.execute(interaction);
|
||||
break;
|
||||
case "cpgg":
|
||||
yield cpgg_1.default.execute(interaction);
|
||||
break;
|
||||
case "credits":
|
||||
yield credits_1.default.execute(interaction);
|
||||
break;
|
||||
case "embeds":
|
||||
yield embeds_1.default.execute(interaction);
|
||||
break;
|
||||
case "points":
|
||||
yield points_1.default.execute(interaction);
|
||||
break;
|
||||
case "shop":
|
||||
yield shop_1.default.execute(interaction);
|
||||
break;
|
||||
case "welcome":
|
||||
yield welcome_1.default.execute(interaction);
|
||||
break;
|
||||
default:
|
||||
throw new Error("No module found for that specific command.");
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
89
dist/commands/config/modules/audits/index.js
vendored
89
dist/commands/config/modules/audits/index.js
vendored
|
@ -1,89 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("audits")
|
||||
.setDescription("Audits")
|
||||
.addBooleanOption((option) => option
|
||||
.setName("status")
|
||||
.setDescription("Should audits be enabled?")
|
||||
.setRequired(true))
|
||||
.addChannelOption((option) => option
|
||||
.setName("channel")
|
||||
.setDescription("Channel for audit messages.")
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText)
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { guild, options } = interaction;
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild);
|
||||
const status = options.getBoolean("status");
|
||||
const channel = options.getChannel("channel");
|
||||
if (!guild)
|
||||
throw new Error("Guild not found.");
|
||||
if (!channel)
|
||||
throw new Error("Channel not found.");
|
||||
if (status === null)
|
||||
throw new Error("Status not found.");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
auditsEnabled: status,
|
||||
auditsChannelId: channel.id,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
auditsEnabled: status,
|
||||
auditsChannelId: channel.id,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
const embedSuccess = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:hammer:] Audits")
|
||||
.setDescription("Guild configuration updated successfully.")
|
||||
.setColor(successColor)
|
||||
.addFields({
|
||||
name: "🤖 Status",
|
||||
value: `${createGuild.auditsEnabled
|
||||
? ":white_check_mark: Enabled"
|
||||
: ":x: Disabled"}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "🌊 Channel",
|
||||
value: `<#${createGuild.auditsChannelId}>`,
|
||||
inline: true,
|
||||
})
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
yield interaction.editReply({
|
||||
embeds: [embedSuccess],
|
||||
});
|
||||
return;
|
||||
}),
|
||||
};
|
95
dist/commands/config/modules/cpgg/index.js
vendored
95
dist/commands/config/modules/cpgg/index.js
vendored
|
@ -1,95 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const encryption_1 = __importDefault(require("../../../../helpers/encryption"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("cpgg")
|
||||
.setDescription("Controlpanel.gg")
|
||||
.addStringOption((option) => option
|
||||
.setName("scheme")
|
||||
.setDescription(`Controlpanel.gg Scheme`)
|
||||
.setRequired(true)
|
||||
.setChoices({ name: "HTTPS (secure)", value: "https" }, { name: "HTTP (insecure)", value: "http" }))
|
||||
.addStringOption((option) => option
|
||||
.setName("domain")
|
||||
.setDescription(`Controlpanel.gg Domain`)
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("token")
|
||||
.setDescription(`Controlpanel.gg Application API`)
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild } = interaction;
|
||||
const tokenData = options.getString("token");
|
||||
const scheme = options.getString("scheme");
|
||||
const domain = options.getString("domain");
|
||||
const token = tokenData && encryption_1.default.encrypt(tokenData);
|
||||
const url = scheme && domain && encryption_1.default.encrypt(`${scheme}://${domain}`);
|
||||
if (!guild)
|
||||
throw new Error("No guild found");
|
||||
if (!token)
|
||||
throw new Error("Token not found");
|
||||
if (!url)
|
||||
throw new Error("URL not found");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
apiCpggTokenIv: token.iv,
|
||||
apiCpggTokenContent: token.content,
|
||||
apiCpggUrlIv: url.iv,
|
||||
apiCpggUrlContent: url.content,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
apiCpggTokenIv: token.iv,
|
||||
apiCpggTokenContent: token.content,
|
||||
apiCpggUrlIv: url.iv,
|
||||
apiCpggUrlContent: url.content,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Updated API credentials.`);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] CPGG")
|
||||
.setDescription(`The following configuration will be used.
|
||||
|
||||
**Scheme**: ${scheme}
|
||||
**Domain**: ${domain}
|
||||
**Token**: ends with ${tokenData === null || tokenData === void 0 ? void 0 : tokenData.slice(-4)}`)
|
||||
.setColor(successColor)
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
}));
|
||||
return;
|
||||
}),
|
||||
};
|
140
dist/commands/config/modules/credits/index.js
vendored
140
dist/commands/config/modules/credits/index.js
vendored
|
@ -1,140 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("credits")
|
||||
.setDescription(`Configure this guild's credits module.`)
|
||||
.addBooleanOption((option) => option
|
||||
.setName("enabled")
|
||||
.setDescription("Do you want to activate the credit module?")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("rate")
|
||||
.setDescription("Credit rate per message.")
|
||||
.setRequired(true)
|
||||
.setMinValue(1))
|
||||
.addNumberOption((option) => option
|
||||
.setName("minimum-length")
|
||||
.setDescription("Minimum message length to receive credit.")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("work-rate")
|
||||
.setDescription("The maximum amount of credit that can be obtained within a working day.")
|
||||
.setRequired(true)
|
||||
.setMinValue(1))
|
||||
.addNumberOption((option) => option
|
||||
.setName("work-timeout")
|
||||
.setDescription("How long you need to wait before you can work again provided in seconds.")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("timeout")
|
||||
.setDescription("How long you need to wait before you can earn more credits.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { guild, options } = interaction;
|
||||
const enabled = options.getBoolean("enabled");
|
||||
const rate = options.getNumber("rate");
|
||||
const timeout = options.getNumber("timeout");
|
||||
const minimumLength = options.getNumber("minimum-length");
|
||||
const workRate = options.getNumber("work-rate");
|
||||
const workTimeout = options.getNumber("work-timeout");
|
||||
if (!guild)
|
||||
throw new Error("Guild not found.");
|
||||
if (typeof enabled !== "boolean")
|
||||
throw new Error("Enabled option is not a boolean.");
|
||||
if (typeof rate !== "number")
|
||||
throw new Error("Rate is not a number.");
|
||||
if (typeof workRate !== "number")
|
||||
throw new Error("Work rate is not a number.");
|
||||
if (typeof workTimeout !== "number")
|
||||
throw new Error("Work timeout is not a number.");
|
||||
if (typeof timeout !== "number")
|
||||
throw new Error("Timeout is not a number.");
|
||||
if (typeof minimumLength !== "number")
|
||||
throw new Error("Minimum length is not a number.");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
creditsEnabled: enabled,
|
||||
creditsRate: rate,
|
||||
creditsTimeout: timeout,
|
||||
creditsWorkRate: workRate,
|
||||
creditsWorkTimeout: workTimeout,
|
||||
creditsMinimumLength: minimumLength,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
creditsEnabled: enabled,
|
||||
creditsRate: rate,
|
||||
creditsTimeout: timeout,
|
||||
creditsWorkRate: workRate,
|
||||
creditsWorkTimeout: workTimeout,
|
||||
creditsMinimumLength: minimumLength,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] Credits")
|
||||
.setDescription("Credits settings updated")
|
||||
.setColor(successColor)
|
||||
.addFields({
|
||||
name: "🤖 Enabled?",
|
||||
value: `${createGuild.creditsEnabled}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "📈 Rate",
|
||||
value: `${createGuild.creditsRate}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "📈 Work Rate",
|
||||
value: `${createGuild.creditsWorkRate}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "🔨 Minimum Length",
|
||||
value: `${createGuild.creditsMinimumLength}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "⏰ Timeout",
|
||||
value: `${createGuild.creditsTimeout}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "⏰ Work Timeout",
|
||||
value: `${createGuild.creditsWorkTimeout}`,
|
||||
inline: true,
|
||||
})
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
yield interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
return;
|
||||
}),
|
||||
};
|
|
@ -1,67 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../../../../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../../../middlewares/logger"));
|
||||
exports.default = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { options, guild } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
const embedConfig = yield (0, getEmbedData_1.default)(guild);
|
||||
if (!embedConfig)
|
||||
throw new Error("Embed config not found");
|
||||
const newSuccessColor = options.getString("success-color");
|
||||
const newWaitColor = options.getString("wait-color");
|
||||
const newErrorColor = options.getString("error-color");
|
||||
const newFooterIcon = options.getString("footer-icon");
|
||||
const newFooterText = options.getString("footer-text");
|
||||
if (!newSuccessColor)
|
||||
throw new Error("Success color not found");
|
||||
if (!newWaitColor)
|
||||
throw new Error("Wait color not found");
|
||||
if (!newErrorColor)
|
||||
throw new Error("Error color not found");
|
||||
if (!newFooterIcon)
|
||||
throw new Error("Footer icon not found");
|
||||
if (!newFooterText)
|
||||
throw new Error("Footer text not found");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
embedColorSuccess: newSuccessColor,
|
||||
embedColorWait: newWaitColor,
|
||||
embedColorError: newErrorColor,
|
||||
embedFooterIcon: newFooterIcon,
|
||||
embedFooterText: newFooterText,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
embedColorSuccess: newSuccessColor,
|
||||
embedColorWait: newWaitColor,
|
||||
embedColorError: newErrorColor,
|
||||
embedFooterIcon: newFooterIcon,
|
||||
embedFooterText: newFooterText,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
const successColor = createGuild.embedColorSuccess;
|
||||
const waitColor = createGuild.embedColorWait;
|
||||
const errorColor = createGuild.embedColorError;
|
||||
const footerText = createGuild.embedFooterText;
|
||||
const footerIcon = createGuild.embedFooterIcon;
|
||||
return { successColor, waitColor, errorColor, footerText, footerIcon };
|
||||
});
|
91
dist/commands/config/modules/embeds/index.js
vendored
91
dist/commands/config/modules/embeds/index.js
vendored
|
@ -1,91 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const getValues_1 = __importDefault(require("./components/getValues"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("embeds")
|
||||
.setDescription(`Embeds`)
|
||||
.addStringOption((option) => option
|
||||
.setName("success-color")
|
||||
.setDescription("No provided description")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("wait-color")
|
||||
.setDescription("No provided description")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("error-color")
|
||||
.setDescription("No provided description")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("footer-icon")
|
||||
.setDescription("No provided description")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("footer-text")
|
||||
.setDescription("No provided description")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { guild } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
const { successColor, waitColor, errorColor, footerText, footerIcon } = yield (0, getValues_1.default)(interaction);
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] Embeds")
|
||||
.setFooter({ text: footerText, iconURL: footerIcon })
|
||||
.setTimestamp(new Date());
|
||||
embed
|
||||
.setDescription("Following embed configuration will be used.")
|
||||
.setColor(successColor)
|
||||
.addFields([
|
||||
{
|
||||
name: "🟢 Success Color",
|
||||
value: `${successColor}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: "🟡 Wait Color",
|
||||
value: `${waitColor}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: "🔴 Error Color",
|
||||
value: `${errorColor}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: "🖼️ Footer Icon",
|
||||
value: `${footerIcon}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: "📄 Footer Text",
|
||||
value: `${footerText}`,
|
||||
inline: true,
|
||||
},
|
||||
]);
|
||||
yield interaction.editReply({
|
||||
embeds: [embed],
|
||||
});
|
||||
return;
|
||||
}),
|
||||
};
|
112
dist/commands/config/modules/points/index.js
vendored
112
dist/commands/config/modules/points/index.js
vendored
|
@ -1,112 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("points")
|
||||
.setDescription("Points")
|
||||
.addBooleanOption((option) => option
|
||||
.setName("status")
|
||||
.setDescription("Should credits be enabled?")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("rate")
|
||||
.setDescription("Amount of credits per message.")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("minimum-length")
|
||||
.setDescription("Minimum length of message to earn credits.")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("timeout")
|
||||
.setDescription("Timeout between earning credits (milliseconds).")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild } = interaction;
|
||||
const status = options === null || options === void 0 ? void 0 : options.getBoolean("status");
|
||||
const rate = options === null || options === void 0 ? void 0 : options.getNumber("rate");
|
||||
const timeout = options === null || options === void 0 ? void 0 : options.getNumber("timeout");
|
||||
const minimumLength = options === null || options === void 0 ? void 0 : options.getNumber("minimum-length");
|
||||
if (!guild)
|
||||
throw new Error("Guild is required");
|
||||
if (status === null)
|
||||
throw new Error("Status must be specified");
|
||||
if (!rate)
|
||||
throw new Error("Rate must be specified");
|
||||
if (!timeout)
|
||||
throw new Error("Timeout must be specified");
|
||||
if (!minimumLength)
|
||||
throw new Error("Minimum length must be specified");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
pointsEnabled: status,
|
||||
pointsRate: rate,
|
||||
pointsTimeout: timeout,
|
||||
pointsMinimumLength: minimumLength,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
pointsEnabled: status,
|
||||
pointsRate: rate,
|
||||
pointsTimeout: timeout,
|
||||
pointsMinimumLength: minimumLength,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] Points")
|
||||
.setDescription("Points settings updated")
|
||||
.setColor(successColor)
|
||||
.addFields({
|
||||
name: "🤖 Status",
|
||||
value: `${createGuild.pointsEnabled}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "📈 Rate",
|
||||
value: `${createGuild.pointsRate}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "🔨 Minimum Length",
|
||||
value: `${createGuild.pointsMinimumLength}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "⏰ Timeout",
|
||||
value: `${createGuild.pointsTimeout}`,
|
||||
inline: true,
|
||||
})
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
}));
|
||||
return;
|
||||
}),
|
||||
};
|
86
dist/commands/config/modules/shop/index.js
vendored
86
dist/commands/config/modules/shop/index.js
vendored
|
@ -1,86 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("shop")
|
||||
.setDescription("Shop")
|
||||
.addBooleanOption((option) => option
|
||||
.setName("roles-status")
|
||||
.setDescription("Should roles be enabled?")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("roles-price-per-hour")
|
||||
.setDescription("Price per hour for roles.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild } = interaction;
|
||||
const rolesStatus = options === null || options === void 0 ? void 0 : options.getBoolean("roles-status");
|
||||
const rolesPricePerHour = options === null || options === void 0 ? void 0 : options.getNumber("roles-price-per-hour");
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
if (rolesStatus === null)
|
||||
throw new Error("Status must be provided");
|
||||
if (!rolesPricePerHour)
|
||||
throw new Error("Roles price per hour must be provided");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
shopRolesEnabled: rolesStatus,
|
||||
shopRolesPricePerHour: rolesPricePerHour,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
shopRolesEnabled: rolesStatus,
|
||||
shopRolesPricePerHour: rolesPricePerHour,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] Shop")
|
||||
.setDescription("Shop settings updated")
|
||||
.setColor(successColor)
|
||||
.addFields({
|
||||
name: "🤖 Roles Status",
|
||||
value: `${createGuild.shopRolesEnabled}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "🌊 Roles Price Per Hour",
|
||||
value: `${createGuild.shopRolesPricePerHour}`,
|
||||
inline: true,
|
||||
})
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
}));
|
||||
return;
|
||||
}),
|
||||
};
|
130
dist/commands/config/modules/welcome/index.js
vendored
130
dist/commands/config/modules/welcome/index.js
vendored
|
@ -1,130 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("welcome")
|
||||
.setDescription("Welcome")
|
||||
.addBooleanOption((option) => option
|
||||
.setName("status")
|
||||
.setDescription("Should welcome be enabled?")
|
||||
.setRequired(true))
|
||||
.addChannelOption((option) => option
|
||||
.setName("join-channel")
|
||||
.setDescription("Channel for join messages.")
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText)
|
||||
.setRequired(true))
|
||||
.addChannelOption((option) => option
|
||||
.setName("leave-channel")
|
||||
.setDescription("Channel for leave messages.")
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText)
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("leave-message")
|
||||
.setDescription("Message for leave messages.")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("join-message")
|
||||
.setDescription("Message for join messages.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild } = interaction;
|
||||
const status = options === null || options === void 0 ? void 0 : options.getBoolean("status");
|
||||
const joinChannel = options === null || options === void 0 ? void 0 : options.getChannel("join-channel");
|
||||
const leaveChannel = options === null || options === void 0 ? void 0 : options.getChannel("leave-channel");
|
||||
const joinChannelMessage = options === null || options === void 0 ? void 0 : options.getString("join-message");
|
||||
const leaveChannelMessage = options === null || options === void 0 ? void 0 : options.getString("leave-message");
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
if (status === null)
|
||||
throw new Error("Status not specified");
|
||||
if (!joinChannel)
|
||||
throw new Error("Join channel not specified");
|
||||
if (!joinChannelMessage)
|
||||
throw new Error("Join channel message not specified");
|
||||
if (!leaveChannel)
|
||||
throw new Error("Leave channel not specified");
|
||||
if (!leaveChannelMessage)
|
||||
throw new Error("Leave channel message not specified");
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {
|
||||
welcomeEnabled: status,
|
||||
welcomeJoinChannelId: joinChannel.id,
|
||||
welcomeJoinChannelMessage: joinChannelMessage,
|
||||
welcomeLeaveChannelId: leaveChannel.id,
|
||||
welcomeLeaveChannelMessage: leaveChannelMessage,
|
||||
},
|
||||
create: {
|
||||
id: guild.id,
|
||||
welcomeEnabled: status,
|
||||
welcomeJoinChannelId: joinChannel.id,
|
||||
welcomeJoinChannelMessage: joinChannelMessage,
|
||||
welcomeLeaveChannelId: leaveChannel.id,
|
||||
welcomeLeaveChannelMessage: leaveChannelMessage,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
const interactionEmbedDisabled = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] Welcome")
|
||||
.setDescription("This module is currently disabled, please enable it to continue.")
|
||||
.setColor(successColor)
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
if (!createGuild.welcomeEnabled) {
|
||||
return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbedDisabled],
|
||||
});
|
||||
}
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:tools:] Welcome")
|
||||
.setDescription(`The following configuration will be used.
|
||||
|
||||
[👋] **Welcome**
|
||||
|
||||
ㅤ**Channel**: <#${createGuild.welcomeJoinChannelId}>
|
||||
ㅤ**Message**: ${createGuild.welcomeJoinChannelMessage}
|
||||
|
||||
[🚪] **Leave**
|
||||
|
||||
ㅤ**Channel**: <#${createGuild.welcomeLeaveChannelId}>
|
||||
ㅤ**Message**: ${createGuild.welcomeLeaveChannelMessage}`)
|
||||
.setColor(successColor)
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
iconURL: footerIcon,
|
||||
text: footerText,
|
||||
});
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
}));
|
||||
return true;
|
||||
}),
|
||||
};
|
33
dist/commands/counters/index.js
vendored
33
dist/commands/counters/index.js
vendored
|
@ -1,33 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const view_1 = require("./modules/view");
|
||||
//
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("counters")
|
||||
.setDescription("View guild counters")
|
||||
.setDMPermission(false)
|
||||
// Modules
|
||||
.addSubcommand(view_1.builder);
|
||||
// Execute function
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "view":
|
||||
yield (0, view_1.execute)(interaction);
|
||||
break;
|
||||
default:
|
||||
throw new Error("No module found for that command.");
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
66
dist/commands/counters/modules/view/index.js
vendored
66
dist/commands/counters/modules/view/index.js
vendored
|
@ -1,66 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../helpers/baseEmbeds");
|
||||
// 1. Create builder function.
|
||||
const builder = (command) => {
|
||||
return command
|
||||
.setName("view")
|
||||
.setDescription(`View a guild counter`)
|
||||
.addChannelOption((option) => option
|
||||
.setName("channel")
|
||||
.setDescription(`The channel that contains the counter you want to view`)
|
||||
.setRequired(true)
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText));
|
||||
};
|
||||
exports.builder = builder;
|
||||
// 2. Create execute function.
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as permanent.
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
// 2. Destructure interaction object
|
||||
const { options, guild } = interaction;
|
||||
if (!guild)
|
||||
throw new Error(`Guild not found`);
|
||||
if (!options)
|
||||
throw new Error(`Options not found`);
|
||||
// 3. Get options
|
||||
const discordChannel = options.getChannel("channel");
|
||||
if (!discordChannel)
|
||||
throw new Error(`Channel not found`);
|
||||
// 4. Create base embeds.
|
||||
const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:1234:] View");
|
||||
// 5. Get counter from database.
|
||||
const channelCounter = yield database_1.default.guildCounter.findUnique({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: discordChannel.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (!channelCounter)
|
||||
throw new Error("No counter found for channel");
|
||||
// 6. Send embed.
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
EmbedSuccess.setDescription(`Viewing counter for channel ${discordChannel}: ${channelCounter.count}!`),
|
||||
],
|
||||
});
|
||||
});
|
||||
exports.execute = execute;
|
48
dist/commands/credits/index.js
vendored
48
dist/commands/credits/index.js
vendored
|
@ -1,48 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const balance_1 = require("./modules/balance");
|
||||
const gift_1 = require("./modules/gift");
|
||||
const top_1 = require("./modules/top");
|
||||
const work_1 = require("./modules/work");
|
||||
// 1. Export a builder function.
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("credits")
|
||||
.setDescription("Manage your credits.")
|
||||
.setDMPermission(false)
|
||||
// Modules
|
||||
.addSubcommand(balance_1.builder)
|
||||
.addSubcommand(gift_1.builder)
|
||||
.addSubcommand(top_1.builder)
|
||||
.addSubcommand(work_1.builder);
|
||||
// 2. Export an execute function.
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "balance":
|
||||
yield (0, balance_1.execute)(interaction);
|
||||
break;
|
||||
case "gift":
|
||||
yield (0, gift_1.execute)(interaction);
|
||||
break;
|
||||
case "top":
|
||||
yield (0, top_1.execute)(interaction);
|
||||
break;
|
||||
case "work":
|
||||
yield (0, work_1.execute)(interaction);
|
||||
break;
|
||||
default:
|
||||
throw new Error("Subcommand not found");
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
90
dist/commands/credits/modules/balance/index.js
vendored
90
dist/commands/credits/modules/balance/index.js
vendored
|
@ -1,90 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../helpers/baseEmbeds");
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
// 1. Export a builder function.
|
||||
const builder = (command) => {
|
||||
return command
|
||||
.setName("balance")
|
||||
.setDescription(`Check balance`)
|
||||
.addUserOption((option) => option.setName("target").setDescription(`Account you want to check`));
|
||||
};
|
||||
exports.builder = builder;
|
||||
// 2. Export an execute function.
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as ephemeral.
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
// 2. Destructure interaction object.
|
||||
const { options, user, guild } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Server unavailable");
|
||||
if (!user)
|
||||
throw new Error("User unavailable");
|
||||
if (!options)
|
||||
throw new Error("Options unavailable");
|
||||
// 3. Get options from interaction.
|
||||
const target = options.getUser("target");
|
||||
// 4. Create base embeds.
|
||||
const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, ":credit_card:︱Balance");
|
||||
// 5. Upsert the user in the database.
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: (target || user).id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: (target || user).id,
|
||||
},
|
||||
where: {
|
||||
id: (target || user).id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
// 6. Send embed.
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
EmbedSuccess.setDescription(target
|
||||
? `${target} has ${createGuildMember.creditsEarned} coins in his account.`
|
||||
: `You have ${createGuildMember.creditsEarned} coins in your account.`),
|
||||
],
|
||||
});
|
||||
});
|
||||
exports.execute = execute;
|
153
dist/commands/credits/modules/gift/index.js
vendored
153
dist/commands/credits/modules/gift/index.js
vendored
|
@ -1,153 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../helpers/baseEmbeds");
|
||||
const transfer_1 = __importDefault(require("../../../../helpers/credits/transfer"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
// 1. Export a builder function.
|
||||
const builder = (command) => {
|
||||
return command
|
||||
.setName("gift")
|
||||
.setDescription(`Gift credits to an account`)
|
||||
.addUserOption((option) => option
|
||||
.setName("account")
|
||||
.setDescription("The account you gift to")
|
||||
.setRequired(true))
|
||||
.addIntegerOption((option) => option
|
||||
.setName("credits")
|
||||
.setDescription("How much you gift")
|
||||
.setRequired(true)
|
||||
.setMinValue(1)
|
||||
.setMaxValue(100000000))
|
||||
.addStringOption((option) => option
|
||||
.setName("message")
|
||||
.setDescription("Your personalized message to the account"));
|
||||
};
|
||||
exports.builder = builder;
|
||||
// 2. Export an execute function.
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as ephemeral.
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
// 2. Destructure interaction object.
|
||||
const { options, user, guild } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Server unavailable");
|
||||
if (!user)
|
||||
throw new Error("User unavailable");
|
||||
// 3. Get options from interaction.
|
||||
const account = options.getUser("account");
|
||||
const credits = options.getInteger("credits");
|
||||
const message = options.getString("message");
|
||||
if (!account)
|
||||
throw new Error("Account unavailable");
|
||||
if (typeof credits !== "number")
|
||||
throw new Error("You need to enter a valid number of credits to gift");
|
||||
// 4. Create base embeds.
|
||||
const receiverEmbed = yield (0, baseEmbeds_1.success)(guild, `:credit_card:︱You received a gift from ${user.username}`);
|
||||
// 5. Start an transaction of the credits.
|
||||
yield (0, transfer_1.default)(guild, user, account, credits);
|
||||
const receiverGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: account.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: account.id,
|
||||
},
|
||||
where: {
|
||||
id: account.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(receiverGuildMember);
|
||||
if (message)
|
||||
receiverEmbed.setFields({ name: "Message", value: message });
|
||||
// 6. Tell the target that they have been gifted credits.
|
||||
yield account.send({
|
||||
embeds: [
|
||||
receiverEmbed.setDescription(`You received a gift containing ${credits} coins from ${user}! You now have ${receiverGuildMember.creditsEarned} coins in balance!`),
|
||||
],
|
||||
});
|
||||
const senderGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(senderGuildMember);
|
||||
const senderEmbed = yield (0, baseEmbeds_1.success)(guild, ":credit_card:︱Send a gift");
|
||||
if (message)
|
||||
senderEmbed.setFields({ name: "Message", value: message });
|
||||
// 7. Tell the sender that they have gifted the credits.
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
senderEmbed.setDescription(`Your gift has been sent to ${account}. You now have ${senderGuildMember.creditsEarned} coins in balance!`),
|
||||
],
|
||||
});
|
||||
});
|
||||
exports.execute = execute;
|
60
dist/commands/credits/modules/top/index.js
vendored
60
dist/commands/credits/modules/top/index.js
vendored
|
@ -1,60 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../helpers/baseEmbeds");
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
// 1. Export a builder function.
|
||||
const builder = (command) => {
|
||||
return command.setName("top").setDescription(`View the top users`);
|
||||
};
|
||||
exports.builder = builder;
|
||||
// 2. Export an execute function.
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as permanent.
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
// 2. Destructure interaction object.
|
||||
const { guild, client } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
if (!client)
|
||||
throw new Error("Client not found");
|
||||
// 3. Create base embeds.
|
||||
const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:dollar:] Top");
|
||||
// 4. Get the top 10 users.
|
||||
const topTen = yield database_1.default.guildMember.findMany({
|
||||
where: {
|
||||
guildId: guild.id,
|
||||
},
|
||||
orderBy: {
|
||||
creditsEarned: "desc",
|
||||
},
|
||||
take: 10,
|
||||
});
|
||||
logger_1.default.silly(topTen);
|
||||
// 5. Create the top 10 list.
|
||||
const entry = (guildMember, index) => `${index + 1}. ${(0, discord_js_1.userMention)(guildMember.userId)} | :coin: ${guildMember.creditsEarned}`;
|
||||
// 6. Send embed
|
||||
return interaction.editReply({
|
||||
embeds: [
|
||||
EmbedSuccess.setDescription(`The top 10 users in this server are:\n\n${topTen
|
||||
.map(entry)
|
||||
.join("\n")}`),
|
||||
],
|
||||
});
|
||||
});
|
||||
exports.execute = execute;
|
70
dist/commands/credits/modules/work/index.js
vendored
70
dist/commands/credits/modules/work/index.js
vendored
|
@ -1,70 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const chance_1 = __importDefault(require("chance"));
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../helpers/baseEmbeds");
|
||||
const give_1 = __importDefault(require("../../../../helpers/credits/give"));
|
||||
const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
// 1. Export a builder function.
|
||||
const builder = (command) => {
|
||||
return command.setName("work").setDescription(`Work to earn credits`);
|
||||
};
|
||||
exports.builder = builder;
|
||||
// 2. Export an execute function.
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as ephemeral.
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
// 2. Destructure interaction object.
|
||||
const { guild, user, commandId } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
if (!user)
|
||||
throw new Error("User not found");
|
||||
// 3. Create base embeds.
|
||||
const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:dollar:] Work");
|
||||
// 4. Create new Chance instance.
|
||||
const chance = new chance_1.default();
|
||||
// 5. Upsert the guild in the database.
|
||||
const createGuild = yield database_1.default.guild.upsert({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuild);
|
||||
if (!createGuild)
|
||||
throw new Error("Guild not found");
|
||||
// 6. Create a cooldown for the user.
|
||||
yield (0, cooldown_1.default)(guild, user, commandId, createGuild.creditsWorkTimeout);
|
||||
// 6. Generate a random number between 0 and creditsWorkRate.
|
||||
const creditsEarned = chance.integer({
|
||||
min: 0,
|
||||
max: createGuild.creditsWorkRate,
|
||||
});
|
||||
const upsertGuildMember = yield (0, give_1.default)(guild, user, creditsEarned);
|
||||
// 8. Send embed.
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
EmbedSuccess.setDescription(`You worked and earned **${creditsEarned}** credits! You now have **${upsertGuildMember.creditsEarned}** credits. :tada:`),
|
||||
],
|
||||
});
|
||||
});
|
||||
exports.execute = execute;
|
34
dist/commands/dns/index.js
vendored
34
dist/commands/dns/index.js
vendored
|
@ -1,34 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const lookup_1 = __importDefault(require("./modules/lookup"));
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("dns")
|
||||
.setDescription("DNS commands.")
|
||||
// Modules
|
||||
.addSubcommand(lookup_1.default.builder);
|
||||
// Execute the command
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "lookup":
|
||||
yield lookup_1.default.execute(interaction);
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown subcommand: ${interaction.options.getSubcommand()}`);
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
132
dist/commands/dns/modules/lookup/index.js
vendored
132
dist/commands/dns/modules/lookup/index.js
vendored
|
@ -1,132 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const axios_1 = __importDefault(require("axios"));
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("lookup")
|
||||
.setDescription("Lookup a domain or ip. (Request sent over HTTP, proceed with caution!)")
|
||||
.addStringOption((option) => option
|
||||
.setName("query")
|
||||
.setDescription("The query you want to look up.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
const { errorColor, successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const embedTitle = "[:hammer:] Utility (Lookup)";
|
||||
const { options } = interaction;
|
||||
const query = options.getString("query");
|
||||
yield axios_1.default
|
||||
.get(`http://ip-api.com/json/${query}`)
|
||||
.then((response) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a, _b;
|
||||
if (response.data.status !== "success") {
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setTitle(embedTitle)
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
})
|
||||
.setTimestamp(new Date())
|
||||
.setColor(errorColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon })
|
||||
.setDescription(`${(_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message}: ${(_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.query}`),
|
||||
],
|
||||
});
|
||||
return;
|
||||
}
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setTitle(embedTitle)
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
})
|
||||
.setTimestamp(new Date())
|
||||
.setColor(successColor)
|
||||
.setFields([
|
||||
{
|
||||
name: ":classical_building: AS",
|
||||
value: `${response.data.as || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":classical_building: ISP",
|
||||
value: `${response.data.isp || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":classical_building: Organization",
|
||||
value: `${response.data.org || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":compass: Latitude",
|
||||
value: `${response.data.lat || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":compass: Longitude",
|
||||
value: `${response.data.lon || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":clock4: Timezone",
|
||||
value: `${response.data.timezone || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":globe_with_meridians: Country",
|
||||
value: `${response.data.country || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":globe_with_meridians: Region",
|
||||
value: `${response.data.regionName || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":globe_with_meridians: City",
|
||||
value: `${response.data.city || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":globe_with_meridians: Country Code",
|
||||
value: `${response.data.countryCode || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":globe_with_meridians: Region Code",
|
||||
value: `${response.data.region || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
{
|
||||
name: ":globe_with_meridians: ZIP",
|
||||
value: `${response.data.zip || "Unknown"}`,
|
||||
inline: true,
|
||||
},
|
||||
]),
|
||||
],
|
||||
});
|
||||
}));
|
||||
}),
|
||||
};
|
34
dist/commands/fun/index.js
vendored
34
dist/commands/fun/index.js
vendored
|
@ -1,34 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Modules
|
||||
const meme_1 = __importDefault(require("./modules/meme"));
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("fun")
|
||||
.setDescription("Fun commands.")
|
||||
.addSubcommand(meme_1.default.builder);
|
||||
// Execute function
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { options } = interaction;
|
||||
if (options.getSubcommand() === "meme") {
|
||||
yield meme_1.default.execute(interaction);
|
||||
}
|
||||
else {
|
||||
logger_1.default.silly(`Unknown subcommand ${options.getSubcommand()}`);
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
59
dist/commands/fun/modules/meme/index.js
vendored
59
dist/commands/fun/modules/meme/index.js
vendored
|
@ -1,59 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const axios_1 = __importDefault(require("axios"));
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command.setName("meme").setDescription("Random memes from r/memes");
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
const { guild, user, commandId } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Server unavailable");
|
||||
if (!user)
|
||||
throw new Error("User unavailable");
|
||||
yield (0, cooldown_1.default)(guild, user, commandId, 15);
|
||||
const embedConfig = yield (0, getEmbedData_1.default)(guild);
|
||||
yield axios_1.default
|
||||
.get("https://www.reddit.com/r/memes/random/.json")
|
||||
.then((res) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const response = res.data[0].data.children;
|
||||
const content = response[0].data;
|
||||
const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder()
|
||||
.setLabel("View post")
|
||||
.setStyle(discord_js_1.ButtonStyle.Link)
|
||||
.setEmoji("🔗")
|
||||
.setURL(`https://reddit.com${content.permalink}`));
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle(`😆︱Meme`)
|
||||
.setDescription(`**${content.title}**`)
|
||||
.setTimestamp(new Date())
|
||||
.setImage(content.url)
|
||||
.setFooter({
|
||||
text: `👍 ${content.ups}︱👎 ${content.downs}`,
|
||||
})
|
||||
.setColor(embedConfig.successColor);
|
||||
yield interaction.editReply({ embeds: [embed], components: [buttons] });
|
||||
return;
|
||||
}))
|
||||
.catch((error) => {
|
||||
throw new Error(error.message);
|
||||
});
|
||||
}),
|
||||
};
|
46
dist/commands/manage/index.js
vendored
46
dist/commands/manage/index.js
vendored
|
@ -1,46 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
//Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const counters_1 = __importDefault(require("./modules/counters"));
|
||||
const credits_1 = __importDefault(require("./modules/credits"));
|
||||
// Function
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("manage")
|
||||
.setDescription("Manage the bot.")
|
||||
.setDMPermission(false)
|
||||
// Modules
|
||||
.addSubcommandGroup(counters_1.default.builder)
|
||||
.addSubcommandGroup(credits_1.default.builder);
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// Destructure
|
||||
const { options } = interaction;
|
||||
switch (options.getSubcommandGroup()) {
|
||||
case "credits": {
|
||||
yield credits_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
case "counters": {
|
||||
yield counters_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error("Could not find an module for the command.");
|
||||
}
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
42
dist/commands/manage/modules/counters/index.js
vendored
42
dist/commands/manage/modules/counters/index.js
vendored
|
@ -1,42 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Modules
|
||||
const add_1 = __importDefault(require("./modules/add"));
|
||||
const remove_1 = __importDefault(require("./modules/remove"));
|
||||
exports.default = {
|
||||
builder: (group) => {
|
||||
return group
|
||||
.setName("counters")
|
||||
.setDescription("Manage guild counters.")
|
||||
.addSubcommand(add_1.default.builder)
|
||||
.addSubcommand(remove_1.default.builder);
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { options } = interaction;
|
||||
switch (options.getSubcommand()) {
|
||||
case "add": {
|
||||
yield add_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
case "remove": {
|
||||
yield remove_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error("Could not found a module for that command.");
|
||||
}
|
||||
}
|
||||
}),
|
||||
};
|
|
@ -1,105 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
// Configurations
|
||||
const database_1 = __importDefault(require("../../../../../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../../../middlewares/logger"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("add")
|
||||
.setDescription("Add a counter to your guild.")
|
||||
.addChannelOption((option) => option
|
||||
.setName("channel")
|
||||
.setDescription("The channel to send the counter to.")
|
||||
.setRequired(true)
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText))
|
||||
.addStringOption((option) => option
|
||||
.setName("word")
|
||||
.setDescription("The word to use for the counter.")
|
||||
.setRequired(true))
|
||||
.addNumberOption((option) => option
|
||||
.setName("start")
|
||||
.setDescription("The starting value of the counter."));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild } = interaction;
|
||||
const discordChannel = options === null || options === void 0 ? void 0 : options.getChannel("channel");
|
||||
const triggerWord = options === null || options === void 0 ? void 0 : options.getString("word");
|
||||
const startValue = options === null || options === void 0 ? void 0 : options.getNumber("start");
|
||||
if (!guild)
|
||||
throw new Error("We could not find a guild");
|
||||
if (!discordChannel)
|
||||
throw new Error("We could not find a channel");
|
||||
if (!triggerWord)
|
||||
throw new Error("We could not find a word");
|
||||
const channelCounter = yield database_1.default.guildCounter.findUnique({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: discordChannel.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (channelCounter)
|
||||
throw new Error("A counter already exists for this channel.");
|
||||
const createGuildCounter = yield database_1.default.guildCounter.upsert({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: discordChannel.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
channelId: discordChannel.id,
|
||||
triggerWord,
|
||||
count: startValue || 0,
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildCounter);
|
||||
if (createGuildCounter) {
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:toolbox:] Counters - Add")
|
||||
.setTimestamp(new Date())
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [
|
||||
embed
|
||||
.setDescription(":white_check_mark: Counter created successfully.")
|
||||
.setColor(successColor),
|
||||
],
|
||||
}));
|
||||
}
|
||||
}),
|
||||
};
|
|
@ -1,75 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
// Models
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
// Configurations
|
||||
const database_1 = __importDefault(require("../../../../../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("remove")
|
||||
.setDescription(`Delete a counter from your guild.`)
|
||||
.addChannelOption((option) => option
|
||||
.setName("channel")
|
||||
.setDescription("The channel to delete the counter from.")
|
||||
.setRequired(true)
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild } = interaction;
|
||||
const discordChannel = options === null || options === void 0 ? void 0 : options.getChannel("channel");
|
||||
if (!guild)
|
||||
throw new Error("We could not find a guild");
|
||||
if (!discordChannel)
|
||||
throw new Error("We could not find a channel");
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:toolbox:] Counters - Remove")
|
||||
.setTimestamp(new Date())
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
const channelCounter = yield database_1.default.guildCounter.findUnique({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: discordChannel.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (!channelCounter)
|
||||
throw new Error("There is no counter sin this channel, please add one first.");
|
||||
const deleteGuildCounter = yield database_1.default.guildCounter.deleteMany({
|
||||
where: {
|
||||
guildId: guild.id,
|
||||
channelId: discordChannel.id,
|
||||
},
|
||||
});
|
||||
if (!deleteGuildCounter)
|
||||
throw new Error("We could not find a counter for this guild");
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [
|
||||
embed
|
||||
.setDescription(":white_check_mark: Counter deleted successfully.")
|
||||
.setColor(successColor),
|
||||
],
|
||||
}));
|
||||
}),
|
||||
};
|
53
dist/commands/manage/modules/credits/index.js
vendored
53
dist/commands/manage/modules/credits/index.js
vendored
|
@ -1,53 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Modules
|
||||
const give_1 = __importDefault(require("./modules/give"));
|
||||
const giveaway_1 = __importDefault(require("./modules/giveaway"));
|
||||
const set_1 = __importDefault(require("./modules/set"));
|
||||
const take_1 = __importDefault(require("./modules/take"));
|
||||
const transfer_1 = __importDefault(require("./modules/transfer"));
|
||||
exports.default = {
|
||||
builder: (group) => {
|
||||
return group
|
||||
.setName("credits")
|
||||
.setDescription("Manage the credits of a user.")
|
||||
.addSubcommand(give_1.default.builder)
|
||||
.addSubcommand(set_1.default.builder)
|
||||
.addSubcommand(take_1.default.builder)
|
||||
.addSubcommand(transfer_1.default.builder)
|
||||
.addSubcommand(giveaway_1.default.builder);
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "give":
|
||||
yield give_1.default.execute(interaction);
|
||||
break;
|
||||
case "set":
|
||||
yield set_1.default.execute(interaction);
|
||||
break;
|
||||
case "take":
|
||||
yield take_1.default.execute(interaction);
|
||||
break;
|
||||
case "transfer":
|
||||
yield transfer_1.default.execute(interaction);
|
||||
break;
|
||||
case "giveaway":
|
||||
yield giveaway_1.default.execute(interaction);
|
||||
break;
|
||||
default:
|
||||
throw new Error("No module found for that specific command");
|
||||
}
|
||||
}),
|
||||
};
|
|
@ -1,69 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Configurations
|
||||
// Helpers../../../../../../../helpers/userData
|
||||
const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize"));
|
||||
// Models
|
||||
// Handlers
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../../../helpers/baseEmbeds");
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
const give_1 = __importDefault(require("../../../../../../helpers/credits/give"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("give")
|
||||
.setDescription("Give credits to a user.")
|
||||
.addUserOption((option) => option
|
||||
.setName("user")
|
||||
.setDescription("The user to give credits to.")
|
||||
.setRequired(true))
|
||||
.addIntegerOption((option) => option
|
||||
.setName("amount")
|
||||
.setDescription(`The amount of credits to give.`)
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as ephemeral.
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
// 2. Check if the user has the MANAGE_GUILD permission.
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
// 3. Destructure interaction object.
|
||||
const { guild, options } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("We could not get the current guild from discord.");
|
||||
if (!options)
|
||||
throw new Error("We could not get the options from discord.");
|
||||
// 4. Get the user and amount from the options.
|
||||
const discordReceiver = options.getUser("user");
|
||||
const creditsAmount = options.getInteger("amount");
|
||||
if (typeof creditsAmount !== "number")
|
||||
throw new Error("You need to provide a credit amount.");
|
||||
if (!discordReceiver)
|
||||
throw new Error("We could not get the receiving user from Discord");
|
||||
// 5. Create base embeds.
|
||||
const embedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:toolbox:] Give");
|
||||
// 6. Give the credits.
|
||||
yield (0, give_1.default)(guild, discordReceiver, creditsAmount);
|
||||
// 7. Send embed.
|
||||
return yield interaction.editReply({
|
||||
embeds: [
|
||||
embedSuccess.setDescription(`Successfully gave ${(0, pluralize_1.default)(creditsAmount, "credit")}`),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
|
@ -1,166 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
const axios_1 = __importDefault(require("axios"));
|
||||
const discord_js_1 = require("discord.js");
|
||||
const uuid_1 = require("uuid");
|
||||
const encryption_1 = __importDefault(require("../../../../../../helpers/encryption"));
|
||||
// Configurations
|
||||
const database_1 = __importDefault(require("../../../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../../../middlewares/logger"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("giveaway")
|
||||
.setDescription("Giveaway some credits for specified amount of users.")
|
||||
.addIntegerOption((option) => option
|
||||
.setName("uses")
|
||||
.setDescription("How many users should be able to use this.")
|
||||
.setRequired(true))
|
||||
.addIntegerOption((option) => option
|
||||
.setName("credit")
|
||||
.setDescription(`How much credits provided per use.`)
|
||||
.setRequired(true))
|
||||
.addChannelOption((option) => option
|
||||
.setName("channel")
|
||||
.setDescription("The channel to send the message to.")
|
||||
.setRequired(true)
|
||||
.addChannelTypes(discord_js_1.ChannelType.GuildText));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); // Destructure
|
||||
const { guild, user, options } = interaction;
|
||||
const uses = options === null || options === void 0 ? void 0 : options.getInteger("uses");
|
||||
const creditAmount = options === null || options === void 0 ? void 0 : options.getInteger("credit");
|
||||
const channel = options === null || options === void 0 ? void 0 : options.getChannel("channel");
|
||||
if (!uses)
|
||||
throw new Error("Amount of uses is required.");
|
||||
if (!creditAmount)
|
||||
throw new Error("Amount of credits is required.");
|
||||
if (!channel)
|
||||
throw new Error("Channel is required.");
|
||||
if (!guild)
|
||||
throw new Error("Guild is required.");
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:toolbox:] Giveaway")
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
const code = (0, uuid_1.v4)();
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
if (!createGuildMember.guild.apiCpggUrlIv ||
|
||||
!createGuildMember.guild.apiCpggUrlContent)
|
||||
throw new Error("No API url available");
|
||||
if (!createGuildMember.guild.apiCpggTokenIv ||
|
||||
!createGuildMember.guild.apiCpggTokenContent)
|
||||
throw new Error("No API token available");
|
||||
const url = encryption_1.default.decrypt({
|
||||
iv: createGuildMember.guild.apiCpggUrlIv,
|
||||
content: createGuildMember.guild.apiCpggUrlContent,
|
||||
});
|
||||
const api = axios_1.default === null || axios_1.default === void 0 ? void 0 : axios_1.default.create({
|
||||
baseURL: `${url}/api/`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${encryption_1.default.decrypt({
|
||||
iv: createGuildMember.guild.apiCpggTokenIv,
|
||||
content: createGuildMember.guild.apiCpggTokenContent,
|
||||
})}`,
|
||||
},
|
||||
});
|
||||
const shopUrl = `${url}/store`;
|
||||
yield api
|
||||
.post("vouchers", {
|
||||
uses,
|
||||
code,
|
||||
credits: creditAmount,
|
||||
memo: `[GIVEAWAY] ${interaction === null || interaction === void 0 ? void 0 : interaction.createdTimestamp} - ${(_a = interaction === null || interaction === void 0 ? void 0 : interaction.user) === null || _a === void 0 ? void 0 : _a.id}`,
|
||||
})
|
||||
.then(() => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
embed
|
||||
.setColor(successColor)
|
||||
.setDescription(`Successfully created code: ${code}`),
|
||||
],
|
||||
});
|
||||
const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder()
|
||||
.setLabel("Redeem it here")
|
||||
.setStyle(discord_js_1.ButtonStyle.Link)
|
||||
.setEmoji("🏦")
|
||||
.setURL(`${shopUrl}?voucher=${code}`));
|
||||
const discordChannel = guild === null || guild === void 0 ? void 0 : guild.channels.cache.get(channel.id);
|
||||
if (!discordChannel)
|
||||
return;
|
||||
if (discordChannel.type !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
discordChannel.send({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:parachute:] Credits!")
|
||||
.addFields([
|
||||
{
|
||||
name: "💶 Credits",
|
||||
value: `${creditAmount}`,
|
||||
inline: true,
|
||||
},
|
||||
])
|
||||
.setDescription(`${interaction.user} dropped a voucher for a maximum **${uses}** members!`)
|
||||
.setColor(successColor),
|
||||
],
|
||||
components: [buttons],
|
||||
});
|
||||
}));
|
||||
}),
|
||||
};
|
|
@ -1,66 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
// Helpers
|
||||
// Models
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../../../helpers/baseEmbeds");
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
const set_1 = __importDefault(require("../../../../../../helpers/credits/set"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("set")
|
||||
.setDescription("Set the amount of credits a user has.")
|
||||
.addUserOption((option) => option
|
||||
.setName("user")
|
||||
.setDescription("The user to set the amount of credits for.")
|
||||
.setRequired(true))
|
||||
.addIntegerOption((option) => option
|
||||
.setName("amount")
|
||||
.setDescription(`The amount of credits to set.`)
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as ephemeral.
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
// 2. Check if the user has the permission to manage the guild.
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
// 3. Destructure interaction object.
|
||||
const { options, guild } = interaction;
|
||||
if (!guild)
|
||||
throw new Error(`We could not find this guild.`);
|
||||
if (!options)
|
||||
throw new Error(`We could not find the options.`);
|
||||
// 4. Get the user and amount from the options.
|
||||
const discordUser = options.getUser("user");
|
||||
const creditAmount = options.getInteger("amount");
|
||||
if (typeof creditAmount !== "number")
|
||||
throw new Error("Amount is not set.");
|
||||
if (!discordUser)
|
||||
throw new Error("User is not specified");
|
||||
// 5. Set the credits.
|
||||
yield (0, set_1.default)(guild, discordUser, creditAmount);
|
||||
// 6. Create base embeds.
|
||||
const embedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:toolbox:] Set");
|
||||
// 7. Send embed.
|
||||
return yield interaction.editReply({
|
||||
embeds: [
|
||||
embedSuccess.setDescription(`Set **${discordUser}**'s credits to **${creditAmount}**.`),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
|
@ -1,66 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
// Models
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const baseEmbeds_1 = require("../../../../../../helpers/baseEmbeds");
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
const take_1 = __importDefault(require("../../../../../../helpers/credits/take"));
|
||||
const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("take")
|
||||
.setDescription("Take credits from a user.")
|
||||
.addUserOption((option) => option
|
||||
.setName("user")
|
||||
.setDescription("The user to take credits from.")
|
||||
.setRequired(true))
|
||||
.addIntegerOption((option) => option
|
||||
.setName("amount")
|
||||
.setDescription(`The amount of credits to take.`)
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Defer reply as ephemeral.
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
// 2. Check if the user has the MANAGE_GUILD permission.
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
// 3. Destructure interaction object.
|
||||
const { guild, options } = interaction;
|
||||
if (!guild)
|
||||
throw new Error("Invalid guild.");
|
||||
if (!options)
|
||||
throw new Error("Invalid options.");
|
||||
// 4. Get the user and amount from the options.
|
||||
const discordReceiver = options.getUser("user");
|
||||
const optionAmount = options.getInteger("amount");
|
||||
if (typeof optionAmount !== "number")
|
||||
throw new Error("Invalid amount.");
|
||||
if (!discordReceiver)
|
||||
throw new Error("Invalid user.");
|
||||
// 5. Create base embeds.
|
||||
const embedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:toolbox:] Take");
|
||||
// 6. Take the credits.
|
||||
yield (0, take_1.default)(guild, discordReceiver, optionAmount);
|
||||
// 7. Send embed.
|
||||
return yield interaction.editReply({
|
||||
embeds: [
|
||||
embedSuccess.setDescription(`Took ${(0, pluralize_1.default)(optionAmount, "credit")} from ${discordReceiver}.`),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
|
@ -1,73 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
// Models
|
||||
const discord_js_1 = require("discord.js");
|
||||
const transfer_1 = __importDefault(require("../../../../../../helpers/credits/transfer"));
|
||||
// Configurations
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("transfer")
|
||||
.setDescription("Transfer credits from one user to another.")
|
||||
.addUserOption((option) => option
|
||||
.setName("from")
|
||||
.setDescription("The user to transfer credits from.")
|
||||
.setRequired(true))
|
||||
.addUserOption((option) => option
|
||||
.setName("to")
|
||||
.setDescription("The user to transfer credits to.")
|
||||
.setRequired(true))
|
||||
.addIntegerOption((option) => option
|
||||
.setName("amount")
|
||||
.setDescription(`The amount of credits to transfer.`)
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); // Destructure member
|
||||
const { guild, options } = interaction;
|
||||
// Get options
|
||||
const optionFromUser = options === null || options === void 0 ? void 0 : options.getUser("from");
|
||||
const optionToUser = options === null || options === void 0 ? void 0 : options.getUser("to");
|
||||
const optionAmount = options === null || options === void 0 ? void 0 : options.getInteger("amount");
|
||||
if (optionAmount === null)
|
||||
throw new Error("Amount is not specified");
|
||||
if (optionAmount <= 0)
|
||||
throw new Error("You need to set amount above zero to transfer.");
|
||||
if (!guild)
|
||||
throw new Error(`We could not find this guild.`);
|
||||
if (!optionFromUser)
|
||||
throw new Error("You must provide a user to transfer from.");
|
||||
if (!optionToUser)
|
||||
throw new Error("You must provide a user to transfer to.");
|
||||
yield (0, transfer_1.default)(guild, optionFromUser, optionToUser, optionAmount);
|
||||
return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:toolbox:] Manage - Credits (Transfer)")
|
||||
.setDescription(`Transferred ${optionAmount} credits.`)
|
||||
.setTimestamp(new Date())
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon }),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
36
dist/commands/moderation/index.js
vendored
36
dist/commands/moderation/index.js
vendored
|
@ -1,36 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const prune_1 = __importDefault(require("./modules/prune"));
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("moderation")
|
||||
.setDescription("Moderation.")
|
||||
.setDMPermission(false)
|
||||
.addSubcommand(prune_1.default.builder);
|
||||
// Execute the command
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "prune": {
|
||||
yield prune_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error(`Unknown subcommand: ${interaction.options.getSubcommand()}`);
|
||||
}
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
78
dist/commands/moderation/modules/prune/index.js
vendored
78
dist/commands/moderation/modules/prune/index.js
vendored
|
@ -1,78 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission"));
|
||||
// Configurations
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("prune")
|
||||
.setDescription("Prune messages!")
|
||||
.addIntegerOption((option) => option
|
||||
.setName("count")
|
||||
.setDescription("How many messages you want to prune.")
|
||||
.setRequired(true))
|
||||
.addBooleanOption((option) => option.setName("bots").setDescription("Include bots."));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
(0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageMessages);
|
||||
const { errorColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const count = interaction.options.getInteger("count");
|
||||
if (count === null)
|
||||
return;
|
||||
const bots = interaction.options.getBoolean("bots");
|
||||
if (count < 1 || count > 100) {
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:police_car:] Prune")
|
||||
.setDescription(`You can only prune between 1 and 100 messages.`)
|
||||
.setTimestamp()
|
||||
.setColor(errorColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (((_a = interaction === null || interaction === void 0 ? void 0 : interaction.channel) === null || _a === void 0 ? void 0 : _a.type) !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
yield interaction.channel.messages.fetch().then((messages) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _b;
|
||||
const messagesToDelete = (bots
|
||||
? messages.filter((m) => { var _a; return ((_a = m === null || m === void 0 ? void 0 : m.interaction) === null || _a === void 0 ? void 0 : _a.id) !== interaction.id; })
|
||||
: messages.filter((m) => { var _a, _b; return ((_a = m === null || m === void 0 ? void 0 : m.interaction) === null || _a === void 0 ? void 0 : _a.id) !== interaction.id && ((_b = m === null || m === void 0 ? void 0 : m.author) === null || _b === void 0 ? void 0 : _b.bot) !== true; })).first(count);
|
||||
if (((_b = interaction === null || interaction === void 0 ? void 0 : interaction.channel) === null || _b === void 0 ? void 0 : _b.type) !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
yield interaction.channel
|
||||
.bulkDelete(messagesToDelete, true)
|
||||
.then(() => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:police_car:] Prune")
|
||||
.setDescription(`Successfully pruned \`${count}\` messages.`)
|
||||
.setTimestamp()
|
||||
.setColor(errorColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
}));
|
||||
}));
|
||||
}),
|
||||
};
|
40
dist/commands/reputation/index.js
vendored
40
dist/commands/reputation/index.js
vendored
|
@ -1,40 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
// Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const check_1 = __importDefault(require("./modules/check"));
|
||||
const repute_1 = __importDefault(require("./modules/repute"));
|
||||
// Function
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("reputation")
|
||||
.setDescription("See and repute users to show other how trustworthy they are")
|
||||
.setDMPermission(false)
|
||||
// Modules
|
||||
.addSubcommand(repute_1.default.builder)
|
||||
.addSubcommand(check_1.default.builder);
|
||||
// Execute function
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (interaction.options.getSubcommand() === "repute") {
|
||||
yield repute_1.default.execute(interaction);
|
||||
return;
|
||||
}
|
||||
if (interaction.options.getSubcommand() === "check") {
|
||||
yield check_1.default.execute(interaction);
|
||||
return;
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
96
dist/commands/reputation/modules/check/index.js
vendored
96
dist/commands/reputation/modules/check/index.js
vendored
|
@ -1,96 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("check")
|
||||
.setDescription("Check reputation")
|
||||
.addUserOption((option) => option
|
||||
.setName("account")
|
||||
.setDescription("The account you checking")
|
||||
.setRequired(false));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
const { options, guild, user } = interaction;
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild);
|
||||
const optionAccount = options === null || options === void 0 ? void 0 : options.getUser("account");
|
||||
if (!guild)
|
||||
throw new Error("Server unavailable");
|
||||
if (!user)
|
||||
throw new Error("User unavailable");
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: (optionAccount || user).id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: (optionAccount || user).id,
|
||||
},
|
||||
where: {
|
||||
id: (optionAccount || user).id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
const reputationType = (reputation) => {
|
||||
if (reputation < 0)
|
||||
return `negative reputation of ${reputation}`;
|
||||
if (reputation > 0)
|
||||
return `positive reputation of ${reputation}`;
|
||||
return "neutral reputation";
|
||||
};
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle(optionAccount
|
||||
? `:loudspeaker:︱Showing ${optionAccount.username}'s reputation`
|
||||
: ":loudspeaker:︱Showing your reputation")
|
||||
.setDescription(optionAccount
|
||||
? `${optionAccount} have a ${reputationType(createGuildMember.user.reputationsEarned)}`
|
||||
: `You have a ${reputationType(createGuildMember.user.reputationsEarned)}`)
|
||||
.setTimestamp()
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
}),
|
||||
};
|
|
@ -1,7 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = (to, from) => {
|
||||
if ((from === null || from === void 0 ? void 0 : from.id) === (to === null || to === void 0 ? void 0 : to.id)) {
|
||||
throw new Error("You can only repute other users");
|
||||
}
|
||||
};
|
105
dist/commands/reputation/modules/repute/index.js
vendored
105
dist/commands/reputation/modules/repute/index.js
vendored
|
@ -1,105 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
const noSelfReputation_1 = __importDefault(require("./components/noSelfReputation"));
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("repute")
|
||||
.setDescription("Repute an account")
|
||||
.addUserOption((option) => option
|
||||
.setName("account")
|
||||
.setDescription("The account you repute")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("type")
|
||||
.setDescription("Type of reputation")
|
||||
.setRequired(true)
|
||||
.addChoices({ name: "Positive", value: "positive" }, {
|
||||
name: "Negative",
|
||||
value: "negative",
|
||||
}));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
const { options, user, guild, commandId } = interaction;
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild);
|
||||
const optionAccount = options === null || options === void 0 ? void 0 : options.getUser("account");
|
||||
const optionType = options === null || options === void 0 ? void 0 : options.getString("type");
|
||||
if (!guild)
|
||||
throw new Error("Server unavailable");
|
||||
if (!optionAccount)
|
||||
throw new Error("User unavailable");
|
||||
// Pre-checks
|
||||
(0, noSelfReputation_1.default)(optionAccount, user);
|
||||
// Check if user is on cooldown otherwise create one
|
||||
yield (0, cooldown_1.default)(guild, user, commandId, parseInt(process.env.REPUTATION_TIMEOUT));
|
||||
switch (optionType) {
|
||||
case "positive": {
|
||||
const createUser = yield database_1.default.user.upsert({
|
||||
where: {
|
||||
id: optionAccount.id,
|
||||
},
|
||||
update: {
|
||||
reputationsEarned: {
|
||||
increment: 1,
|
||||
},
|
||||
},
|
||||
create: {
|
||||
id: optionAccount.id,
|
||||
reputationsEarned: 1,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createUser);
|
||||
break;
|
||||
}
|
||||
case "negative": {
|
||||
const createUser = yield database_1.default.user.upsert({
|
||||
where: {
|
||||
id: optionAccount.id,
|
||||
},
|
||||
update: {
|
||||
reputationsEarned: {
|
||||
decrement: 1,
|
||||
},
|
||||
},
|
||||
create: {
|
||||
id: optionAccount.id,
|
||||
reputationsEarned: -1,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createUser);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error("Invalid reputation type");
|
||||
}
|
||||
}
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle(`:loudspeaker:︱Reputing ${optionAccount.username}`)
|
||||
.setDescription(`You have given a ${optionType} repute to ${optionAccount}!`)
|
||||
.setTimestamp()
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
}),
|
||||
};
|
51
dist/commands/shop/index.js
vendored
51
dist/commands/shop/index.js
vendored
|
@ -1,51 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
// Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const cpgg_1 = __importDefault(require("./modules/cpgg"));
|
||||
const roles_1 = __importDefault(require("./modules/roles"));
|
||||
// Function
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("shop")
|
||||
.setDescription("Shop for credits and custom roles.")
|
||||
.setDMPermission(false)
|
||||
// Modules
|
||||
.addSubcommand(cpgg_1.default.builder)
|
||||
.addSubcommandGroup(roles_1.default.builder);
|
||||
// Execute the command
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { options } = interaction;
|
||||
switch (options.getSubcommand()) {
|
||||
case "cpgg": {
|
||||
yield cpgg_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error("Could not find module for that command.");
|
||||
}
|
||||
}
|
||||
switch (options.getSubcommandGroup()) {
|
||||
case "roles": {
|
||||
yield roles_1.default.execute(interaction);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error("Could not find module for that command.");
|
||||
}
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
175
dist/commands/shop/modules/cpgg/index.js
vendored
175
dist/commands/shop/modules/cpgg/index.js
vendored
|
@ -1,175 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const axios_1 = __importDefault(require("axios"));
|
||||
const discord_js_1 = require("discord.js");
|
||||
const uuid_1 = require("uuid");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const encryption_1 = __importDefault(require("../../../../helpers/encryption"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("cpgg")
|
||||
.setDescription("Buy cpgg power.")
|
||||
.addIntegerOption((option) => option
|
||||
.setName("amount")
|
||||
.setDescription("How much credits you want to withdraw.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a, _b, _c, _d;
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
const { errorColor, successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild, user, client } = interaction;
|
||||
const optionAmount = options === null || options === void 0 ? void 0 : options.getInteger("amount");
|
||||
if (optionAmount === null) {
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Amount is null.`);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:dollar:] Gift")
|
||||
.setDescription("We could not read your requested amount.")
|
||||
.setTimestamp()
|
||||
.setColor(errorColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
}
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
const dmUser = (_b = (_a = client === null || client === void 0 ? void 0 : client.users) === null || _a === void 0 ? void 0 : _a.cache) === null || _b === void 0 ? void 0 : _b.get(user === null || user === void 0 ? void 0 : user.id);
|
||||
if ((optionAmount || createGuildMember.creditsEarned) < 100)
|
||||
throw new Error("You can't withdraw to CPGG below 100 credits.");
|
||||
if ((optionAmount || createGuildMember.creditsEarned) > 1000000)
|
||||
throw new Error("Amount or user credits is above 1.000.000.");
|
||||
if (createGuildMember.creditsEarned < optionAmount)
|
||||
throw new Error("You can't withdraw more than you have on your account.");
|
||||
if (!createGuildMember.guild.apiCpggUrlIv ||
|
||||
!createGuildMember.guild.apiCpggUrlContent)
|
||||
throw new Error("No API url available");
|
||||
if (!createGuildMember.guild.apiCpggTokenIv ||
|
||||
!createGuildMember.guild.apiCpggTokenContent)
|
||||
throw new Error("No API token available");
|
||||
const code = (0, uuid_1.v4)();
|
||||
const url = encryption_1.default.decrypt({
|
||||
iv: createGuildMember.guild.apiCpggUrlIv,
|
||||
content: createGuildMember.guild.apiCpggUrlContent,
|
||||
});
|
||||
const api = axios_1.default === null || axios_1.default === void 0 ? void 0 : axios_1.default.create({
|
||||
baseURL: `${url}/api/`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${encryption_1.default.decrypt({
|
||||
iv: createGuildMember.guild.apiCpggTokenIv,
|
||||
content: createGuildMember.guild.apiCpggTokenContent,
|
||||
})}`,
|
||||
},
|
||||
});
|
||||
const shopUrl = `${url}/store`;
|
||||
const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder()
|
||||
.setLabel("Redeem it here")
|
||||
.setStyle(discord_js_1.ButtonStyle.Link)
|
||||
.setEmoji("🏦")
|
||||
.setURL(`${shopUrl}?voucher=${code}`));
|
||||
yield ((_d = api === null || api === void 0 ? void 0 : api.post("vouchers", {
|
||||
uses: 1,
|
||||
code,
|
||||
credits: optionAmount || createGuildMember.creditsEarned,
|
||||
memo: `${interaction === null || interaction === void 0 ? void 0 : interaction.createdTimestamp} - ${(_c = interaction === null || interaction === void 0 ? void 0 : interaction.user) === null || _c === void 0 ? void 0 : _c.id}`,
|
||||
})) === null || _d === void 0 ? void 0 : _d.then(() => __awaiter(void 0, void 0, void 0, function* () {
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Successfully created voucher.`);
|
||||
createGuildMember.creditsEarned -=
|
||||
optionAmount || createGuildMember.creditsEarned;
|
||||
const updateGuildMember = yield database_1.default.guildMember.update({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
creditsEarned: {
|
||||
decrement: optionAmount || createGuildMember.creditsEarned,
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(updateGuildMember);
|
||||
if (!interaction.guild)
|
||||
throw new Error("Guild is undefined");
|
||||
const dmEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:shopping_cart:] CPGG")
|
||||
.setDescription(`This voucher comes from **${interaction.guild.name}**.`)
|
||||
.setTimestamp()
|
||||
.addFields({
|
||||
name: "💶 Credits",
|
||||
value: `${optionAmount || createGuildMember.creditsEarned}`,
|
||||
inline: true,
|
||||
})
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield (dmUser === null || dmUser === void 0 ? void 0 : dmUser.send({
|
||||
embeds: [dmEmbed],
|
||||
components: [buttons],
|
||||
}).then((msg) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:shopping_cart:] CPGG")
|
||||
.setDescription(`I have sent you the code in [DM](${msg.url})!`)
|
||||
.setTimestamp()
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
}));
|
||||
})));
|
||||
})));
|
||||
return true;
|
||||
}),
|
||||
};
|
47
dist/commands/shop/modules/roles/index.js
vendored
47
dist/commands/shop/modules/roles/index.js
vendored
|
@ -1,47 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Handlers
|
||||
// Modules
|
||||
const buy_1 = __importDefault(require("./modules/buy"));
|
||||
const cancel_1 = __importDefault(require("./modules/cancel"));
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
exports.default = {
|
||||
builder: (group) => {
|
||||
return (group
|
||||
.setName("roles")
|
||||
.setDescription("Shop for custom roles.")
|
||||
// Modules
|
||||
.addSubcommand(buy_1.default.builder)
|
||||
.addSubcommand(cancel_1.default.builder));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (!interaction.guild)
|
||||
return;
|
||||
const { options, guild } = interaction;
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
if (!getGuild.shopRolesEnabled)
|
||||
throw new Error("This server has disabled shop roles.");
|
||||
if ((options === null || options === void 0 ? void 0 : options.getSubcommand()) === "buy") {
|
||||
yield buy_1.default.execute(interaction);
|
||||
}
|
||||
if ((options === null || options === void 0 ? void 0 : options.getSubcommand()) === "cancel") {
|
||||
yield cancel_1.default.execute(interaction);
|
||||
}
|
||||
}),
|
||||
};
|
|
@ -1,162 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
// Helpers
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../../../../../middlewares/logger"));
|
||||
// Configurations
|
||||
// import fetchUser from "../../../../../../helpers/userData";
|
||||
// Models
|
||||
const database_1 = __importDefault(require("../../../../../../handlers/database"));
|
||||
const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("buy")
|
||||
.setDescription("Buy a custom role.")
|
||||
.addStringOption((option) => option
|
||||
.setName("name")
|
||||
.setDescription("Name of the role you wish to buy.")
|
||||
.setRequired(true))
|
||||
.addStringOption((option) => option
|
||||
.setName("color")
|
||||
.setDescription("Color of the role you wish to buy.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild, user, member } = interaction;
|
||||
const optionName = options === null || options === void 0 ? void 0 : options.getString("name");
|
||||
const optionColor = options === null || options === void 0 ? void 0 : options.getString("color");
|
||||
// If amount is null
|
||||
if (optionName === null)
|
||||
throw new Error("We could not read your requested name");
|
||||
yield (guild === null || guild === void 0 ? void 0 : guild.roles.create({
|
||||
name: optionName,
|
||||
color: optionColor,
|
||||
reason: `${user === null || user === void 0 ? void 0 : user.id} bought from shop`,
|
||||
}).then((role) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
const userId = "SNOWFLKAE";
|
||||
const guildId = "SNOWFLAKE";
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId,
|
||||
guildId,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: userId,
|
||||
},
|
||||
where: {
|
||||
id: userId,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guildId,
|
||||
},
|
||||
where: {
|
||||
id: guildId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
// Get guild object
|
||||
const pricePerHour = createGuildMember.guild.shopRolesPricePerHour;
|
||||
const updateGuildMember = yield database_1.default.guildMember.update({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId,
|
||||
guildId,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
creditsEarned: { decrement: pricePerHour },
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(updateGuildMember);
|
||||
const createShopRole = yield database_1.default.guildShopRoles.upsert({
|
||||
where: {
|
||||
guildId_userId_roleId: {
|
||||
guildId: guild.id,
|
||||
userId: user.id,
|
||||
roleId: role.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
roleId: role.id,
|
||||
lastPayed: new Date(),
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createShopRole);
|
||||
yield ((_a = member === null || member === void 0 ? void 0 : member.roles) === null || _a === void 0 ? void 0 : _a.add(role === null || role === void 0 ? void 0 : role.id));
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Role ${role === null || role === void 0 ? void 0 : role.name} was bought by ${user === null || user === void 0 ? void 0 : user.tag}`);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:shopping_cart:] Buy")
|
||||
.setDescription(`You bought **${optionName}** for **${(0, pluralize_1.default)(pricePerHour, "credit")}**.`)
|
||||
.setTimestamp()
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
})).catch(() => {
|
||||
throw new Error("Failed creating role.");
|
||||
}));
|
||||
}),
|
||||
};
|
|
@ -1,126 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
// Helpers
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Configurations
|
||||
// Models
|
||||
const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply"));
|
||||
const logger_1 = __importDefault(require("../../../../../../middlewares/logger"));
|
||||
// Configurations
|
||||
// Models
|
||||
const database_1 = __importDefault(require("../../../../../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData"));
|
||||
const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("cancel")
|
||||
.setDescription("Cancel a purchase.")
|
||||
.addRoleOption((option) => option
|
||||
.setName("role")
|
||||
.setDescription("Role you wish to cancel.")
|
||||
.setRequired(true));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
yield (0, deferReply_1.default)(interaction, true);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { options, guild, user, member } = interaction;
|
||||
const optionRole = options.getRole("role");
|
||||
if (optionRole === null)
|
||||
throw new Error("We could not read your requested role.");
|
||||
if (!guild)
|
||||
throw new Error("No guild specified");
|
||||
if (!user)
|
||||
throw new Error("No user specified");
|
||||
const roleExist = yield database_1.default.guildShopRoles.findUnique({
|
||||
where: {
|
||||
guildId_userId_roleId: {
|
||||
guildId: guild.id,
|
||||
userId: user.id,
|
||||
roleId: optionRole.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (roleExist === null)
|
||||
return;
|
||||
yield ((_a = member === null || member === void 0 ? void 0 : member.roles) === null || _a === void 0 ? void 0 : _a.remove(optionRole === null || optionRole === void 0 ? void 0 : optionRole.id));
|
||||
yield (guild === null || guild === void 0 ? void 0 : guild.roles.delete(optionRole === null || optionRole === void 0 ? void 0 : optionRole.id, `${user === null || user === void 0 ? void 0 : user.id} canceled from shop`).then(() => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
if (!createGuildMember)
|
||||
throw new Error("Guild member not created");
|
||||
const deleteShopRole = yield database_1.default.guildShopRoles.delete({
|
||||
where: {
|
||||
guildId_userId_roleId: {
|
||||
guildId: guild === null || guild === void 0 ? void 0 : guild.id,
|
||||
userId: user === null || user === void 0 ? void 0 : user.id,
|
||||
roleId: optionRole === null || optionRole === void 0 ? void 0 : optionRole.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(deleteShopRole);
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle("[:shopping_cart:] Cancel")
|
||||
.setDescription(`You have canceled ${optionRole.name}.`)
|
||||
.setTimestamp()
|
||||
.setColor(successColor)
|
||||
.addFields({
|
||||
name: "Your balance",
|
||||
value: `${(0, pluralize_1.default)(createGuildMember.creditsEarned, "credit")}`,
|
||||
})
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
});
|
||||
})));
|
||||
}),
|
||||
};
|
39
dist/commands/utils/index.js
vendored
39
dist/commands/utils/index.js
vendored
|
@ -1,39 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.builder = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
// Modules
|
||||
const about_1 = __importDefault(require("./modules/about"));
|
||||
const avatar_1 = __importDefault(require("./modules/avatar"));
|
||||
exports.builder = new discord_js_1.SlashCommandBuilder()
|
||||
.setName("utils")
|
||||
.setDescription("Common utility.")
|
||||
// Modules
|
||||
.addSubcommand(about_1.default.builder)
|
||||
.addSubcommand(avatar_1.default.builder);
|
||||
// Execute the command
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
switch (interaction.options.getSubcommand()) {
|
||||
case "about":
|
||||
yield about_1.default.execute(interaction);
|
||||
break;
|
||||
case "avatar":
|
||||
yield avatar_1.default.execute(interaction);
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown subcommand: ${interaction.options.getSubcommand()}`);
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
101
dist/commands/utils/modules/about/index.js
vendored
101
dist/commands/utils/modules/about/index.js
vendored
|
@ -1,101 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/* eslint-disable no-loops/no-loops */
|
||||
// Dependencies
|
||||
const date_fns_1 = require("date-fns");
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
// Configurations
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
// Function
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("about")
|
||||
.setDescription("Check information about this instance");
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
if (!interaction.guild)
|
||||
throw new Error("You need to be in a guild");
|
||||
const { client } = interaction;
|
||||
// await cooldown(
|
||||
// interaction.guild,
|
||||
// interaction.user,
|
||||
// interaction.commandId,
|
||||
// 3600
|
||||
// );
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
// // Initialize a storage for the user ids
|
||||
// const userIds = new Set();
|
||||
// // Iterate over all guilds (always cached)
|
||||
// for await (const guild of client.guilds.cache.values()) {
|
||||
// // Fetch all guild members and iterate over them
|
||||
// for await (const member of (await guild.members.fetch()).values()) {
|
||||
// // Fetch the user, if user already cached, returns value from cache
|
||||
// // Will probably always return from cache
|
||||
// const user = await client.users.fetch(member.id);
|
||||
// // Check if user id is not already in set and user is not a bot
|
||||
// if (!userIds.has(user.id) && !user.bot) {
|
||||
// // Add unique user id to our set
|
||||
// userIds.add(user.id);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder()
|
||||
.setLabel("Support")
|
||||
.setStyle(discord_js_1.ButtonStyle.Link)
|
||||
.setEmoji("💬")
|
||||
.setURL("https://discord.zyner.org"), new discord_js_1.ButtonBuilder()
|
||||
.setLabel("Documentation")
|
||||
.setStyle(discord_js_1.ButtonStyle.Link)
|
||||
.setEmoji("📚")
|
||||
.setURL("https://xyter.zyner.org"));
|
||||
const interactionEmbed = new discord_js_1.EmbedBuilder()
|
||||
.setColor(successColor)
|
||||
.setTitle(":toolbox:︱About this instance")
|
||||
.setDescription(`This bot instance is hosted by [${process.env.BOT_HOSTER_NAME}](${process.env.BOT_HOSTER_URL}) who might have modified the [source code](https://github.com/ZynerOrg/xyter).`)
|
||||
.setFields({
|
||||
name: "Latency",
|
||||
value: `${Math.round(client.ws.ping)} ms`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "Servers (cached)",
|
||||
value: `${client.guilds.cache.size}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "Users (cached)",
|
||||
value: `${client.guilds.cache.reduce((a, g) => a + g.memberCount, 0)}`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "Version",
|
||||
value: `[${process.env.npm_package_version}](https://github.com/ZynerOrg/xyter/releases/tag/${process.env.npm_package_version})`,
|
||||
inline: true,
|
||||
}, {
|
||||
name: "Since last restart",
|
||||
value: `${(0, date_fns_1.formatDuration)((0, date_fns_1.intervalToDuration)({
|
||||
start: (0, date_fns_1.subMilliseconds)(new Date(), client.uptime),
|
||||
end: new Date(),
|
||||
}))}`,
|
||||
inline: true,
|
||||
})
|
||||
.setTimestamp()
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
yield interaction.editReply({
|
||||
embeds: [interactionEmbed],
|
||||
components: [buttons],
|
||||
});
|
||||
}),
|
||||
};
|
48
dist/commands/utils/modules/avatar/index.js
vendored
48
dist/commands/utils/modules/avatar/index.js
vendored
|
@ -1,48 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const deferReply_1 = __importDefault(require("../../../../handlers/deferReply"));
|
||||
const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData"));
|
||||
exports.default = {
|
||||
builder: (command) => {
|
||||
return command
|
||||
.setName("avatar")
|
||||
.setDescription("Check someones avatar!)")
|
||||
.addUserOption((option) => option
|
||||
.setName("user")
|
||||
.setDescription("The user whose avatar you want to check"));
|
||||
},
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, deferReply_1.default)(interaction, false);
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const userOption = interaction.options.getUser("user");
|
||||
const targetUser = userOption || interaction.user;
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTitle(":toolbox:︱Avatar")
|
||||
.setTimestamp(new Date())
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
const avatarUrl = targetUser.displayAvatarURL();
|
||||
return interaction.editReply({
|
||||
embeds: [
|
||||
embed
|
||||
.setDescription(userOption
|
||||
? `You can also [download it here](${avatarUrl})!`
|
||||
: `Your avatar is available to [download here](${avatarUrl}).`)
|
||||
.setThumbnail(avatarUrl)
|
||||
.setColor(successColor),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
60
dist/events/guildCreate/index.js
vendored
60
dist/events/guildCreate/index.js
vendored
|
@ -1,60 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const updatePresence_1 = __importDefault(require("../../handlers/updatePresence"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (guild) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { client } = guild;
|
||||
(0, updatePresence_1.default)(client);
|
||||
// Create guildMember object
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: guild.ownerId,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.ownerId,
|
||||
},
|
||||
where: {
|
||||
id: guild.ownerId,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
});
|
||||
exports.execute = execute;
|
43
dist/events/guildDelete/index.js
vendored
43
dist/events/guildDelete/index.js
vendored
|
@ -1,43 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const updatePresence_1 = __importDefault(require("../../handlers/updatePresence"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (guild) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { client } = guild;
|
||||
(0, updatePresence_1.default)(client);
|
||||
// Delete guildMember objects
|
||||
const deleteGuildMembers = database_1.default.guildMember.deleteMany({
|
||||
where: {
|
||||
guildId: guild.id,
|
||||
},
|
||||
});
|
||||
// Delete guild object
|
||||
const deleteGuild = database_1.default.guild.deleteMany({
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
});
|
||||
// The transaction runs synchronously so deleteUsers must run last.
|
||||
yield database_1.default.$transaction([deleteGuildMembers, deleteGuild]);
|
||||
logger_1.default.silly(deleteGuildMembers);
|
||||
logger_1.default.silly(deleteGuild);
|
||||
});
|
||||
exports.execute = execute;
|
71
dist/events/guildMemberAdd/audits.js
vendored
71
dist/events/guildMemberAdd/audits.js
vendored
|
@ -1,71 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (member) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
const { client, guild } = member;
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: member.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
if (getGuild.auditsEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.auditsChannelId) {
|
||||
throw new Error("Channel not found");
|
||||
}
|
||||
const embedConfig = yield (0, getEmbedData_1.default)(guild);
|
||||
const channel = client.channels.cache.get(getGuild.auditsChannelId);
|
||||
if (!channel)
|
||||
throw new Error("Channel not found");
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText) {
|
||||
throw new Error("Channel must be a text channel");
|
||||
}
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTimestamp(new Date())
|
||||
.setAuthor({
|
||||
name: "Member Joined",
|
||||
iconURL: (_a = client.user) === null || _a === void 0 ? void 0 : _a.displayAvatarURL(),
|
||||
})
|
||||
.setFooter({
|
||||
text: embedConfig.footerText,
|
||||
iconURL: embedConfig.footerIcon,
|
||||
});
|
||||
yield channel
|
||||
.send({
|
||||
embeds: [
|
||||
embed
|
||||
.setColor(embedConfig.successColor)
|
||||
.setDescription(`${member.user} - (${member.user.tag})`)
|
||||
.addFields([
|
||||
{
|
||||
name: "Account Age",
|
||||
value: `${member.user.createdAt}`,
|
||||
},
|
||||
]),
|
||||
],
|
||||
})
|
||||
.then(() => {
|
||||
logger_1.default.debug(`Audit log sent for event guildMemberAdd`);
|
||||
})
|
||||
.catch(() => {
|
||||
throw new Error("Audit log failed to send");
|
||||
});
|
||||
}),
|
||||
};
|
65
dist/events/guildMemberAdd/index.js
vendored
65
dist/events/guildMemberAdd/index.js
vendored
|
@ -1,65 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const updatePresence_1 = __importDefault(require("../../handlers/updatePresence"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
const audits_1 = __importDefault(require("./audits"));
|
||||
const joinMessage_1 = __importDefault(require("./joinMessage"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (member) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { client, user, guild } = member;
|
||||
logger_1.default.silly(`New member: ${user.tag} (${user.id}) added to guild: ${guild.name} (${guild.id})`);
|
||||
yield audits_1.default.execute(member);
|
||||
yield joinMessage_1.default.execute(member);
|
||||
(0, updatePresence_1.default)(client);
|
||||
// Create guildMember object
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
});
|
||||
exports.execute = execute;
|
52
dist/events/guildMemberAdd/joinMessage.js
vendored
52
dist/events/guildMemberAdd/joinMessage.js
vendored
|
@ -1,52 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
exports.default = {
|
||||
execute: (member) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(member.guild);
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: member.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
const { client } = member;
|
||||
if (getGuild.welcomeEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.welcomeJoinChannelId)
|
||||
return;
|
||||
const channel = client.channels.cache.get(`${getGuild.welcomeJoinChannelId}`);
|
||||
if (!channel)
|
||||
throw new Error("Channel not found");
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
throw new Error("Channel is not a text channel");
|
||||
channel.send({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setColor(successColor)
|
||||
.setTitle(`${member.user.username} has joined the server!`)
|
||||
.setThumbnail(member.user.displayAvatarURL())
|
||||
.setDescription(getGuild.welcomeJoinChannelMessage ||
|
||||
"Configure a join message in the `/settings guild welcome`.")
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
}),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
69
dist/events/guildMemberRemove/audits.js
vendored
69
dist/events/guildMemberRemove/audits.js
vendored
|
@ -1,69 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (member) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
const { client, guild } = member;
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: member.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
if (getGuild.auditsEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.auditsChannelId) {
|
||||
throw new Error("Channel not found");
|
||||
}
|
||||
const embedConfig = yield (0, getEmbedData_1.default)(guild);
|
||||
const channel = client.channels.cache.get(getGuild.auditsChannelId);
|
||||
if ((channel === null || channel === void 0 ? void 0 : channel.type) !== discord_js_1.ChannelType.GuildText) {
|
||||
throw new Error("Channel must be a text channel");
|
||||
}
|
||||
const embed = new discord_js_1.EmbedBuilder()
|
||||
.setTimestamp(new Date())
|
||||
.setAuthor({
|
||||
name: "Member Left",
|
||||
iconURL: (_a = client.user) === null || _a === void 0 ? void 0 : _a.displayAvatarURL(),
|
||||
})
|
||||
.setFooter({
|
||||
text: embedConfig.footerText,
|
||||
iconURL: embedConfig.footerIcon,
|
||||
});
|
||||
channel
|
||||
.send({
|
||||
embeds: [
|
||||
embed
|
||||
.setColor(embedConfig.errorColor)
|
||||
.setDescription(`${member.user} - (${member.user.tag})`)
|
||||
.addFields([
|
||||
{
|
||||
name: "Account Age",
|
||||
value: `${member.user.createdAt}`,
|
||||
},
|
||||
]),
|
||||
],
|
||||
})
|
||||
.then(() => {
|
||||
logger_1.default.debug(`Audit log sent for event guildMemberRemove.`);
|
||||
})
|
||||
.catch(() => {
|
||||
throw new Error("Audit log failed to send");
|
||||
});
|
||||
}),
|
||||
};
|
40
dist/events/guildMemberRemove/index.js
vendored
40
dist/events/guildMemberRemove/index.js
vendored
|
@ -1,40 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const updatePresence_1 = __importDefault(require("../../handlers/updatePresence"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
const audits_1 = __importDefault(require("./audits"));
|
||||
const leaveMessage_1 = __importDefault(require("./leaveMessage"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (member) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { client, user, guild } = member;
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Removed member: ${user.tag} (${user.id}) from guild: ${guild.name} (${guild.id})`);
|
||||
yield audits_1.default.execute(member);
|
||||
yield leaveMessage_1.default.execute(member);
|
||||
(0, updatePresence_1.default)(client);
|
||||
// Delete guildMember object
|
||||
const deleteGuildMember = yield database_1.default.guildMember.deleteMany({
|
||||
where: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(deleteGuildMember);
|
||||
});
|
||||
exports.execute = execute;
|
52
dist/events/guildMemberRemove/leaveMessage.js
vendored
52
dist/events/guildMemberRemove/leaveMessage.js
vendored
|
@ -1,52 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
exports.default = {
|
||||
execute: (member) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { footerText, footerIcon, errorColor } = yield (0, getEmbedData_1.default)(member.guild);
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: member.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
const { client } = member;
|
||||
if (getGuild.welcomeEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.welcomeLeaveChannelId)
|
||||
return;
|
||||
const channel = client.channels.cache.get(`${getGuild.welcomeLeaveChannelId}`);
|
||||
if (!channel)
|
||||
throw new Error("Channel not found");
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
throw new Error("Channel is not a text channel");
|
||||
channel.send({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setColor(errorColor)
|
||||
.setTitle(`${member.user.username} has left the server!`)
|
||||
.setThumbnail(member.user.displayAvatarURL())
|
||||
.setDescription(getGuild.welcomeLeaveChannelMessage ||
|
||||
"Configure a leave message in the `/settings guild welcome`.")
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
}),
|
||||
],
|
||||
});
|
||||
}),
|
||||
};
|
68
dist/events/interactionCreate/audits.js
vendored
68
dist/events/interactionCreate/audits.js
vendored
|
@ -1,68 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (interaction === null)
|
||||
return;
|
||||
if (interaction.guild === null)
|
||||
return;
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: interaction.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
const { client } = interaction;
|
||||
if (getGuild.auditsEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.auditsChannelId)
|
||||
return;
|
||||
const channel = client.channels.cache.get(`${getGuild.auditsChannelId}`);
|
||||
if (!channel)
|
||||
return;
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
channel
|
||||
.send({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setColor(successColor)
|
||||
.setDescription(`
|
||||
**Interaction created by** ${interaction.user.username} **in** ${interaction.channel}
|
||||
ㅤ**Interaction ID**: ${interaction.id}
|
||||
ㅤ**Type**: ${interaction.type}
|
||||
ㅤ**User ID**: ${interaction.user.id}
|
||||
`)
|
||||
.setThumbnail(interaction.user.displayAvatarURL())
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
}),
|
||||
],
|
||||
})
|
||||
.then(() => {
|
||||
var _a, _b;
|
||||
logger_1.default.debug(`Audit log sent for event interactionCreate in guild ${(_a = interaction === null || interaction === void 0 ? void 0 : interaction.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = interaction === null || interaction === void 0 ? void 0 : interaction.guild) === null || _b === void 0 ? void 0 : _b.id})`);
|
||||
})
|
||||
.catch(() => {
|
||||
logger_1.default.silly("Failed to send audit log for event interactionCreate");
|
||||
});
|
||||
}),
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
if (!interaction.isButton())
|
||||
return;
|
||||
const { customId } = interaction;
|
||||
const currentButton = yield (_a = `../../../buttons/${customId}`, Promise.resolve().then(() => __importStar(require(_a))));
|
||||
if (!currentButton)
|
||||
throw new Error(`Unknown button ${customId}`);
|
||||
yield currentButton.execute(interaction);
|
||||
});
|
|
@ -1,20 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (!interaction.isCommand())
|
||||
return;
|
||||
const { client, commandName } = interaction;
|
||||
const currentCommand = client.commands.get(commandName);
|
||||
if (!currentCommand)
|
||||
throw new Error(`Unknown command ${commandName}`);
|
||||
yield currentCommand.execute(interaction);
|
||||
});
|
48
dist/events/interactionCreate/handlers/index.js
vendored
48
dist/events/interactionCreate/handlers/index.js
vendored
|
@ -1,48 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.handleCommandInteraction = exports.execute = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
const getEmbedData_1 = __importDefault(require("../../../helpers/getEmbedData"));
|
||||
const button_1 = __importDefault(require("./button"));
|
||||
const command_1 = __importDefault(require("./command"));
|
||||
// Send interactions to all available handlers
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield (0, button_1.default)(interaction);
|
||||
yield (0, command_1.default)(interaction);
|
||||
});
|
||||
exports.execute = execute;
|
||||
// Handle interactions from commands
|
||||
const handleCommandInteraction = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { errorColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
yield (0, command_1.default)(interaction).catch((err) => {
|
||||
const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder()
|
||||
.setLabel("Report Problem")
|
||||
.setStyle(discord_js_1.ButtonStyle.Link)
|
||||
.setEmoji("📝")
|
||||
.setURL("https://discord.zyner.org"));
|
||||
return interaction.editReply({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setTitle(`:no_entry_sign:︱Your request failed`)
|
||||
.setDescription(`${err.message}`)
|
||||
.setColor(errorColor)
|
||||
.setTimestamp(new Date())
|
||||
.setFooter({ text: footerText, iconURL: footerIcon }),
|
||||
],
|
||||
components: [buttons],
|
||||
});
|
||||
});
|
||||
});
|
||||
exports.handleCommandInteraction = handleCommandInteraction;
|
38
dist/events/interactionCreate/index.js
vendored
38
dist/events/interactionCreate/index.js
vendored
|
@ -1,38 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
// 3rd party dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Dependencies
|
||||
const audits_1 = __importDefault(require("./audits"));
|
||||
const handlers_1 = require("./handlers");
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the event
|
||||
const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, id } = interaction;
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`New interaction: ${id} in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id})`);
|
||||
switch (interaction.type) {
|
||||
case discord_js_1.InteractionType.ApplicationCommand:
|
||||
yield (0, handlers_1.handleCommandInteraction)(interaction);
|
||||
break;
|
||||
default:
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.error(`Unknown interaction type: ${interaction.type}`);
|
||||
}
|
||||
yield audits_1.default.execute(interaction);
|
||||
});
|
||||
exports.execute = execute;
|
26
dist/events/messageCreate/index.js
vendored
26
dist/events/messageCreate/index.js
vendored
|
@ -1,26 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const modules_1 = __importDefault(require("./modules"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield modules_1.default.credits.execute(message);
|
||||
yield modules_1.default.points.execute(message);
|
||||
yield modules_1.default.counters.execute(message);
|
||||
});
|
||||
exports.execute = execute;
|
|
@ -1,69 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, author, content, channel } = message;
|
||||
if (!guild)
|
||||
return;
|
||||
if (author.bot)
|
||||
return;
|
||||
if ((channel === null || channel === void 0 ? void 0 : channel.type) !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
const messages = yield message.channel.messages.fetch({ limit: 2 });
|
||||
const lastMessage = messages.last();
|
||||
const channelCounter = yield database_1.default.guildCounter.findUnique({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: channel.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (!channelCounter) {
|
||||
logger_1.default.debug("No counters found in channel.");
|
||||
return;
|
||||
}
|
||||
if ((lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.author.id) === author.id &&
|
||||
channel.id === channelCounter.channelId) {
|
||||
logger_1.default.silly(`${author.username} sent the last message therefor not allowing again.`);
|
||||
yield message.delete();
|
||||
return false;
|
||||
}
|
||||
if (content !== channelCounter.triggerWord) {
|
||||
logger_1.default.silly(`Counter word ${channelCounter.triggerWord} does not match message ${content}`);
|
||||
yield message.delete();
|
||||
return false;
|
||||
}
|
||||
const updateGuildCounter = yield database_1.default.guildCounter.update({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: channel.id,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
count: {
|
||||
increment: 1,
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(updateGuildCounter);
|
||||
if (!updateGuildCounter)
|
||||
logger_1.default.error(`Failed to update counter - ${updateGuildCounter}`);
|
||||
}),
|
||||
};
|
|
@ -1,70 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const give_1 = __importDefault(require("../../../../helpers/credits/give"));
|
||||
const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, author, content, channel } = message;
|
||||
if (!guild)
|
||||
return;
|
||||
if (author.bot)
|
||||
return;
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: author.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: author.id,
|
||||
},
|
||||
where: {
|
||||
id: author.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
if (content.length < createGuildMember.guild.creditsMinimumLength)
|
||||
return;
|
||||
yield (0, cooldown_1.default)(guild, author, "event-messageCreate-credits", createGuildMember.guild.creditsTimeout, true);
|
||||
yield (0, give_1.default)(guild, author, createGuildMember.guild.creditsRate);
|
||||
}),
|
||||
};
|
13
dist/events/messageCreate/modules/index.js
vendored
13
dist/events/messageCreate/modules/index.js
vendored
|
@ -1,13 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const counters_1 = __importDefault(require("./counters"));
|
||||
const credits_1 = __importDefault(require("./credits"));
|
||||
const points_1 = __importDefault(require("./points"));
|
||||
exports.default = {
|
||||
counters: counters_1.default,
|
||||
credits: credits_1.default,
|
||||
points: points_1.default,
|
||||
};
|
|
@ -1,84 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../../../handlers/database"));
|
||||
const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown"));
|
||||
const logger_1 = __importDefault(require("../../../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, author, content, channel } = message;
|
||||
if (!guild)
|
||||
return;
|
||||
if (author.bot)
|
||||
return;
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: author.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: author.id,
|
||||
},
|
||||
where: {
|
||||
id: author.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
if (content.length < createGuildMember.guild.pointsMinimumLength)
|
||||
return;
|
||||
yield (0, cooldown_1.default)(guild, author, "event-messageCreate-points", createGuildMember.guild.pointsTimeout, true);
|
||||
const updateGuildMember = yield database_1.default.guildMember.update({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: author.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
pointsEarned: {
|
||||
increment: createGuildMember.guild.pointsRate,
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(updateGuildMember);
|
||||
if (!updateGuildMember)
|
||||
throw new Error("Failed to update guildMember object");
|
||||
}),
|
||||
};
|
72
dist/events/messageDelete/audits.js
vendored
72
dist/events/messageDelete/audits.js
vendored
|
@ -1,72 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (message === null)
|
||||
return;
|
||||
if (message.guild === null)
|
||||
return;
|
||||
const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(message.guild);
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: message.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
const { client } = message;
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
if (getGuild.auditsEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.auditsChannelId)
|
||||
return;
|
||||
const channel = client.channels.cache.get(`${getGuild.auditsChannelId}`);
|
||||
if (!channel)
|
||||
return;
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
channel
|
||||
.send({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setColor(successColor)
|
||||
.setAuthor({
|
||||
name: message.author.username,
|
||||
iconURL: message.author.displayAvatarURL(),
|
||||
})
|
||||
.setDescription(`
|
||||
**Message sent by** ${message.author} **deleted in** ${message.channel}
|
||||
${message.content}
|
||||
`)
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
}),
|
||||
],
|
||||
})
|
||||
.then(() => {
|
||||
var _a, _b;
|
||||
logger_1.default.info(`Audit log sent for event messageDelete in guild ${(_a = message === null || message === void 0 ? void 0 : message.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = message === null || message === void 0 ? void 0 : message.guild) === null || _b === void 0 ? void 0 : _b.id})`);
|
||||
})
|
||||
.catch(() => {
|
||||
var _a, _b;
|
||||
throw new Error(`Audit log failed to send for event messageDelete in guild ${(_a = message === null || message === void 0 ? void 0 : message.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = message === null || message === void 0 ? void 0 : message.guild) === null || _b === void 0 ? void 0 : _b.id})`);
|
||||
});
|
||||
}),
|
||||
};
|
26
dist/events/messageDelete/index.js
vendored
26
dist/events/messageDelete/index.js
vendored
|
@ -1,26 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const audits_1 = __importDefault(require("./audits"));
|
||||
const counter_1 = __importDefault(require("./modules/counter"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield audits_1.default.execute(message);
|
||||
yield (0, counter_1.default)(message);
|
||||
});
|
||||
exports.execute = execute;
|
45
dist/events/messageDelete/modules/counter.js
vendored
45
dist/events/messageDelete/modules/counter.js
vendored
|
@ -1,45 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Models
|
||||
const database_1 = __importDefault(require("../../../handlers/database"));
|
||||
const logger_1 = __importDefault(require("../../../middlewares/logger"));
|
||||
exports.default = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, channel, author, content } = message;
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
if (!channel)
|
||||
throw new Error("Channel not found");
|
||||
const channelCounter = yield database_1.default.guildCounter.findUnique({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: channel.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (!channelCounter)
|
||||
throw new Error("No counter found in channel.");
|
||||
const messages = yield message.channel.messages.fetch({ limit: 1 });
|
||||
const lastMessage = messages.last();
|
||||
if (!lastMessage)
|
||||
return;
|
||||
if (content !== channelCounter.triggerWord)
|
||||
return;
|
||||
if (lastMessage.author.id === message.author.id)
|
||||
return;
|
||||
channel === null || channel === void 0 ? void 0 : channel.send(`${author} said **${channelCounter.triggerWord}**.`);
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`${author} said ${channelCounter.triggerWord} in ${channel}`);
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`User: ${author === null || author === void 0 ? void 0 : author.tag} (${author === null || author === void 0 ? void 0 : author.id}) in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id}) said the counter word: ${channelCounter.triggerWord}`);
|
||||
});
|
74
dist/events/messageUpdate/audits.js
vendored
74
dist/events/messageUpdate/audits.js
vendored
|
@ -1,74 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/* eslint-disable no-loops/no-loops */
|
||||
const discord_js_1 = require("discord.js");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = {
|
||||
execute: (oldMessage, newMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (oldMessage === null)
|
||||
return;
|
||||
if (newMessage === null)
|
||||
return;
|
||||
if (oldMessage.guild === null)
|
||||
return;
|
||||
if (newMessage.guild === null)
|
||||
return;
|
||||
const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(newMessage.guild);
|
||||
const getGuild = yield database_1.default.guild.findUnique({
|
||||
where: { id: oldMessage.guild.id },
|
||||
});
|
||||
if (!getGuild)
|
||||
throw new Error("Guild not found");
|
||||
const { client } = oldMessage;
|
||||
if (getGuild.auditsEnabled !== true)
|
||||
return;
|
||||
if (!getGuild.auditsChannelId)
|
||||
return;
|
||||
const channel = client.channels.cache.get(`${getGuild.auditsChannelId}`);
|
||||
if (!channel)
|
||||
return;
|
||||
if (channel.type !== discord_js_1.ChannelType.GuildText)
|
||||
return;
|
||||
channel
|
||||
.send({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setColor(successColor)
|
||||
.setAuthor({
|
||||
name: newMessage.author.username,
|
||||
iconURL: newMessage.author.displayAvatarURL(),
|
||||
})
|
||||
.setDescription(`
|
||||
**Message edited in** ${newMessage.channel} [jump to message](https://discord.com/channels/${newMessage.guild.id}/${newMessage.channel.id}/${newMessage.id})
|
||||
`)
|
||||
.setTimestamp()
|
||||
.setFooter({
|
||||
text: footerText,
|
||||
iconURL: footerIcon,
|
||||
}),
|
||||
],
|
||||
})
|
||||
.then(() => {
|
||||
var _a, _b;
|
||||
logger_1.default.info(`Audit log sent for event messageUpdate in guild ${(_a = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _b === void 0 ? void 0 : _b.id})`);
|
||||
})
|
||||
.catch(() => {
|
||||
var _a, _b;
|
||||
throw new Error(`Audit log failed to send for event messageUpdate in guild ${(_a = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _b === void 0 ? void 0 : _b.id})`);
|
||||
});
|
||||
}),
|
||||
};
|
33
dist/events/messageUpdate/index.js
vendored
33
dist/events/messageUpdate/index.js
vendored
|
@ -1,33 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Modules
|
||||
const counter_1 = __importDefault(require("./modules/counter"));
|
||||
const audits_1 = __importDefault(require("./audits"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Execute the function
|
||||
const execute = (oldMessage, newMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { author, guild } = newMessage;
|
||||
yield audits_1.default.execute(oldMessage, newMessage);
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Message update event fired by ${author.tag} (${author.id}) in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id})`);
|
||||
if (author === null || author === void 0 ? void 0 : author.bot)
|
||||
return logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Message update event fired by bot`);
|
||||
yield (0, counter_1.default)(newMessage);
|
||||
return true;
|
||||
});
|
||||
exports.execute = execute;
|
46
dist/events/messageUpdate/modules/counter.js
vendored
46
dist/events/messageUpdate/modules/counter.js
vendored
|
@ -1,46 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Models
|
||||
const database_1 = __importDefault(require("../../../handlers/database"));
|
||||
const logger_1 = __importDefault(require("../../../middlewares/logger"));
|
||||
exports.default = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, channel, author, content } = message;
|
||||
if (!guild)
|
||||
throw new Error("Guild not found");
|
||||
if (!channel)
|
||||
throw new Error("Channel not found");
|
||||
const channelCounter = yield database_1.default.guildCounter.findUnique({
|
||||
where: {
|
||||
guildId_channelId: {
|
||||
guildId: guild.id,
|
||||
channelId: channel.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (!channelCounter)
|
||||
return logger_1.default.debug("No counters found in channel.");
|
||||
if (content === channelCounter.triggerWord)
|
||||
return logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`User: ${author === null || author === void 0 ? void 0 : author.tag} (${author === null || author === void 0 ? void 0 : author.id}) in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id}) said the counter word: ${channelCounter.triggerWord}`);
|
||||
yield message
|
||||
.delete()
|
||||
.then(() => __awaiter(void 0, void 0, void 0, function* () {
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`${author} said ${channelCounter.triggerWord} in ${channel}`);
|
||||
yield (channel === null || channel === void 0 ? void 0 : channel.send(`${author} said **${channelCounter.triggerWord}**.`));
|
||||
}))
|
||||
.catch((error) => {
|
||||
return logger_1.default.error(error);
|
||||
});
|
||||
return true;
|
||||
});
|
16
dist/events/rateLimit/index.js
vendored
16
dist/events/rateLimit/index.js
vendored
|
@ -1,16 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.options = {
|
||||
type: "on",
|
||||
};
|
||||
// Function to execute the event
|
||||
const execute = (client) => {
|
||||
var _a;
|
||||
logger_1.default.warn(`Discord's API client (${(_a = client === null || client === void 0 ? void 0 : client.user) === null || _a === void 0 ? void 0 : _a.tag}) is rate-limited!`);
|
||||
};
|
||||
exports.execute = execute;
|
29
dist/events/ready/index.js
vendored
29
dist/events/ready/index.js
vendored
|
@ -1,29 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
// Helpers
|
||||
const deployCommands_1 = __importDefault(require("../../handlers/deployCommands"));
|
||||
const updatePresence_1 = __importDefault(require("../../handlers/updatePresence"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.options = {
|
||||
type: "once",
|
||||
};
|
||||
// Execute the event
|
||||
const execute = (client) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
logger_1.default.info("Discord's API client is ready!");
|
||||
(0, updatePresence_1.default)(client);
|
||||
yield (0, deployCommands_1.default)(client);
|
||||
});
|
||||
exports.execute = execute;
|
92
dist/handlers/command/index.js
vendored
92
dist/handlers/command/index.js
vendored
|
@ -1,92 +0,0 @@
|
|||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var m = o[Symbol.asyncIterator], i;
|
||||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
||||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = void 0;
|
||||
const checkDirectory_1 = __importDefault(require("../../helpers/checkDirectory"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Register the commands.
|
||||
const register = (client) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a, e_1, _b, _c;
|
||||
logger_1.default.info("🔧 Started command management");
|
||||
const commandNames = yield (0, checkDirectory_1.default)("commands");
|
||||
if (!commandNames)
|
||||
return logger_1.default.warn("No available commands found");
|
||||
const totalCommands = commandNames.length;
|
||||
let loadedCommands = 0;
|
||||
logger_1.default.info(`🔧 Loading ${totalCommands} commands`);
|
||||
// Import an command.
|
||||
const importCommand = (name) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _e;
|
||||
const command = yield (_e = `../../commands/${name}`, Promise.resolve().then(() => __importStar(require(_e))));
|
||||
client.commands.set(command.builder.name, command);
|
||||
return loadedCommands++;
|
||||
});
|
||||
try {
|
||||
for (var _d = true, commandNames_1 = __asyncValues(commandNames), commandNames_1_1; commandNames_1_1 = yield commandNames_1.next(), _a = commandNames_1_1.done, !_a;) {
|
||||
_c = commandNames_1_1.value;
|
||||
_d = false;
|
||||
try {
|
||||
const commandName = _c;
|
||||
yield importCommand(commandName).then(() => {
|
||||
return logger_1.default.verbose(`🔧 Loaded command "${commandName}"`);
|
||||
});
|
||||
if (loadedCommands === totalCommands) {
|
||||
return logger_1.default.info("🔧 All commands loaded");
|
||||
}
|
||||
}
|
||||
finally {
|
||||
_d = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (!_d && !_a && (_b = commandNames_1.return)) yield _b.call(commandNames_1);
|
||||
}
|
||||
finally { if (e_1) throw e_1.error; }
|
||||
}
|
||||
return true;
|
||||
});
|
||||
exports.register = register;
|
25
dist/handlers/database/index.js
vendored
25
dist/handlers/database/index.js
vendored
|
@ -1,25 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const client_1 = require("@prisma/client");
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
const prisma = new client_1.PrismaClient();
|
||||
prisma.$use((params, next) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const before = Date.now();
|
||||
const result = yield next(params);
|
||||
const after = Date.now();
|
||||
logger_1.default.debug(`Query ${params.model}.${params.action} took ${after - before}ms`);
|
||||
return result;
|
||||
}));
|
||||
exports.default = prisma;
|
37
dist/handlers/deferReply/index.js
vendored
37
dist/handlers/deferReply/index.js
vendored
|
@ -1,37 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js");
|
||||
const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData"));
|
||||
exports.default = (interaction, ephemeral) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
if (!interaction.isRepliable())
|
||||
throw new Error(`Cannot reply to an interaction that is not repliable`);
|
||||
yield interaction.deferReply({
|
||||
ephemeral,
|
||||
});
|
||||
const embedConfig = yield (0, getEmbedData_1.default)(interaction.guild);
|
||||
yield interaction.editReply({
|
||||
embeds: [
|
||||
new discord_js_1.EmbedBuilder()
|
||||
.setFooter({
|
||||
text: embedConfig.footerText,
|
||||
iconURL: embedConfig.footerIcon,
|
||||
})
|
||||
.setTimestamp(new Date())
|
||||
.setTitle("⏳︱Your request are being processed")
|
||||
.setColor(embedConfig.waitColor)
|
||||
.setDescription("This might take a while, please wait..."),
|
||||
],
|
||||
});
|
||||
});
|
44
dist/handlers/deployCommands/index.js
vendored
44
dist/handlers/deployCommands/index.js
vendored
|
@ -1,44 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = (client) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Destructure the client.
|
||||
const { application } = client;
|
||||
if (!application)
|
||||
throw new Error("No application found");
|
||||
// 2. Log that we are starting the command management.
|
||||
logger_1.default.info("🔧 Started command deployment");
|
||||
// 3. Get the commands.
|
||||
const commands = [];
|
||||
client.commands.forEach((command) => {
|
||||
commands.push(command.builder.toJSON());
|
||||
logger_1.default.verbose(`🔧 Loaded command "${command.builder.name}"`);
|
||||
});
|
||||
// 4. Set the commands.
|
||||
yield application.commands.set(commands).then(() => {
|
||||
logger_1.default.info("🔧 Deployed commands globally");
|
||||
});
|
||||
// 5. Tell the user that development mode is enabled.
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
logger_1.default.info("🔧 Development mode enabled");
|
||||
yield application.commands
|
||||
.set(commands, process.env.DISCORD_GUILD_ID)
|
||||
.then(() => {
|
||||
logger_1.default.info(`🔧 Deployed commands to guild`);
|
||||
});
|
||||
}
|
||||
// 6. Log that we are done with the command management.
|
||||
logger_1.default.info("🔧 Finished command deployment");
|
||||
});
|
105
dist/handlers/event/index.js
vendored
105
dist/handlers/event/index.js
vendored
|
@ -1,105 +0,0 @@
|
|||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var m = o[Symbol.asyncIterator], i;
|
||||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
||||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = void 0;
|
||||
const checkDirectory_1 = __importDefault(require("../../helpers/checkDirectory"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Registers all available events.
|
||||
const register = (client) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a, e_1, _b, _c;
|
||||
logger_1.default.info("📡 Started event management");
|
||||
const eventNames = yield (0, checkDirectory_1.default)("events");
|
||||
if (!eventNames)
|
||||
return logger_1.default.warn("No available events found");
|
||||
const totalEvents = eventNames.length;
|
||||
let loadedEvents = 0;
|
||||
logger_1.default.info(`📡 Loading ${totalEvents} events`);
|
||||
// Import an event.
|
||||
const importEvent = (name) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _e;
|
||||
const event = yield (_e = `../../events/${name}`, Promise.resolve().then(() => __importStar(require(_e))));
|
||||
// Create a new event execute function.
|
||||
const eventExecutor = (...args) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
yield event.execute(...args);
|
||||
});
|
||||
switch (event.options.type) {
|
||||
case "once":
|
||||
client.once(name, eventExecutor);
|
||||
break;
|
||||
case "on":
|
||||
client.on(name, eventExecutor);
|
||||
break;
|
||||
default:
|
||||
throw new Error(`📡 Invalid event type for event: ${name}`);
|
||||
}
|
||||
return loadedEvents++;
|
||||
});
|
||||
try {
|
||||
for (var _d = true, eventNames_1 = __asyncValues(eventNames), eventNames_1_1; eventNames_1_1 = yield eventNames_1.next(), _a = eventNames_1_1.done, !_a;) {
|
||||
_c = eventNames_1_1.value;
|
||||
_d = false;
|
||||
try {
|
||||
const eventName = _c;
|
||||
yield importEvent(eventName).then(() => {
|
||||
return logger_1.default.verbose(`📡 Loaded event "${eventName}"`);
|
||||
});
|
||||
if (loadedEvents === totalEvents) {
|
||||
return logger_1.default.info("📡 All events loaded");
|
||||
}
|
||||
}
|
||||
finally {
|
||||
_d = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (!_d && !_a && (_b = eventNames_1.return)) yield _b.call(eventNames_1);
|
||||
}
|
||||
finally { if (e_1) throw e_1.error; }
|
||||
}
|
||||
return true;
|
||||
});
|
||||
exports.register = register;
|
57
dist/handlers/schedule/index.js
vendored
57
dist/handlers/schedule/index.js
vendored
|
@ -1,57 +0,0 @@
|
|||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.start = void 0;
|
||||
const node_schedule_1 = __importDefault(require("node-schedule"));
|
||||
const checkDirectory_1 = __importDefault(require("../../helpers/checkDirectory"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Start all jobs that are in the schedules directory
|
||||
const start = (client) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
logger_1.default.info("⏰ Started job management");
|
||||
const jobNames = yield (0, checkDirectory_1.default)("schedules");
|
||||
if (!jobNames)
|
||||
return logger_1.default.warn("⏰ No available jobs found");
|
||||
return yield Promise.all(jobNames.map((jobName) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a;
|
||||
const job = yield (_a = `../../schedules/${jobName}`, Promise.resolve().then(() => __importStar(require(_a))));
|
||||
return node_schedule_1.default.scheduleJob(job.options.schedule, () => __awaiter(void 0, void 0, void 0, function* () {
|
||||
logger_1.default.verbose(`⏰ Performed the job "${jobName}"`);
|
||||
yield job.execute(client);
|
||||
}));
|
||||
})));
|
||||
});
|
||||
exports.start = start;
|
29
dist/handlers/updatePresence/index.js
vendored
29
dist/handlers/updatePresence/index.js
vendored
|
@ -1,29 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// Dependencies
|
||||
const discord_js_1 = require("discord.js");
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
// Function
|
||||
exports.default = (client) => {
|
||||
// 1. Destructure the client.
|
||||
const { guilds, user } = client;
|
||||
if (!user)
|
||||
throw new Error("No user found");
|
||||
// 2. Get the total number of guilds and members.
|
||||
const memberCount = guilds.cache.reduce((a, g) => a + g.memberCount, 0);
|
||||
const guildCount = guilds.cache.size;
|
||||
// 3. Set the presence.
|
||||
user.setPresence({
|
||||
activities: [
|
||||
{
|
||||
name: `${guildCount} guilds | ${memberCount} members`,
|
||||
type: discord_js_1.ActivityType.Watching,
|
||||
},
|
||||
],
|
||||
});
|
||||
// 4. Log the presence.
|
||||
return logger_1.default.info(`👀 Presence set to "${guildCount} guilds | ${memberCount} members"`);
|
||||
};
|
47
dist/helpers/baseEmbeds/index.js
vendored
47
dist/helpers/baseEmbeds/index.js
vendored
|
@ -1,47 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.error = exports.wait = exports.success = void 0;
|
||||
const discord_js_1 = require("discord.js");
|
||||
const getEmbedData_1 = __importDefault(require("../getEmbedData"));
|
||||
// Construct a base embed for success messages
|
||||
const success = (guild, title) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild);
|
||||
return new discord_js_1.EmbedBuilder()
|
||||
.setTimestamp(new Date())
|
||||
.setTitle(title)
|
||||
.setColor(successColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
});
|
||||
exports.success = success;
|
||||
// Construct a base embed for wait messages
|
||||
const wait = (guild, title) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { waitColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild);
|
||||
return new discord_js_1.EmbedBuilder()
|
||||
.setTimestamp(new Date())
|
||||
.setTitle(title)
|
||||
.setColor(waitColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
});
|
||||
exports.wait = wait;
|
||||
// Construct a base embed for error messages
|
||||
const error = (guild, title) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { errorColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild);
|
||||
return new discord_js_1.EmbedBuilder()
|
||||
.setTimestamp(new Date())
|
||||
.setTitle(title)
|
||||
.setColor(errorColor)
|
||||
.setFooter({ text: footerText, iconURL: footerIcon });
|
||||
});
|
||||
exports.error = error;
|
5
dist/helpers/capitalizeFirstLetter/index.js
vendored
5
dist/helpers/capitalizeFirstLetter/index.js
vendored
|
@ -1,5 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = (text) => {
|
||||
return text.charAt(0).toUpperCase() + text.slice(1);
|
||||
};
|
20
dist/helpers/checkDirectory/index.js
vendored
20
dist/helpers/checkDirectory/index.js
vendored
|
@ -1,20 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs_1 = __importDefault(require("fs"));
|
||||
const fsPromises = fs_1.default.promises;
|
||||
exports.default = (path) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const result = yield fsPromises.readdir(`${__dirname}/../../${path}`);
|
||||
return result;
|
||||
});
|
8
dist/helpers/checkPermission/index.js
vendored
8
dist/helpers/checkPermission/index.js
vendored
|
@ -1,8 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = (interaction, permission) => {
|
||||
if (!interaction.memberPermissions)
|
||||
throw new Error("Could not check user for permissions");
|
||||
if (!interaction.memberPermissions.has(permission))
|
||||
throw new Error("Permission denied");
|
||||
};
|
64
dist/helpers/credits/give.js
vendored
64
dist/helpers/credits/give.js
vendored
|
@ -1,64 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const transactionRules_1 = __importDefault(require("./transactionRules"));
|
||||
exports.default = (guild, user, amount) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Check if the transaction is valid.
|
||||
(0, transactionRules_1.default)(guild, user, amount);
|
||||
// 2. Make the transaction.
|
||||
const recipient = yield tx.guildMember.upsert({
|
||||
update: {
|
||||
creditsEarned: {
|
||||
increment: amount,
|
||||
},
|
||||
},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
creditsEarned: amount,
|
||||
},
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
// 3. Verify that the recipient actually is created.
|
||||
if (!recipient)
|
||||
throw new Error("No recipient available");
|
||||
// 4. Return the recipient.
|
||||
return recipient;
|
||||
}));
|
||||
});
|
62
dist/helpers/credits/set.js
vendored
62
dist/helpers/credits/set.js
vendored
|
@ -1,62 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const transactionRules_1 = __importDefault(require("./transactionRules"));
|
||||
exports.default = (guild, user, amount) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Check if the transaction is valid.
|
||||
(0, transactionRules_1.default)(guild, user, amount);
|
||||
// 2. Make the transaction.
|
||||
const recipient = yield tx.guildMember.upsert({
|
||||
update: {
|
||||
creditsEarned: amount,
|
||||
},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
creditsEarned: amount,
|
||||
},
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
// 3. Verify that the recipient actually is created.
|
||||
if (!recipient)
|
||||
throw new Error("No recipient available");
|
||||
// 4. Return the recipient.
|
||||
return recipient;
|
||||
}));
|
||||
});
|
64
dist/helpers/credits/take.js
vendored
64
dist/helpers/credits/take.js
vendored
|
@ -1,64 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const transactionRules_1 = __importDefault(require("./transactionRules"));
|
||||
exports.default = (guild, user, amount) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Check if the transaction is valid.
|
||||
(0, transactionRules_1.default)(guild, user, amount);
|
||||
// 2. Make the transaction.
|
||||
const recipient = yield tx.guildMember.upsert({
|
||||
update: {
|
||||
creditsEarned: {
|
||||
decrement: amount,
|
||||
},
|
||||
},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
creditsEarned: -amount,
|
||||
},
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
// 3. Verify that the recipient credits are not below zero.
|
||||
if (recipient.creditsEarned < -100)
|
||||
throw new Error("User do not have enough credits");
|
||||
// 4. Return the recipient.
|
||||
return recipient;
|
||||
}));
|
||||
});
|
16
dist/helpers/credits/transactionRules.js
vendored
16
dist/helpers/credits/transactionRules.js
vendored
|
@ -1,16 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = (guild, user, amount) => {
|
||||
// 1. Verify that the amount is not above 100.000.000 credits.
|
||||
if (amount > 100000000) {
|
||||
throw new Error("You can't give more than 1.000.000 credits.");
|
||||
}
|
||||
// 2. Verify that the amount is not below 1 credits.
|
||||
if (amount <= 0) {
|
||||
throw new Error("You can't give below one credit.");
|
||||
}
|
||||
// 3. Verify that the user is not an bot.
|
||||
if (user.bot) {
|
||||
throw new Error("You can't give to an bot.");
|
||||
}
|
||||
};
|
105
dist/helpers/credits/transfer.js
vendored
105
dist/helpers/credits/transfer.js
vendored
|
@ -1,105 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const transactionRules_1 = __importDefault(require("./transactionRules"));
|
||||
exports.default = (guild, from, to, amount) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// 1. Decrement amount from the sender.
|
||||
const sender = yield tx.guildMember.upsert({
|
||||
update: {
|
||||
creditsEarned: {
|
||||
decrement: amount,
|
||||
},
|
||||
},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: from.id,
|
||||
},
|
||||
where: {
|
||||
id: from.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
creditsEarned: -amount,
|
||||
},
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: from.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
// 4. Verify that the sender's balance didn't go below zero.
|
||||
if (sender.creditsEarned < 0) {
|
||||
throw new Error(`${from} doesn't have enough to send ${amount}`);
|
||||
}
|
||||
// 5. Check if the transactions is valid.
|
||||
(0, transactionRules_1.default)(guild, from, amount);
|
||||
(0, transactionRules_1.default)(guild, to, amount);
|
||||
// 6. Verify that sender and recipient are not the same user.
|
||||
if (from.id === to.id)
|
||||
throw new Error("You can't transfer to yourself.");
|
||||
// 7. Increment the recipient's balance by amount.
|
||||
const recipient = yield tx.guildMember.upsert({
|
||||
update: {
|
||||
creditsEarned: {
|
||||
increment: amount,
|
||||
},
|
||||
},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: to.id,
|
||||
},
|
||||
where: {
|
||||
id: to.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
creditsEarned: amount,
|
||||
},
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: to.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
return recipient;
|
||||
}));
|
||||
});
|
29
dist/helpers/encryption/index.js
vendored
29
dist/helpers/encryption/index.js
vendored
|
@ -1,29 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const crypto_1 = __importDefault(require("crypto"));
|
||||
const iv = crypto_1.default.randomBytes(16);
|
||||
// Encrypts a string
|
||||
const encrypt = (text) => {
|
||||
const cipher = crypto_1.default.createCipheriv(process.env.ENCRYPTION_ALGORITHM, process.env.ENCRYPTION_SECRET, iv);
|
||||
const encrypted = Buffer.concat([cipher.update(text), cipher.final()]);
|
||||
return {
|
||||
iv: iv.toString("hex"),
|
||||
content: encrypted.toString("hex"),
|
||||
};
|
||||
};
|
||||
// Decrypts a string
|
||||
const decrypt = (hash) => {
|
||||
const decipher = crypto_1.default.createDecipheriv(process.env.ENCRYPTION_ALGORITHM, process.env.ENCRYPTION_SECRET, Buffer.from(hash.iv, "hex"));
|
||||
const decrypted = Buffer.concat([
|
||||
decipher.update(Buffer.from(hash.content, "hex")),
|
||||
decipher.final(),
|
||||
]);
|
||||
return decrypted.toString();
|
||||
};
|
||||
exports.default = {
|
||||
encrypt,
|
||||
decrypt,
|
||||
};
|
75
dist/helpers/getEmbedData/index.js
vendored
75
dist/helpers/getEmbedData/index.js
vendored
|
@ -1,75 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = (guild) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { EMBED_COLOR_SUCCESS, EMBED_COLOR_WAIT, EMBED_COLOR_ERROR, EMBED_FOOTER_TEXT, EMBED_FOOTER_ICON, } = process.env;
|
||||
const defaultEmbedConfig = {
|
||||
successColor: EMBED_COLOR_SUCCESS,
|
||||
waitColor: EMBED_COLOR_WAIT,
|
||||
errorColor: EMBED_COLOR_ERROR,
|
||||
footerText: EMBED_FOOTER_TEXT,
|
||||
footerIcon: EMBED_FOOTER_ICON,
|
||||
};
|
||||
if (!guild) {
|
||||
return defaultEmbedConfig;
|
||||
}
|
||||
const createGuildMember = yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: guild === null || guild === void 0 ? void 0 : guild.ownerId,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.ownerId,
|
||||
},
|
||||
where: {
|
||||
id: guild.ownerId,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
include: {
|
||||
user: true,
|
||||
guild: true,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createGuildMember);
|
||||
if (!createGuildMember) {
|
||||
return defaultEmbedConfig;
|
||||
}
|
||||
return {
|
||||
successColor: createGuildMember.guild.embedColorSuccess,
|
||||
waitColor: createGuildMember.guild.embedColorWait,
|
||||
errorColor: createGuildMember.guild.embedColorError,
|
||||
footerText: createGuildMember.guild.embedFooterText,
|
||||
footerIcon: createGuildMember.guild.embedFooterIcon,
|
||||
};
|
||||
});
|
11
dist/helpers/pluralize/index.js
vendored
11
dist/helpers/pluralize/index.js
vendored
|
@ -1,11 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.default = (count, noun, suffix) => {
|
||||
const result = `${count} ${noun}${count !== 1 ? suffix || "s" : ""}`;
|
||||
logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Pluralized ${count} to ${result}`);
|
||||
return result;
|
||||
};
|
49
dist/helpers/upsertGuildMember/index.js
vendored
49
dist/helpers/upsertGuildMember/index.js
vendored
|
@ -1,49 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
exports.default = (guildMember) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { guild, user } = guildMember;
|
||||
return yield database_1.default.guildMember.upsert({
|
||||
where: {
|
||||
userId_guildId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
38
dist/index.js
vendored
38
dist/index.js
vendored
|
@ -1,38 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const discord_js_1 = require("discord.js"); // discord.js
|
||||
require("dotenv/config");
|
||||
const command_1 = require("./handlers/command");
|
||||
const event_1 = require("./handlers/event");
|
||||
const schedule_1 = require("./handlers/schedule");
|
||||
// Main process that starts all other sub processes
|
||||
const main = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// Initiate client object
|
||||
const client = new discord_js_1.Client({
|
||||
intents: [
|
||||
discord_js_1.GatewayIntentBits.Guilds,
|
||||
discord_js_1.GatewayIntentBits.GuildMembers,
|
||||
discord_js_1.GatewayIntentBits.GuildMessages,
|
||||
discord_js_1.GatewayIntentBits.MessageContent,
|
||||
],
|
||||
});
|
||||
// Create command collection
|
||||
client.commands = new discord_js_1.Collection();
|
||||
// Start critical handlers
|
||||
yield (0, schedule_1.start)(client);
|
||||
yield (0, event_1.register)(client);
|
||||
yield (0, command_1.register)(client);
|
||||
// Authorize with Discord's API
|
||||
yield client.login(process.env.DISCORD_TOKEN);
|
||||
});
|
||||
// Start main process
|
||||
main();
|
2
dist/interfaces/Command.js
vendored
2
dist/interfaces/Command.js
vendored
|
@ -1,2 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
2
dist/interfaces/EncryptionData.js
vendored
2
dist/interfaces/EncryptionData.js
vendored
|
@ -1,2 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
2
dist/interfaces/Event.js
vendored
2
dist/interfaces/Event.js
vendored
|
@ -1,2 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
2
dist/interfaces/EventOptions.js
vendored
2
dist/interfaces/EventOptions.js
vendored
|
@ -1,2 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
2
dist/interfaces/Job.js
vendored
2
dist/interfaces/Job.js
vendored
|
@ -1,2 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
89
dist/middlewares/cooldown/index.js
vendored
89
dist/middlewares/cooldown/index.js
vendored
|
@ -1,89 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const date_fns_1 = require("date-fns");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const logger_1 = __importDefault(require("../logger"));
|
||||
exports.default = (guild, user, id, cooldown, silent) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
// Check if user has a timeout
|
||||
const isOnCooldown = yield database_1.default.cooldown.findUnique({
|
||||
where: {
|
||||
guildId_userId_timeoutId: {
|
||||
guildId: guild.id,
|
||||
userId: user.id,
|
||||
timeoutId: id,
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(isOnCooldown);
|
||||
if (isOnCooldown) {
|
||||
const { userId, timeoutId, createdAt } = isOnCooldown;
|
||||
const dueDate = (0, date_fns_1.add)(createdAt, { seconds: cooldown });
|
||||
const duration = (0, date_fns_1.formatDuration)((0, date_fns_1.intervalToDuration)({
|
||||
start: new Date(),
|
||||
end: dueDate,
|
||||
}));
|
||||
if ((0, date_fns_1.isPast)(dueDate)) {
|
||||
return yield database_1.default.cooldown.delete({
|
||||
where: {
|
||||
guildId_userId_timeoutId: {
|
||||
guildId: guild.id,
|
||||
userId: user.id,
|
||||
timeoutId: id,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
if (silent) {
|
||||
return logger_1.default.verbose(`User ${userId} is on cooldown for ${timeoutId}, it ends in ${duration}.`);
|
||||
}
|
||||
throw new Error(`You need to wait for ${duration} before you can do that again`);
|
||||
}
|
||||
const createCooldown = yield database_1.default.cooldown.upsert({
|
||||
where: {
|
||||
guildId_userId_timeoutId: {
|
||||
userId: user.id,
|
||||
guildId: guild.id,
|
||||
timeoutId: id,
|
||||
},
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
guild: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: guild.id,
|
||||
},
|
||||
where: {
|
||||
id: guild.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
user: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
id: user.id,
|
||||
},
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
timeoutId: id,
|
||||
cooldown,
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(createCooldown);
|
||||
return createCooldown;
|
||||
});
|
25
dist/middlewares/logger/index.js
vendored
25
dist/middlewares/logger/index.js
vendored
|
@ -1,25 +0,0 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const winston_1 = __importDefault(require("winston"));
|
||||
require("winston-daily-rotate-file");
|
||||
const { combine, timestamp, printf, errors, colorize, align, json } = winston_1.default.format;
|
||||
exports.default = winston_1.default.createLogger({
|
||||
level: process.env.LOG_LEVEL || "info",
|
||||
transports: [
|
||||
new winston_1.default.transports.DailyRotateFile({
|
||||
filename: "logs/combined-%DATE%.log",
|
||||
datePattern: "YYYY-MM-DD",
|
||||
maxFiles: "14d",
|
||||
format: combine(timestamp(), json()),
|
||||
}),
|
||||
new winston_1.default.transports.Console({
|
||||
format: combine(errors({ stack: true, trace: true }), // <-- use errors format
|
||||
colorize({ all: true }), timestamp({
|
||||
format: "YYYY-MM-DD HH:MM:ss",
|
||||
}), align(), printf((info) => `[${info.timestamp}] ${info.level}: ${info.message}`)),
|
||||
}),
|
||||
],
|
||||
});
|
73
dist/schedules/cooldowns/index.js
vendored
73
dist/schedules/cooldowns/index.js
vendored
|
@ -1,73 +0,0 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
var m = o[Symbol.asyncIterator], i;
|
||||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
||||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.execute = exports.options = void 0;
|
||||
/* eslint-disable no-loops/no-loops */
|
||||
const date_fns_1 = require("date-fns");
|
||||
const database_1 = __importDefault(require("../../handlers/database"));
|
||||
const logger_1 = __importDefault(require("../../middlewares/logger"));
|
||||
exports.options = {
|
||||
schedule: "*/30 * * * *", // https://crontab.guru/
|
||||
};
|
||||
// Execute the job
|
||||
const execute = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||
var _a, e_1, _b, _c;
|
||||
const cooldownsObj = yield database_1.default.cooldown.findMany();
|
||||
try {
|
||||
for (var _d = true, cooldownsObj_1 = __asyncValues(cooldownsObj), cooldownsObj_1_1; cooldownsObj_1_1 = yield cooldownsObj_1.next(), _a = cooldownsObj_1_1.done, !_a;) {
|
||||
_c = cooldownsObj_1_1.value;
|
||||
_d = false;
|
||||
try {
|
||||
const cooldownObj = _c;
|
||||
const { guildId, userId, timeoutId, cooldown, createdAt } = cooldownObj;
|
||||
const dueDate = (0, date_fns_1.add)(createdAt, { seconds: cooldown });
|
||||
if (!(0, date_fns_1.isPast)(dueDate))
|
||||
return;
|
||||
const duration = (0, date_fns_1.formatDuration)((0, date_fns_1.intervalToDuration)({
|
||||
start: new Date(),
|
||||
end: dueDate,
|
||||
}));
|
||||
const deleteCooldown = yield database_1.default.cooldown.delete({
|
||||
where: {
|
||||
guildId_userId_timeoutId: {
|
||||
guildId,
|
||||
userId,
|
||||
timeoutId,
|
||||
},
|
||||
},
|
||||
});
|
||||
logger_1.default.silly(deleteCooldown);
|
||||
logger_1.default.verbose(`User ${userId} is on cooldown for ${timeoutId}, it ends in ${duration}.`);
|
||||
}
|
||||
finally {
|
||||
_d = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (!_d && !_a && (_b = cooldownsObj_1.return)) yield _b.call(cooldownsObj_1);
|
||||
}
|
||||
finally { if (e_1) throw e_1.error; }
|
||||
}
|
||||
});
|
||||
exports.execute = execute;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue