Skip to content

Commit e072be9

Browse files
committed
feat!: Another piece for MongoDB Update
1 parent 099fdab commit e072be9

28 files changed

+908
-567
lines changed

src/commands/levels/rank.js

Lines changed: 51 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const Command = require("../Command.js");
2-
const {MessageAttachment} = require("discord.js");
2+
const { MessageAttachment } = require("discord.js");
33
const canvas = require("discord-canvas");
44
rankCardCanvas = new canvas.RankCard();
55

@@ -9,47 +9,33 @@ module.exports = class RankCommand extends Command {
99
name: "rank",
1010
usage: "rank <user mention/ID>",
1111
description:
12-
"Fetches a user's xp. If no user is given, your own xp will be displayed.",
12+
"Fetches a user's xp. If no user is given, your own xp will be displayed.",
1313
type: client.types.LEVELS,
1414
examples: ["rank @MDC"],
1515
});
1616
}
1717
async run(message, args) {
18-
// Check if user is in a voice channel
19-
if (message.member.voice.channel)
20-
return await this.sendErrorMessage(
21-
message,
22-
1,
23-
"Because a limitation of the API, you can't use this command in a voice channel."
24-
);
18+
let {
19+
xp,
20+
level,
21+
total_messages,
22+
total_commands,
23+
total_reactions,
24+
total_voice,
25+
total_pictures,
26+
} = await message.client.mongodb.users.selectRow(
27+
message.author.id,
28+
message.guild.id
29+
);
30+
2531
const member =
26-
this.getMemberFromMention(message, args[0]) ||
27-
message.guild.members.cache.get(args[0]) ||
28-
message.member;
29-
const xp = message.client.db.users.selectXP
30-
.pluck()
31-
.get(member.id, message.guild.id);
32-
const level = message.client.db.users.selectLevel
33-
.pluck()
34-
.get(member.id, message.guild.id);
35-
let total_messages = message.client.db.users.selectTotalMessages
36-
.pluck()
37-
.get(member.id, message.guild.id);
38-
let total_commands = message.client.db.users.selectTotalCommands
39-
.pluck()
40-
.get(member.id, message.guild.id);
41-
let total_reactions = message.client.db.users.selectTotalReactions
42-
.pluck()
43-
.get(member.id, message.guild.id);
44-
let total_voice = message.client.db.users.selectTotalVoice
45-
.pluck()
46-
.get(member.id, message.guild.id);
47-
let total_pictures = message.client.db.users.selectTotalPictures
48-
.pluck()
49-
.get(member.id, message.guild.id);
32+
this.getMemberFromMention(message, args[0]) ||
33+
message.guild.members.cache.get(args[0]) ||
34+
message.member;
35+
5036
const requiredXP = 50 * Math.pow(level, 2);
51-
const leaderboard = message.client.db.users.selectRank.all(
52-
message.guild.id
37+
const leaderboard = await message.client.mongodb.users.selectRank(
38+
message.guild.id
5339
);
5440
const position = leaderboard.map((row) => row.user_id).indexOf(member.id);
5541
let boosts = member.premiumSince;
@@ -58,9 +44,13 @@ module.exports = class RankCommand extends Command {
5844
let mod_badge_or_admin_role = null;
5945

6046
let moderator_role =
61-
await message.client.mongodb.settings(message.guild.id) || "";
47+
(await message.client.mongodb.settings.selectModRoleId(
48+
message.guild.id
49+
)) || "";
6250
let admin_role =
63-
await message.client.mongodb.settings.selectAdminRoleId(message.guild.id) || "";
51+
(await message.client.mongodb.settings.selectAdminRoleId(
52+
message.guild.id
53+
)) || "";
6454

6555
if (member.roles.cache.has(moderator_role)) {
6656
mod_badge_or_admin_role = "https://i.imgur.com/tpaksRh.png";
@@ -131,32 +121,32 @@ module.exports = class RankCommand extends Command {
131121
}
132122

133123
let image = await rankCardCanvas
134-
.setAvatar(member.user.displayAvatarURL({format: "png", dynamic: true}))
135-
.setXP("current", xp)
136-
.setXP("needed", requiredXP)
137-
.setLevel(level)
138-
.setRank(position + 1)
139-
.setUsername(member.displayName)
140-
.setRankName(username)
141-
.setColor("level-box", "#d7588f")
142-
.setText(
143-
"needed-xp",
144-
"{current}/{needed} for next rank. {latest} remaining!"
145-
)
146-
.setRadius(20)
147-
.setAddon("reputation", false)
148-
.setBackground("https://i.imgur.com/rLArvSC.png")
149-
.setBadge(1, total_messages)
150-
.setBadge(2, total_voice)
151-
.setBadge(4, total_pictures)
152-
.setBadge(5, total_reactions)
153-
.setBadge(6, mod_badge_or_admin_role)
154-
.setBadge(7, boosts)
155-
.setBadge(9, total_commands)
156-
.toAttachment();
124+
.setAvatar(member.user.displayAvatarURL({ format: "png", dynamic: true }))
125+
.setXP("current", xp)
126+
.setXP("needed", requiredXP)
127+
.setLevel(level)
128+
.setRank(position + 1)
129+
.setUsername(member.displayName)
130+
.setRankName(username)
131+
.setColor("level-box", "#d7588f")
132+
.setText(
133+
"needed-xp",
134+
"{current}/{needed} for next rank. {latest} remaining!"
135+
)
136+
.setRadius(20)
137+
.setAddon("reputation", false)
138+
.setBackground("https://i.imgur.com/rLArvSC.png")
139+
.setBadge(1, total_messages)
140+
.setBadge(2, total_voice)
141+
.setBadge(4, total_pictures)
142+
.setBadge(5, total_reactions)
143+
.setBadge(6, mod_badge_or_admin_role)
144+
.setBadge(7, boosts)
145+
.setBadge(9, total_commands)
146+
.toAttachment();
157147

158148
let attachment = new MessageAttachment(image.toBuffer(), "rank.png");
159149

160-
return message.channel.send({files: [attachment]});
150+
return message.channel.send({ files: [attachment] });
161151
}
162152
};

src/commands/levels/ranks.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module.exports = class RanksCommand extends Command {
2929
let max = parseInt(args[0]);
3030
if (!max || max < 0) max = 10;
3131
else if (max > 25) max = 25;
32-
let leaderboard = message.client.db.users.selectRank.all(message.guild.id);
32+
let leaderboard = await message.client.mongodb.users.selectRankXP(message.guild.id);
3333
const position = leaderboard
3434
.map((row) => row.user_id)
3535
.indexOf(message.author.id);

src/commands/music/lyrics.js

Lines changed: 55 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,71 @@
1-
const Command = require('../Command.js');
2-
const { MessageEmbed } = require('discord.js');
1+
const Command = require("../Command.js");
2+
const { MessageEmbed } = require("discord.js");
33

44
const Genius = require("genius-lyrics");
5-
const Client = new Genius.Client();
5+
const Client = new Genius.Client();
66
module.exports = class LyricsMusicCommand extends Command {
77
constructor(client) {
88
super(client, {
9-
name: 'lyrics',
10-
usage: 'lyrics [song name]',
11-
description: 'Shows the lyrics to the currently-playing song',
12-
examples: ['lyrics Never Gonna Give You Up', 'lyrics Show Yourself CG5'],
9+
name: "lyrics",
10+
usage: "lyrics [song name]",
11+
description: "Shows the lyrics to the currently-playing song",
12+
examples: ["lyrics Never Gonna Give You Up", "lyrics Show Yourself CG5"],
1313
type: client.types.MUSIC,
1414
});
1515
}
1616
async run(message, args) {
17-
let song = args.join(' ');
18-
const searches = await Client.songs.search(song);
19-
const first_result = searches[0];
20-
const lyrics = await first_result.lyrics();
17+
let song = args.join(" ");
18+
const searches = await Client.songs.search(song);
19+
const first_result = searches[0];
20+
const lyrics = await first_result.lyrics();
2121

22-
if(!lyrics) return await this.sendErrorMessage(message, 1, 'No lyrics found for that song.');
22+
if (!lyrics)
23+
return await this.sendErrorMessage(
24+
message,
25+
1,
26+
"No lyrics found for that song."
27+
);
28+
const embeds = [];
2329

24-
if(lyrics.length > 2048) {
25-
const embeds = [];
26-
for (let i = 0; i < lyrics.length; i += 2048) {
27-
const embed = new MessageEmbed()
28-
.setColor(message.guild ? message.guild.me.displayColor : '#7CFC00')
29-
.setDescription(lyrics.substring(i, i + 2048));
30-
embeds.push(embed);
31-
}
32-
if(embeds.length > 5) {
33-
//Sends first 5 embeds
34-
let first_embed = 0
35-
for(let i = 0; i < 5; i++) {
36-
if(i % 4 === 0) {
37-
let newEmbedList = embeds.slice(first_embed, first_embed + 5);
38-
message.channel.send({embeds: newEmbedList});
39-
first_embed += 5;
40-
}
41-
}
42-
43-
} else {
44-
message.channel.send({embeds: embeds});
45-
}
46-
47-
let embed = new MessageEmbed()
30+
let initialEmbed = new MessageEmbed()
4831
.setColor(message.guild.me.displayColor)
4932
.setTitle(`Lyrics for ${first_result.title}`)
50-
.setDescription(lyrics)
5133
.setFooter({
5234
text: `Requested by ${message.author.tag}`,
53-
icon_url: message.author.displayAvatarURL()
54-
})
55-
message.channel.send({embeds: [embed]});
56-
}
35+
icon_url: message.author.displayAvatarURL(),
36+
});
37+
embeds.push(initialEmbed);
38+
39+
if (lyrics.length > 2048) {
40+
for (let i = 0; i < lyrics.length; i += 2048) {
41+
const embed = new MessageEmbed()
42+
.setColor(message.guild ? message.guild.me.displayColor : "#7CFC00")
43+
.setDescription(lyrics.substring(i, i + 2048));
44+
embeds.push(embed);
45+
}
46+
if (embeds.length > 5) {
47+
//Sends first 5 embeds
48+
let first_embed = 0;
49+
for (let i = 0; i < 5; i++) {
50+
if (i % 4 === 0) {
51+
let newEmbedList = embeds.slice(first_embed, first_embed + 5);
52+
message.channel.send({ embeds: newEmbedList });
53+
first_embed += 5;
54+
}
55+
}
56+
} else {
57+
message.channel.send({ embeds: embeds });
58+
}
59+
} else {
60+
message.channel.send({ embeds: [new MessageEmbed()
61+
.setColor(message.guild.me.displayColor)
62+
.setTitle(`Lyrics for ${first_result.title}`)
63+
.setFooter({
64+
text: `Requested by ${message.author.tag}`,
65+
icon_url: message.author.displayAvatarURL(),
66+
})
67+
.setDescription(lyrics)]
68+
});
5769
}
58-
};
70+
}
71+
};

