Skip to content

Commit b05341e

Browse files
authored
Update 5.5.0
1 parent 6eaf330 commit b05341e

File tree

7 files changed

+113
-1
lines changed

7 files changed

+113
-1
lines changed

commands/Utilities/TopChart.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const { EmbedBuilder } = require("discord.js");
2+
const { Database } = require("st.db");
3+
const ytsr = require("@distube/ytsr");
4+
5+
const SStats = new Database("./settings/models/chart.json", { databaseInObject: true });
6+
7+
module.exports = {
8+
name: ["topchart"],
9+
description: "Display top song most recent playable.",
10+
category: "Utilities",
11+
run: async (client, interaction) => {
12+
await interaction.deferReply({ ephemeral: false });
13+
14+
const all = SStats.all().slice(0, 10);
15+
16+
all.sort((a, b) => {
17+
return b.data - a.data;
18+
});
19+
20+
var index = 0;
21+
22+
for (let i = 0; i < all.length; i++) {
23+
const total = all[i].data;
24+
index = (index + total)
25+
}
26+
27+
const TopChart = [];
28+
for (let i = 0; i < all.length; i++) {
29+
const format = `https://youtu.be/${all[i].ID}`;
30+
const search = await ytsr(format);
31+
const track = search.items[0];
32+
33+
TopChart.push(
34+
`**${i + 1}.** [${track.name}](${track.url}) | **Playable:** \`${all[i].data}\`
35+
`)
36+
}
37+
38+
const str = TopChart.join('');
39+
40+
const embed = new EmbedBuilder()
41+
.setColor(client.color)
42+
.setAuthor({ name: `Top Charts`, iconURL: interaction.guild.iconURL({ dynamic: true })})
43+
.setThumbnail(client.user.displayAvatarURL({ dynamic: true, size: 2048 }))
44+
.setDescription(`${str == '' ? ' No Playable' : '\n' + str}`)
45+
.setFooter({ text: `Total Song • ${SStats.all().length} | Total Playable • ${index}` })
46+
47+
48+
return interaction.editReply({ embeds: [embed] })
49+
}
50+
}

commands/Utilities/UsableStats.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
const { EmbedBuilder } = require("discord.js");
2+
const { Database } = require("st.db");
3+
4+
const BStats = new Database("./settings/models/stats.json", { databaseInObject: true });
5+
6+
module.exports = {
7+
name: ["usablestats"],
8+
description: "Display all commands stats usable.",
9+
category: "Utilities",
10+
run: async (client, interaction) => {
11+
await interaction.deferReply({ ephemeral: false });
12+
13+
const all = BStats.all().slice(0, 10);
14+
15+
all.sort((a, b) => {
16+
return b.data - a.data;
17+
});
18+
19+
var index = 0;
20+
21+
for (let i = 0; i < all.length; i++) {
22+
const total = all[i].data;
23+
index = (index + total)
24+
}
25+
26+
const TopUsable = [];
27+
for (let i = 0; i < all.length; i++) {
28+
const name = all[i].ID.UppertoLowerCase();
29+
const usable = all[i].data;
30+
31+
TopUsable.push(
32+
`**${i + 1}.** ${name} | **Usable:** \`${usable}\`
33+
`)
34+
}
35+
36+
const str = TopUsable.join('');
37+
38+
const embed = new EmbedBuilder()
39+
.setColor(client.color)
40+
.setAuthor({ name: `Usable Commands!`, iconURL: interaction.guild.iconURL({ dynamic: true })})
41+
.setThumbnail(client.user.displayAvatarURL({ dynamic: true, size: 2048 }))
42+
.setDescription(`${str == '' ? ' No Usable' : '\n' + str}`)
43+
.setFooter({ text: `Total Command • ${BStats.all().length} | Total Usable • ${index}` })
44+
45+
46+
return interaction.editReply({ embeds: [embed] })
47+
}
48+
}

events/distube/playSong.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const GSetup = new Database("./settings/models/setup.json", { databaseInObject:
66
module.exports = async (client, queue, track) => {
77

88
await client.UpdateQueueMsg(queue);
9+
await client.addChart(track.id);
910

1011
const db = await GSetup.get(queue.textChannel.guild.id);
1112
if (db.setup_enable === true) return;

events/guild/interactionCreate.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ module.exports = async(client, interaction) => {
5252
if (!command) return;
5353
if (command) {
5454
try {
55+
client.addCount(command.name.at(-1));
5556
command.run(client, interaction);
5657
} catch (error) {
5758
console.log(error);

handlers/loadDatabase.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,23 @@ module.exports = async (client) => {
6060

6161
client.createPlay = async function (interaction, message) {
6262
const db = new Database("./settings/models/message.json", { databaseInObject: true });
63-
6463
await db.set(interaction.guild.id, {
6564
channel_id: interaction.channel.id,
6665
message_id: message
6766
});
6867
};
6968

69+
client.addCount = async function (cmdname) {
70+
const db = new Database("./settings/models/stats.json", { databaseInObject: true });
71+
await db.add({ key: cmdname, value: 1 });
72+
}
73+
74+
client.addChart = async function (id) {
75+
const db = new Database("./settings/models/chart.json", { databaseInObject: true });
76+
await db.add({ key: id, value: 1 });
77+
}
78+
79+
7080
client.interval = null;
7181

7282
client.clearInterval = async function (interval) {

settings/models/chart.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

settings/models/stats.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

0 commit comments

Comments
 (0)