mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 03:59:50 +02:00
feat: actual stats
This commit is contained in:
1 parent
4482b76746
commit
64241febae
2 files changed
+84
-61
No files matched your search
@@ -9,6 +9,7 @@ export default async function (member: GuildMember) {
|
|||||||
await (
|
await (
|
||||||
member.guild.channels.cache.get(discord.verify_channel) as TextChannel
|
member.guild.channels.cache.get(discord.verify_channel) as TextChannel
|
||||||
).send({
|
).send({
|
||||||
|
content: member.toString(),
|
||||||
embeds: [
|
embeds: [
|
||||||
new EmbedBuilder()
|
new EmbedBuilder()
|
||||||
.setColor(SKILLED_COLOR)
|
.setColor(SKILLED_COLOR)
|
||||||
@@ -22,7 +23,4 @@ export default async function (member: GuildMember) {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
await (
|
|
||||||
member.guild.channels.cache.get(discord.verify_channel) as TextChannel
|
|
||||||
).send(member.toString());
|
|
||||||
}
|
}
|
||||||
+83
-58
@@ -5,7 +5,7 @@ import {
|
|||||||
SlashCommandBuilder,
|
SlashCommandBuilder,
|
||||||
} from 'discord.js';
|
} from 'discord.js';
|
||||||
import fetch from 'node-fetch';
|
import fetch from 'node-fetch';
|
||||||
import { SKILLED_COLOR } from '../constants/colors.js';
|
import { NEGATIVE_COLOR, SKILLED_COLOR } from '../constants/colors.js';
|
||||||
import { SERVERS } from '../constants/servers.js';
|
import { SERVERS } from '../constants/servers.js';
|
||||||
import { PlayerStatistics } from '../types/statistics.js';
|
import { PlayerStatistics } from '../types/statistics.js';
|
||||||
import getBlitzAccount from '../utilities/getBlitzAccount.js';
|
import getBlitzAccount from '../utilities/getBlitzAccount.js';
|
||||||
@@ -23,65 +23,90 @@ export async function execute(
|
|||||||
| 'career';
|
| 'career';
|
||||||
|
|
||||||
getBlitzAccount(interaction, ign, server, async (account) => {
|
getBlitzAccount(interaction, ign, server, async (account) => {
|
||||||
const data = (await (
|
fetch(`https://www.blitzstars.com/api/top/player/${account.account_id}`)
|
||||||
await fetch(
|
.then(async (response) => {
|
||||||
`https://www.blitzstars.com/api/top/player/${account.account_id}`,
|
const data = (await response.json()) as PlayerStatistics;
|
||||||
)
|
const stats =
|
||||||
).json()) as PlayerStatistics;
|
period === 'career' ? data.statistics : data[`period${period}d`];
|
||||||
const stats =
|
|
||||||
period === 'career' ? data.statistics : data[`period${period}d`];
|
|
||||||
|
|
||||||
interaction.reply({
|
interaction.reply({
|
||||||
embeds: [
|
content: 'ass',
|
||||||
new EmbedBuilder()
|
embeds: [
|
||||||
.setColor(SKILLED_COLOR)
|
new EmbedBuilder()
|
||||||
.setTitle(
|
.setColor(SKILLED_COLOR)
|
||||||
`${data.nickname}'s ${
|
.setTitle(
|
||||||
period === 'career' ? period : `${period} day`
|
`${data.nickname}'s ${
|
||||||
} stats`,
|
period === 'career' ? period : `${period} day`
|
||||||
)
|
} stats`,
|
||||||
.setDescription(
|
|
||||||
`${[
|
|
||||||
['Winrate', `${stats.special.winrate.toFixed(2)}%`],
|
|
||||||
['Survival', `${stats.special.survivalRate.toFixed(2)}%`],
|
|
||||||
[
|
|
||||||
'Accuracy',
|
|
||||||
`${((stats.all.hits / stats.all.shots) * 100).toFixed(2)}%`,
|
|
||||||
],
|
|
||||||
['WN8', stats.wn8.toFixed(0)],
|
|
||||||
['WN7', stats.wn7.toFixed(0)],
|
|
||||||
[],
|
|
||||||
['Battles', stats.all.battles],
|
|
||||||
['Wins', stats.all.wins],
|
|
||||||
['Losses', stats.all.losses],
|
|
||||||
['Average tier', stats.avg_tier.toFixed(2)],
|
|
||||||
[],
|
|
||||||
['Hits per battle', stats.special.hpb.toFixed(0)],
|
|
||||||
['Damage per battle', stats.special.dpb.toFixed(0)],
|
|
||||||
['Kills per battle', stats.special.kpb.toFixed(2)],
|
|
||||||
['Spots per battle', stats.special.spb.toFixed(2)],
|
|
||||||
[
|
|
||||||
'Shots per battle',
|
|
||||||
(stats.all.shots / stats.all.battles).toFixed(2),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'Hits per battle',
|
|
||||||
(stats.all.hits / stats.all.battles).toFixed(2),
|
|
||||||
],
|
|
||||||
['XP per battle', (stats.all.xp / stats.all.battles).toFixed(2)],
|
|
||||||
[],
|
|
||||||
['Damage ratio', stats.special.damageRatio.toFixed(2)],
|
|
||||||
['Kills to death ratio', stats.special.kdr.toFixed(2)],
|
|
||||||
]
|
|
||||||
.map((array) =>
|
|
||||||
array.length === 0 ? '' : `**${array[0]}**: ${array[1]}`,
|
|
||||||
)
|
)
|
||||||
.join(
|
.setDescription(
|
||||||
'\n',
|
`${[
|
||||||
)}\n\nPowered by [BlitzStars](https://www.blitzstars.com/)`,
|
['Winrate', `${stats.special.winrate.toFixed(2)}%`],
|
||||||
),
|
['Survival', `${stats.special.survivalRate.toFixed(2)}%`],
|
||||||
],
|
[
|
||||||
});
|
'Accuracy',
|
||||||
|
`${((stats.all.hits / stats.all.shots) * 100).toFixed(2)}%`,
|
||||||
|
],
|
||||||
|
['WN8', stats.wn8.toFixed(0)],
|
||||||
|
['WN7', stats.wn7.toFixed(0)],
|
||||||
|
[],
|
||||||
|
['Battles', stats.all.battles],
|
||||||
|
['Wins', stats.all.wins],
|
||||||
|
['Losses', stats.all.losses],
|
||||||
|
['Average tier', stats.avg_tier.toFixed(2)],
|
||||||
|
[],
|
||||||
|
['Hits per battle', stats.special.hpb.toFixed(0)],
|
||||||
|
['Damage per battle', stats.special.dpb.toFixed(0)],
|
||||||
|
['Kills per battle', stats.special.kpb.toFixed(2)],
|
||||||
|
['Spots per battle', stats.special.spb.toFixed(2)],
|
||||||
|
[
|
||||||
|
'Shots per battle',
|
||||||
|
(stats.all.shots / stats.all.battles).toFixed(2),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'Hits per battle',
|
||||||
|
(stats.all.hits / stats.all.battles).toFixed(2),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'XP per battle',
|
||||||
|
(stats.all.xp / stats.all.battles).toFixed(2),
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
['Damage ratio', stats.special.damageRatio.toFixed(2)],
|
||||||
|
['Kills to death ratio', stats.special.kdr.toFixed(2)],
|
||||||
|
]
|
||||||
|
.map((array) =>
|
||||||
|
array.length === 0 ? '' : `**${array[0]}**: ${array[1]}`,
|
||||||
|
)
|
||||||
|
.join(
|
||||||
|
'\n',
|
||||||
|
)}\n\n[View full stats](https://www.blitzstars.com/player/${
|
||||||
|
data.region
|
||||||
|
}/${
|
||||||
|
data.nickname
|
||||||
|
}) • [Support BlitzStars](https://www.blitzstars.com/supporters)`,
|
||||||
|
)
|
||||||
|
.setTimestamp()
|
||||||
|
.setFooter({
|
||||||
|
text: 'Powered by BlitzStars',
|
||||||
|
iconURL:
|
||||||
|
'https://www.blitzstars.com/assets/images/TankyMcPewpew.png',
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`Showing ${data.nickname}'s ${period} stats`);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
interaction.reply({
|
||||||
|
embeds: [
|
||||||
|
new EmbedBuilder()
|
||||||
|
.setTitle('No data to display')
|
||||||
|
.setDescription(`${ign} is not tracked by BlitzStars.`)
|
||||||
|
.setColor(NEGATIVE_COLOR),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user