src/commands/owner/wipeallpoints.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ module.exports = class WipeAllPointsCommand extends Command {
2121
return await this.sendErrorMessage(message, 0, 'Please provide a valid server ID');
2222
const guild = message.client.guilds.cache.get(guildId);
2323
if (!guild) return await this.sendErrorMessage(message, 0, 'Unable to find server, please check the provided ID');
24-
message.client.db.users.wipeAllPoints.run(guildId);
24+
await message.client.mongodb.users.wipeAllPoints(guildId);
2525
const embed = new MessageEmbed()
2626
.setTitle('Wipe All Points')
2727
.setDescription(`Successfully wiped **${guild.name}**'s points.`)
Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,48 @@
1-
const Command = require('../Command.js');
2-
const { MessageEmbed } = require('discord.js');
1+
const Command = require("../Command.js");
2+
const { MessageEmbed } = require("discord.js");
33

44
const rgx = /^(?:<@!?)?(\d+)>?$/;
55

66
module.exports = class WipeAllTotalPointsCommand extends Command {
77
constructor(client) {
88
super(client, {
9-
name: 'wipealltotalpoints',
10-
aliases: ['wipeatp', 'watp'],
11-
usage: 'wipealltotalpoints <server ID>',
12-
description: 'Wipes all members\' points and total points in the server with the provided ID.',
9+
name: "wipealltotalpoints",
10+
aliases: ["wipeatp", "watp"],
11+
usage: "wipealltotalpoints <server ID>",
12+
description:
13+
"Wipes all members' points and total points in the server with the provided ID.",
1314
type: client.types.OWNER,
1415
ownerOnly: true,
15-
examples: ['wipealltotalpoints 709992782252474429']
16+
examples: ["wipealltotalpoints 709992782252474429"],
1617
});
1718
}
1819
async run(message, args) {
1920
const guildId = args[0];
2021
if (!rgx.test(guildId))
21-
return await this.sendErrorMessage(message, 0, 'Please provide a valid server ID');
22+
return await this.sendErrorMessage(
23+
message,
24+
0,
25+
"Please provide a valid server ID"
26+
);
2227
const guild = message.client.guilds.cache.get(guildId);
23-
if (!guild) return await this.sendErrorMessage(message, 0, 'Unable to find server, please check the provided ID');
24-
message.client.db.users.wipeAllTotalPoints.run(guildId);
28+
if (!guild)
29+
return await this.sendErrorMessage(
30+
message,
31+
0,
32+
"Unable to find server, please check the provided ID"
33+
);
34+
await message.client.mongodb.users.wipeAllTotalPoints(guildId);
2535
const embed = new MessageEmbed()
26-
.setTitle('Wipe All Total Points')
27-
.setDescription(`Successfully wiped **${guild.name}**'s points and total points.`)
36+
.setTitle("Wipe All Total Points")
37+
.setDescription(
38+
`Successfully wiped **${guild.name}**'s points and total points.`
39+
)
2840
.setFooter({
2941
text: message.member.displayName,
30-
iconURL: message.author.displayAvatarURL({ dynamic: true })
42+
iconURL: message.author.displayAvatarURL({ dynamic: true }),
3143
})
3244
.setTimestamp()
3345
.setColor(message.guild.me.displayHexColor);
34-
message.channel.send({embeds: [embed]});
35-
}
36-
};
46+
message.channel.send({ embeds: [embed] });
47+
}
48+
};

