-
Notifications
You must be signed in to change notification settings - Fork 1
/
reply.js
108 lines (105 loc) · 3.1 KB
/
reply.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
const { MessageActionRow, MessageButton, MessageEmbed } = require("discord.js");
const utils = require("./utils_ds.js");
function summoner_stat(
region,
summonerName,
profileIcon,
tier,
rank,
leaguePoints,
winrate,
wins,
losses,
opgg,
hotStreak
)
{
const message = {
color: 0xd48f16,
title: `Stats of ${summonerName} ${hotStreak === "true" ? "🔥" : " "}`,
url: opgg,
author: {
name: summonerName,
icon_url: profileIcon,
url: opgg,
},
description: `This player have ${wins} wins and ${losses} losses over past 7 days.`,
thumbnail: {
url: `https://github.com/Neeptossss/LoLTracker/raw/main/ranks/${tier}.png`,
},
fields: [
{
name: "Rank",
value: `${tier} ${rank !== "0" ? rank : " "}`,
inline: true,
},
{
name: "LP",
value: leaguePoints,
inline: true,
},
{
name: "Winrate",
value: `${winrate}%`,
inline: true,
},
],
footer: {
text: `Server region: ${region}`,
},
};
return message;
}
function leaderboard_stat(interaction, users)
{
var longest_summonerName = 0, longest_rank = 0
for (var key in users) {
if (key.length > longest_summonerName)
longest_summonerName = key.length
if (users[key].rank.length > longest_rank)
longest_rank = users[key].rank.length
}
title0 = 'Rank';
title1 = 'Summoner';
title2 = 'Tier';
title3 = 'LP';
title4 = 'Winrate';
title = '`' + title0 + ' ' + title1 + ' '.repeat(longest_summonerName - title1.length + 3) +
title2 + ' '.repeat(longest_rank - title2.length + 2) + title3 + ' ' + title4 + '`';
const embed = new MessageEmbed()
.setTitle(`Leaderboard of ${interaction.guild.name}`)
.setDescription(' ')
.setColor(0xd48f16)
.setTimestamp();
i = 1;
let res = '';
users = utils.sort_rank(users);
// console.log(users);
for (var key in users) {
users[key].winrate += '%';
let rank, percentage, hotStreak;
if (i === 1) rank = '🥇';
else if (i === 2) rank = '🥈';
else if (i === 3) rank = '🥉';
else rank = i + ' ';
if (users[key].winrate.length < 5) percentage = users[key].winrate + (' '.repeat(6 - users[key].winrate.length));
else percentage = users[key].winrate;
if (users[key].rank === 'Unranked 0') users[key].rank = 'Unranked';
if (users[key].leaguePoints.length < 2) users[key].leaguePoints += ' ';
if (users[key].hotStreak === ('true' || true)) hotStreak = '🔥';
else hotStreak = ' ';
let line = ('`' + rank + ' '.repeat(4 + (i >= 10 ? 1 : 0)) + key + ' '.repeat(longest_summonerName - key.length + 3) + users[key].rank + ' '.repeat(longest_rank - users[key].rank.length + 2) + users[key].leaguePoints + ' ' + percentage + '`' + ' ' + hotStreak + '\n');
res += (line);
i++;
}
console.log(res);
embed.addField(title, res, false);
const row = new MessageActionRow().addComponents(
new MessageButton()
.setCustomId("refresh")
.setLabel("Refresh")
.setStyle("PRIMARY")
);
return {embed, row};
}
module.exports = { summoner_stat, leaderboard_stat };