mirror of
https://github.com/JonnyBro/JaBa.git
synced 2024-11-22 05:04:58 +05:00
This commit is contained in:
parent
625ab84df0
commit
76ab9c38a0
23 changed files with 81 additions and 90 deletions
34
base/JaBa.js
34
base/JaBa.js
|
@ -111,7 +111,7 @@ class JaBa extends Client {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load commands from directory
|
* Load commands from directory
|
||||||
* @param {String} dir Directory where's all commands/subdirectories located
|
* @param {String} dir Directory where's all commands located
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
async loadCommands(dir) {
|
async loadCommands(dir) {
|
||||||
|
@ -211,7 +211,7 @@ class JaBa extends Client {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load events from directory
|
* Load events from directory
|
||||||
* @param {String} dir Directory where's all events/subdirectories located
|
* @param {String} dir Directory where's all events located
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
async loadEvents(dir) {
|
async loadEvents(dir) {
|
||||||
|
@ -340,34 +340,34 @@ class JaBa extends Client {
|
||||||
* @param {Boolean} isLean Return JSON instead Mongoose model?
|
* @param {Boolean} isLean Return JSON instead Mongoose model?
|
||||||
* @returns {import("./Member")} Mongoose model or JSON of this member
|
* @returns {import("./Member")} Mongoose model or JSON of this member
|
||||||
*/
|
*/
|
||||||
async findOrCreateMember({ id: memberID, guildID }, isLean) {
|
async findOrCreateMember({ id: memberID, guildId }, isLean) {
|
||||||
if (this.databaseCache.members.get(`${memberID}${guildID}`)) return isLean ? this.databaseCache.members.get(`${memberID}${guildID}`).toJSON() : this.databaseCache.members.get(`${memberID}${guildID}`);
|
if (this.databaseCache.members.get(`${memberID}${guildId}`)) return isLean ? this.databaseCache.members.get(`${memberID}${guildId}`).toJSON() : this.databaseCache.members.get(`${memberID}${guildId}`);
|
||||||
else {
|
else {
|
||||||
let memberData = (isLean ? await this.membersData.findOne({
|
let memberData = (isLean ? await this.membersData.findOne({
|
||||||
guildID,
|
guildID: guildId,
|
||||||
id: memberID
|
id: memberID
|
||||||
}).lean() : await this.membersData.findOne({
|
}).lean() : await this.membersData.findOne({
|
||||||
guildID,
|
guildID: guildId,
|
||||||
id: memberID
|
id: memberID
|
||||||
}));
|
}));
|
||||||
if (memberData) {
|
if (memberData) {
|
||||||
if (!isLean) this.databaseCache.members.set(`${memberID}${guildID}`, memberData);
|
if (!isLean) this.databaseCache.members.set(`${memberID}${guildId}`, memberData);
|
||||||
|
|
||||||
return memberData;
|
return memberData;
|
||||||
} else {
|
} else {
|
||||||
memberData = new this.membersData({
|
memberData = new this.membersData({
|
||||||
id: memberID,
|
id: memberID,
|
||||||
guildID: guildID
|
guildID: guildId
|
||||||
});
|
});
|
||||||
await memberData.save();
|
await memberData.save();
|
||||||
const guild = await this.findOrCreateGuild({
|
const guild = await this.findOrCreateGuild({
|
||||||
id: guildID
|
id: guildId
|
||||||
});
|
});
|
||||||
if (guild) {
|
if (guild) {
|
||||||
guild.members.push(memberData._id);
|
guild.members.push(memberData._id);
|
||||||
await guild.save();
|
await guild.save();
|
||||||
}
|
}
|
||||||
this.databaseCache.members.set(`${memberID}${guildID}`, memberData);
|
this.databaseCache.members.set(`${memberID}${guildId}`, memberData);
|
||||||
|
|
||||||
return isLean ? memberData.toJSON() : memberData;
|
return isLean ? memberData.toJSON() : memberData;
|
||||||
}
|
}
|
||||||
|
@ -380,24 +380,24 @@ class JaBa extends Client {
|
||||||
* @param {Boolean} isLean Return JSON instead Mongoose model?
|
* @param {Boolean} isLean Return JSON instead Mongoose model?
|
||||||
* @returns {import("./Guild")} Mongoose model or JSON of this guild
|
* @returns {import("./Guild")} Mongoose model or JSON of this guild
|
||||||
*/
|
*/
|
||||||
async findOrCreateGuild({ id: guildID }, isLean) {
|
async findOrCreateGuild({ id: guildId }, isLean) {
|
||||||
if (this.databaseCache.guilds.get(guildID)) return isLean ? this.databaseCache.guilds.get(guildID).toJSON() : this.databaseCache.guilds.get(guildID);
|
if (this.databaseCache.guilds.get(guildId)) return isLean ? this.databaseCache.guilds.get(guildId).toJSON() : this.databaseCache.guilds.get(guildId);
|
||||||
else {
|
else {
|
||||||
let guildData = (isLean ? await this.guildsData.findOne({
|
let guildData = (isLean ? await this.guildsData.findOne({
|
||||||
id: guildID
|
id: guildId
|
||||||
}).populate("members").lean() : await this.guildsData.findOne({
|
}).populate("members").lean() : await this.guildsData.findOne({
|
||||||
id: guildID
|
id: guildId
|
||||||
}).populate("members"));
|
}).populate("members"));
|
||||||
if (guildData) {
|
if (guildData) {
|
||||||
if (!isLean) this.databaseCache.guilds.set(guildID, guildData);
|
if (!isLean) this.databaseCache.guilds.set(guildId, guildData);
|
||||||
|
|
||||||
return guildData;
|
return guildData;
|
||||||
} else {
|
} else {
|
||||||
guildData = new this.guildsData({
|
guildData = new this.guildsData({
|
||||||
id: guildID
|
id: guildId
|
||||||
});
|
});
|
||||||
await guildData.save();
|
await guildData.save();
|
||||||
this.databaseCache.guilds.set(guildID, guildData);
|
this.databaseCache.guilds.set(guildId, guildData);
|
||||||
|
|
||||||
return isLean ? guildData.toJSON() : guildData;
|
return isLean ? guildData.toJSON() : guildData;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,12 +46,14 @@ class Set extends BaseCommand {
|
||||||
* @param {import("discord.js").ChatInputCommandInteraction} interaction
|
* @param {import("discord.js").ChatInputCommandInteraction} interaction
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
*/
|
*/
|
||||||
async execute(client, interaction) {
|
async execute(client, interaction, data) {
|
||||||
const type = interaction.options.getString("type");
|
const type = interaction.options.getString("type");
|
||||||
const member = interaction.options.getMember("user");
|
const member = interaction.options.getMember("user");
|
||||||
if (member.user.bot) return interaction.error("misc:BOT_USER", null, { ephemeral: true });
|
if (member.user.bot) return interaction.error("misc:BOT_USER", null, { ephemeral: true });
|
||||||
const memberData = await client.findOrCreateMember({
|
|
||||||
id: member.id
|
const memberData = member.id === interaction.user.id ? data : await client.findOrCreateMember({
|
||||||
|
id: member.id,
|
||||||
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
const int = interaction.options.getInteger("int");
|
const int = interaction.options.getInteger("int");
|
||||||
if (int < 0) return interaction.error("administration/set:INVALID_NUMBER", null, { ephemeral: true });
|
if (int < 0) return interaction.error("administration/set:INVALID_NUMBER", null, { ephemeral: true });
|
||||||
|
|
|
@ -45,9 +45,9 @@ class Money extends BaseCommand {
|
||||||
const member = interaction.options.getMember("user") || interaction.member;
|
const member = interaction.options.getMember("user") || interaction.member;
|
||||||
if (member.user.bot) return interaction.error("economy/money:BOT_USER");
|
if (member.user.bot) return interaction.error("economy/money:BOT_USER");
|
||||||
|
|
||||||
const memberData = (member.id === interaction.user.id) ? data.memberData : await client.findOrCreateMember({
|
const memberData = member.id === interaction.user.id ? data.memberData : await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
const guilds = client.guilds.cache.filter(g => g.members.cache.find(m => m.id === member.id));
|
const guilds = client.guilds.cache.filter(g => g.members.cache.find(m => m.id === member.id));
|
||||||
|
@ -55,7 +55,7 @@ class Money extends BaseCommand {
|
||||||
await asyncForEach(guilds, async guild => {
|
await asyncForEach(guilds, async guild => {
|
||||||
const data = await client.findOrCreateMember({
|
const data = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: guild.id
|
guildId: guild.id
|
||||||
});
|
});
|
||||||
globalMoney += data.money + data.bankSold;
|
globalMoney += data.money + data.bankSold;
|
||||||
});
|
});
|
||||||
|
|
|
@ -79,7 +79,7 @@ class Number extends BaseCommand {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: msg.author.id,
|
id: msg.author.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
const info = {
|
const info = {
|
||||||
|
|
|
@ -50,7 +50,7 @@ class Pay extends BaseCommand {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
const info = {
|
const info = {
|
||||||
|
|
|
@ -48,7 +48,7 @@ class Profile extends BaseCommand {
|
||||||
|
|
||||||
const memberData = (member.id === interaction.user.id ? data.memberData : await client.findOrCreateMember({
|
const memberData = (member.id === interaction.user.id ? data.memberData : await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
}));
|
}));
|
||||||
const userData = (member.id === interaction.user.id ? data.userData : await client.findOrCreateUser({
|
const userData = (member.id === interaction.user.id ? data.userData : await client.findOrCreateUser({
|
||||||
id: member.id
|
id: member.id
|
||||||
|
@ -60,7 +60,7 @@ class Profile extends BaseCommand {
|
||||||
await asyncForEach(guilds, async guild => {
|
await asyncForEach(guilds, async guild => {
|
||||||
const data = await client.findOrCreateMember({
|
const data = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: guild.id
|
guildId: guild.id
|
||||||
});
|
});
|
||||||
globalMoney += data.money + data.bankSold;
|
globalMoney += data.money + data.bankSold;
|
||||||
});
|
});
|
||||||
|
|
|
@ -45,7 +45,7 @@ class Rob extends BaseCommand {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
if (amount > memberData.money) return interaction.error("economy/rob:NOT_ENOUGH_MEMBER", { user: member.toString() });
|
if (amount > memberData.money) return interaction.error("economy/rob:NOT_ENOUGH_MEMBER", { user: member.toString() });
|
||||||
const isInCooldown = memberData.cooldowns.rob || 0;
|
const isInCooldown = memberData.cooldowns.rob || 0;
|
||||||
|
|
|
@ -42,7 +42,7 @@ class TicTacToe extends BaseCommand {
|
||||||
}).then(async winner => {
|
}).then(async winner => {
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: winner.id,
|
id: winner.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
const info = {
|
const info = {
|
||||||
|
|
|
@ -38,7 +38,7 @@ class Clearwarns extends BaseCommand {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
memberData.sanctions = [];
|
memberData.sanctions = [];
|
||||||
|
|
|
@ -40,7 +40,7 @@ class Warn extends BaseCommand {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
const modal = new ModalBuilder()
|
const modal = new ModalBuilder()
|
||||||
|
|
|
@ -39,7 +39,7 @@ class Warns extends BaseCommand {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
|
|
|
@ -68,7 +68,7 @@ class Debug extends BaseCommand {
|
||||||
* @param {import("discord.js").ChatInputCommandInteraction} interaction
|
* @param {import("discord.js").ChatInputCommandInteraction} interaction
|
||||||
* @param {Array} data
|
* @param {Array} data
|
||||||
*/
|
*/
|
||||||
async execute(client, interaction) {
|
async execute(client, interaction, data) {
|
||||||
const command = interaction.options.getSubcommand();
|
const command = interaction.options.getSubcommand();
|
||||||
|
|
||||||
if (command === "set") {
|
if (command === "set") {
|
||||||
|
@ -78,8 +78,9 @@ class Debug extends BaseCommand {
|
||||||
const userData = await client.findOrCreateUser({
|
const userData = await client.findOrCreateUser({
|
||||||
id: member.id
|
id: member.id
|
||||||
});
|
});
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = member.id === interaction.user.id ? data : await client.findOrCreateMember({
|
||||||
id: member.id
|
id: member.id,
|
||||||
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
const int = interaction.options.getInteger("int");
|
const int = interaction.options.getInteger("int");
|
||||||
|
|
||||||
|
@ -136,8 +137,9 @@ class Debug extends BaseCommand {
|
||||||
const userData = await client.findOrCreateUser({
|
const userData = await client.findOrCreateUser({
|
||||||
id: member.id
|
id: member.id
|
||||||
});
|
});
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = member.id === interaction.user.id ? data : await client.findOrCreateMember({
|
||||||
id: member.id
|
id: member.id,
|
||||||
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
const int = interaction.options.getInteger("int");
|
const int = interaction.options.getInteger("int");
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
### JaBa v4.1.9
|
||||||
|
* Изменения
|
||||||
|
* Переписана система опыта. Теперь при достижении нового уровня опыт сбрасывается и бот оповещает о получении нового уровня.
|
||||||
|
|
||||||
|
* Исправления
|
||||||
|
* Команды *set* и *debug* ничего не делали.
|
||||||
|
|
||||||
### JaBa v4.1.8
|
### JaBa v4.1.8
|
||||||
* Добавлено
|
* Добавлено
|
||||||
* Возможность сразу сократить ссылку в команде *lmgtfy*.
|
* Возможность сразу сократить ссылку в команде *lmgtfy*.
|
||||||
|
|
|
@ -17,7 +17,7 @@ router.get("/:serverID", CheckAuth, async(req, res) => {
|
||||||
|
|
||||||
// Fetch guild informations
|
// Fetch guild informations
|
||||||
const guildInfos = await utils.fetchGuild(guild.id, req.client, req.user.guilds);
|
const guildInfos = await utils.fetchGuild(guild.id, req.client, req.user.guilds);
|
||||||
const memberData = await req.client.findOrCreateMember({ id: req.userInfos.id, guildID: guild.id });
|
const memberData = await req.client.findOrCreateMember({ id: req.userInfos.id, guildId: guild.id });
|
||||||
|
|
||||||
res.render("manager/guild", {
|
res.render("manager/guild", {
|
||||||
guild: guildInfos,
|
guild: guildInfos,
|
||||||
|
|
|
@ -14,7 +14,7 @@ router.get("/:serverID", CheckAuth, async (req, res) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const memberData = await req.client.findOrCreateMember({ id: req.userInfos.id, guildID: guild.id });
|
const memberData = await req.client.findOrCreateMember({ id: req.userInfos.id, guildId: guild.id });
|
||||||
|
|
||||||
// Fetch guild informations
|
// Fetch guild informations
|
||||||
const membersData = await req.client.membersData.find({
|
const membersData = await req.client.membersData.find({
|
||||||
|
|
|
@ -36,7 +36,7 @@ class CommandHandler extends BaseEvent {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: interaction.member.id,
|
id: interaction.member.id,
|
||||||
guildID: interaction.guildId
|
guildId: interaction.guildId
|
||||||
});
|
});
|
||||||
data.memberData = memberData;
|
data.memberData = memberData;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ class GuildMemberAdd extends BaseEvent {
|
||||||
|
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: member.id,
|
id: member.id,
|
||||||
guildID: member.guild.id
|
guildId: member.guild.id
|
||||||
});
|
});
|
||||||
if (memberData.mute.muted && memberData.mute.endDate > Date.now()) {
|
if (memberData.mute.muted && memberData.mute.endDate > Date.now()) {
|
||||||
member.guild.channels.cache.forEach((channel) => {
|
member.guild.channels.cache.forEach((channel) => {
|
||||||
|
|
|
@ -33,7 +33,7 @@ class MessageCreate extends BaseEvent {
|
||||||
if (message.guild) {
|
if (message.guild) {
|
||||||
const memberData = await client.findOrCreateMember({
|
const memberData = await client.findOrCreateMember({
|
||||||
id: message.author.id,
|
id: message.author.id,
|
||||||
guildID: message.guild.id
|
guildId: message.guild.id
|
||||||
});
|
});
|
||||||
data.memberData = memberData;
|
data.memberData = memberData;
|
||||||
}
|
}
|
||||||
|
@ -75,24 +75,37 @@ class MessageCreate extends BaseEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {import("../base/JaBa")} client
|
||||||
|
* @param {import("discord.js").Message} msg
|
||||||
|
* @param {*} data
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
async function updateXp(client, msg, data) {
|
async function updateXp(client, msg, data) {
|
||||||
const points = parseInt(data.memberData.exp);
|
const points = parseInt(data.memberData.exp),
|
||||||
const level = parseInt(data.memberData.level);
|
level = parseInt(data.memberData.level),
|
||||||
const isInCooldown = xpCooldown[msg.author.id];
|
isInCooldown = xpCooldown[msg.author.id];
|
||||||
|
|
||||||
if (isInCooldown) {
|
if (isInCooldown) {
|
||||||
if (isInCooldown > Date.now()) return;
|
if (isInCooldown > Date.now()) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const toWait = Date.now() + 60000; // 1 min
|
const toWait = Date.now() + (60 * 1000); // 1 min
|
||||||
xpCooldown[msg.author.id] = toWait;
|
xpCooldown[msg.author.id] = toWait;
|
||||||
|
|
||||||
const won = client.functions.randomNum(1, 4);
|
const won = client.functions.randomNum(1, 2);
|
||||||
const newXp = parseInt(points + won, 10);
|
const newXp = parseInt(points + won, 10);
|
||||||
const neededXp = 5 * (level * level) + 80 * level + 100;
|
const neededXp = 5 * (level * level) + 80 * level + 100;
|
||||||
|
|
||||||
if (newXp > neededXp) data.memberData.level = parseInt(level + 1, 10);
|
if (newXp > neededXp) {
|
||||||
|
data.memberData.level = parseInt(level + 1, 10);
|
||||||
|
data.memberData.exp = 0;
|
||||||
|
msg.replyT("misc:LEVEL_UP", {
|
||||||
|
level: data.memberData.level
|
||||||
|
}, { mention: false });
|
||||||
|
} else data.memberData.exp = parseInt(newXp, 10);
|
||||||
|
|
||||||
data.memberData.exp = parseInt(newXp, 10);
|
|
||||||
await data.memberData.save();
|
await data.memberData.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,31 +18,24 @@ class Ready extends BaseEvent {
|
||||||
let tUsers = client.users.cache.size - hiddenGuild.memberCount;
|
let tUsers = client.users.cache.size - hiddenGuild.memberCount;
|
||||||
let tServers = client.guilds.cache.size - 1;
|
let tServers = client.guilds.cache.size - 1;
|
||||||
|
|
||||||
// Logs some informations using logger
|
|
||||||
client.logger.log(`Loaded a total of ${commands.length} command(s).`, "ready");
|
client.logger.log(`Loaded a total of ${commands.length} command(s).`, "ready");
|
||||||
client.logger.log(`${client.user.tag}, ready to serve ${tUsers} users in ${tServers} servers.`, "ready");
|
client.logger.log(`${client.user.tag}, ready to serve ${tUsers} users in ${tServers} servers.`, "ready");
|
||||||
client.logger.log(`Invite Link: ${client.generateInvite({ scopes: ["bot", "applications.commands"] , permissions: [ PermissionsBitField.Flags.Administrator ] })}`, "ready");
|
client.logger.log(`Invite Link: ${client.generateInvite({ scopes: ["bot", "applications.commands"] , permissions: [ PermissionsBitField.Flags.Administrator ] })}`, "ready");
|
||||||
|
|
||||||
// Birthday Announce
|
|
||||||
const birthdays = require("../helpers/birthdays");
|
const birthdays = require("../helpers/birthdays");
|
||||||
birthdays.init(client);
|
birthdays.init(client);
|
||||||
|
|
||||||
// Unmute users
|
|
||||||
const checkUnmutes = require("../helpers/checkUnmutes");
|
const checkUnmutes = require("../helpers/checkUnmutes");
|
||||||
checkUnmutes.init(client);
|
checkUnmutes.init(client);
|
||||||
|
|
||||||
// Send reminds
|
|
||||||
const checkReminds = require("../helpers/checkReminds");
|
const checkReminds = require("../helpers/checkReminds");
|
||||||
checkReminds.init(client);
|
checkReminds.init(client);
|
||||||
|
|
||||||
// Clear transactions
|
|
||||||
const cleanup = require("../helpers/cleanup");
|
const cleanup = require("../helpers/cleanup");
|
||||||
cleanup.init(client);
|
cleanup.init(client);
|
||||||
|
|
||||||
// Start the dashboard
|
|
||||||
if (client.config.dashboard.enabled) client.dashboard.init(client);
|
if (client.config.dashboard.enabled) client.dashboard.init(client);
|
||||||
|
|
||||||
// Update status
|
|
||||||
const version = require("../package.json").version;
|
const version = require("../package.json").version;
|
||||||
const status = [
|
const status = [
|
||||||
{ name: "help", type: ActivityType.Watching },
|
{ name: "help", type: ActivityType.Watching },
|
||||||
|
|
|
@ -25,9 +25,9 @@ module.exports.init = async function (client) {
|
||||||
for (const user of res) {
|
for (const user of res) {
|
||||||
client.users.fetch(user.id).then(u => {
|
client.users.fetch(user.id).then(u => {
|
||||||
if (u.username.match(/.*Deleted User.* [A-z0-9]+/g)) {
|
if (u.username.match(/.*Deleted User.* [A-z0-9]+/g)) {
|
||||||
client.databaseCache.users.delete(user.id);
|
client.databaseCache.users.delete(u.id);
|
||||||
client.usersData.deleteOne({ id: user.id });
|
client.usersData.deleteOne({ id: u.id });
|
||||||
console.log(`Removed from database deleted user - ID: ${u.id} Username: ${u.username}`);
|
client.logger.log(`Removed from database deleted user - ID: ${u.id} Username: ${u.username}`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,12 @@
|
||||||
const { Message, CommandInteraction } = require("discord.js");
|
const { Message, CommandInteraction } = require("discord.js");
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {String} key
|
|
||||||
* @param {Array} args
|
|
||||||
* @returns {String}
|
|
||||||
*/
|
|
||||||
CommandInteraction.prototype.translate = function (key, args) {
|
CommandInteraction.prototype.translate = function (key, args) {
|
||||||
const language = this.client.translations.get(this.guild ? this.guild.data.language : "ru-RU");
|
const language = this.client.translations.get(this.guild ? this.guild.data.language : "ru-RU");
|
||||||
if (!language) throw "Message: Invalid language set in data.";
|
if (!language) throw "Interaction: Invalid language set in data.";
|
||||||
|
|
||||||
return language(key, args);
|
return language(key, args);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {String} key
|
|
||||||
* @param {Array} args
|
|
||||||
* @param {Array} options
|
|
||||||
* @returns {import("discord.js").BaseCommandInteraction}
|
|
||||||
*/
|
|
||||||
CommandInteraction.prototype.replyT = function (key, args, options = {}) {
|
CommandInteraction.prototype.replyT = function (key, args, options = {}) {
|
||||||
let string = this.translate(key, args, this.guild ? this.guild.data.language : "ru-RU");
|
let string = this.translate(key, args, this.guild ? this.guild.data.language : "ru-RU");
|
||||||
if (options.prefixEmoji) string = `${this.client.customEmojis[options.prefixEmoji]} | ${string}`;
|
if (options.prefixEmoji) string = `${this.client.customEmojis[options.prefixEmoji]} | ${string}`;
|
||||||
|
@ -28,26 +15,12 @@ CommandInteraction.prototype.replyT = function (key, args, options = {}) {
|
||||||
else return this.reply({ content: string, ephemeral: options.ephemeral || false });
|
else return this.reply({ content: string, ephemeral: options.ephemeral || false });
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {String} key
|
|
||||||
* @param {Array} args
|
|
||||||
* @param {Array} options
|
|
||||||
* @returns {import("discord.js").BaseCommandInteraction}
|
|
||||||
*/
|
|
||||||
CommandInteraction.prototype.error = function (key, args, options = {}) {
|
CommandInteraction.prototype.error = function (key, args, options = {}) {
|
||||||
options.prefixEmoji = "error";
|
options.prefixEmoji = "error";
|
||||||
|
|
||||||
return this.replyT(key, args, options);
|
return this.replyT(key, args, options);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {String} key
|
|
||||||
* @param {Array} args
|
|
||||||
* @param {Array} options
|
|
||||||
* @returns {import("discord.js").BaseCommandInteraction}
|
|
||||||
*/
|
|
||||||
CommandInteraction.prototype.success = function (key, args, options = {}) {
|
CommandInteraction.prototype.success = function (key, args, options = {}) {
|
||||||
options.prefixEmoji = "success";
|
options.prefixEmoji = "success";
|
||||||
|
|
||||||
|
@ -65,8 +38,8 @@ Message.prototype.replyT = function (key, args, options = {}) {
|
||||||
let string = this.translate(key, args, this.guild ? this.guild.data.language : "ru-RU");
|
let string = this.translate(key, args, this.guild ? this.guild.data.language : "ru-RU");
|
||||||
if (options.prefixEmoji) string = `${this.client.customEmojis[options.prefixEmoji]} | ${string}`;
|
if (options.prefixEmoji) string = `${this.client.customEmojis[options.prefixEmoji]} | ${string}`;
|
||||||
|
|
||||||
if (options.edit) return this.edit({ content: string });
|
if (options.edit) return this.edit({ content: string, allowedMentions: { repliedUser: options.mention || true } });
|
||||||
else return this.reply({ content: string });
|
else return this.reply({ content: string, allowedMentions: { repliedUser: options.mention || true } });
|
||||||
};
|
};
|
||||||
|
|
||||||
Message.prototype.error = function (key, args, options = {}) {
|
Message.prototype.error = function (key, args, options = {}) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"BOT_USER": "Вы не можете сделать это с ботом!",
|
"BOT_USER": "Вы не можете сделать это с ботом!",
|
||||||
"FORCE_STOP": "Игра принудительно окончена {{user}}, никто не победил!",
|
"FORCE_STOP": "Игра принудительно окончена {{user}}, никто не победил!",
|
||||||
|
"LEVEL_UP": "Вы достигли следующего уровня! Ваш новый уровень: **{{level}}**",
|
||||||
"GUILD_ONLY": "Данную команду можно использовать только на сервере!",
|
"GUILD_ONLY": "Данную команду можно использовать только на сервере!",
|
||||||
"HELLO_SERVER": "Привет, **{{username}}**! Все мои команды доступны через **/** Используйте `/help`, чтобы получить список команд!",
|
"HELLO_SERVER": "Привет, **{{username}}**! Все мои команды доступны через **/** Используйте `/help`, чтобы получить список команд!",
|
||||||
"INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**!",
|
"INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**!",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "jaba",
|
"name": "jaba",
|
||||||
"version": "4.1.8",
|
"version": "4.1.9",
|
||||||
"description": "My Discord Bot",
|
"description": "My Discord Bot",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|
Loading…
Reference in a new issue