src/commands/owner/wipepoints.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module.exports = class WipePointsCommand extends Command {
1717
const member = this.getMemberFromMention(message, args[0]) || message.guild.members.cache.get(args[0]);
1818
if (!member)
1919
return await this.sendErrorMessage(message, 0, 'Please mention a user or provide a valid user ID');
20-
message.client.db.users.wipePoints.run(member.id, message.guild.id);
20+
await message.client.mongodb.users.wipePoints(member.id, message.guild.id);
2121
const embed = new MessageEmbed()
2222
.setTitle('Wipe Points')
2323
.setDescription(`Successfully wiped ${member}'s points.`)

src/commands/owner/wipetotalpoints.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module.exports = class WipeTotalPointsCommand extends Command {
1717
const member = this.getMemberFromMention(message, args[0]) || message.guild.members.cache.get(args[0]);
1818
if (!member)
1919
return await this.sendErrorMessage(message, 0, 'Please mention a user or provide a valid user ID');
20-
message.client.db.users.wipeTotalPoints.run(member.id, message.guild.id);
20+
await message.client.mongodb.users.wipeTotalPoints(member.id, message.guild.id);
2121
const embed = new MessageEmbed()
2222
.setTitle('Wipe Total Points')
2323
.setDescription(`Successfully wiped ${member}'s points and total points.`)

0 commit comments

Comments
 (0)