simply-xp 1.1.5 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,70 +1,70 @@
1
- let Discord = require('discord.js')
2
- const levels = require('../src/models/level.js')
3
-
4
- /**
5
- * @param {Discord.Client} client
6
- * @param {string} guildID
7
- * @param {number} limit
8
- */
9
-
10
- async function leaderboard(client, guildID, limit) {
11
- if (!guildID) throw new Error('[XP] Guild ID was not provided.')
12
-
13
- let g = client.guilds.cache.get(guildID)
14
-
15
- let leaderboard = await levels
16
- .find({
17
- guild: guildID
18
- })
19
- .sort([['xp', 'descending']])
20
- .exec()
21
-
22
- let led = []
23
-
24
- function shortener(count) {
25
- const COUNT_ABBRS = ['', 'k', 'M', 'T']
26
-
27
- const i = 0 === count ? count : Math.floor(Math.log(count) / Math.log(1000))
28
- let result = parseFloat((count / Math.pow(1000, i)).toFixed(2))
29
- result += `${COUNT_ABBRS[i]}`
30
- return result
31
- }
32
-
33
- leaderboard.map((key) => {
34
- let user = g.members.cache.get(key.user)
35
- if (key.xp === 0) return
36
-
37
- let pos =
38
- leaderboard.findIndex(
39
- (i) => i.guild === key.guild && i.user === key.user
40
- ) + 1
41
-
42
- if (limit) {
43
- if (pos > Number(limit)) return
44
- }
45
-
46
- let shortXP = shortener(key.xp)
47
-
48
- if (!user) return
49
-
50
- led.push({
51
- guildID: key.guild,
52
- userID: key.user,
53
- xp: key.xp,
54
- shortxp: shortXP,
55
- level: key.level,
56
- position: pos,
57
- username: user.user.username,
58
- tag: user.user.tag
59
- })
60
- })
61
-
62
- led = led.filter(
63
- (thing, index, self) =>
64
- index === self.findIndex((t) => t.userID === thing.userID)
65
- )
66
-
67
- return led
68
- }
69
-
70
- module.exports = leaderboard
1
+ let Discord = require('discord.js')
2
+ const levels = require('../src/models/level.js')
3
+
4
+ /**
5
+ * @param {Discord.Client} client
6
+ * @param {string} guildID
7
+ * @param {number} limit
8
+ */
9
+
10
+ async function leaderboard(client, guildID, limit) {
11
+ if (!guildID) throw new Error('[XP] Guild ID was not provided.')
12
+
13
+ let g = client.guilds.cache.get(guildID)
14
+
15
+ let leaderboard = await levels
16
+ .find({
17
+ guild: guildID
18
+ })
19
+ .sort([['xp', 'descending']])
20
+ .exec()
21
+
22
+ let led = []
23
+
24
+ function shortener(count) {
25
+ const COUNT_ABBRS = ['', 'k', 'M', 'T']
26
+
27
+ const i = 0 === count ? count : Math.floor(Math.log(count) / Math.log(1000))
28
+ let result = parseFloat((count / Math.pow(1000, i)).toFixed(2))
29
+ result += `${COUNT_ABBRS[i]}`
30
+ return result
31
+ }
32
+
33
+ leaderboard.map((key) => {
34
+ let user = g.members.cache.get(key.user)
35
+ if (key.xp === 0) return
36
+
37
+ let pos =
38
+ leaderboard.findIndex(
39
+ (i) => i.guild === key.guild && i.user === key.user
40
+ ) + 1
41
+
42
+ if (limit) {
43
+ if (pos > Number(limit)) return
44
+ }
45
+
46
+ let shortXP = shortener(key.xp)
47
+
48
+ if (!user) return
49
+
50
+ led.push({
51
+ guildID: key.guild,
52
+ userID: key.user,
53
+ xp: key.xp,
54
+ shortxp: shortXP,
55
+ level: key.level,
56
+ position: pos,
57
+ username: user.user.username,
58
+ tag: user.user.tag
59
+ })
60
+ })
61
+
62
+ led = led.filter(
63
+ (thing, index, self) =>
64
+ index === self.findIndex((t) => t.userID === thing.userID)
65
+ )
66
+
67
+ return led
68
+ }
69
+
70
+ module.exports = leaderboard
package/src/lvlRole.js CHANGED
@@ -1,54 +1,54 @@
1
- let Discord = require('discord.js')
2
- const levels = require('../src/models/level.js')
3
- const lrole = require('../src/models/lvlrole.js')
4
-
5
- /**
6
- * @param {Discord.Message} message
7
- * @param {string} userID
8
- * @param {string} guildID
9
- */
10
-
11
- async function lvlRole(message, userID, guildID) {
12
- let e = await lrole.find({
13
- gid: guildID
14
- })
15
-
16
- if (!e) return
17
-
18
- let user = await levels.findOne({
19
- user: userID,
20
- guild: guildID
21
- })
22
- if (!user) {
23
- const newuser = new levels({
24
- user: userID,
25
- guild: guildID
26
- })
27
-
28
- await newuser
29
- .save()
30
- .catch((e) => console.log(`[XP] Failed to save new user to database`))
31
- }
32
-
33
- e.forEach((ee) => {
34
- ee = ee.lvlrole
35
-
36
- ee.forEach((xd) => {
37
- if (user && user.level >= Number(xd.lvl)) {
38
- let u = message.guild.members.cache.get(userID)
39
-
40
- let real = message.guild.roles.cache.find((r) => r.id === xd.role)
41
- if (!real) return
42
- else {
43
- u.roles.add(real).catch((err) => {
44
- message.channel.send(
45
- '[XP] ERROR: Role is higher than me. `MISSING_PERMISSIONS`'
46
- )
47
- })
48
- }
49
- }
50
- })
51
- })
52
- }
53
-
54
- module.exports = lvlRole
1
+ let Discord = require('discord.js')
2
+ const levels = require('../src/models/level.js')
3
+ const lrole = require('../src/models/lvlrole.js')
4
+
5
+ /**
6
+ * @param {Discord.Message} message
7
+ * @param {string} userID
8
+ * @param {string} guildID
9
+ */
10
+
11
+ async function lvlRole(message, userID, guildID) {
12
+ let e = await lrole.find({
13
+ gid: guildID
14
+ })
15
+
16
+ if (!e) return
17
+
18
+ let user = await levels.findOne({
19
+ user: userID,
20
+ guild: guildID
21
+ })
22
+ if (!user) {
23
+ const newuser = new levels({
24
+ user: userID,
25
+ guild: guildID
26
+ })
27
+
28
+ await newuser
29
+ .save()
30
+ .catch((e) => console.log(`[XP] Failed to save new user to database`))
31
+ }
32
+
33
+ e.forEach((ee) => {
34
+ ee = ee.lvlrole
35
+
36
+ ee.forEach((xd) => {
37
+ if (user && user.level >= Number(xd.lvl)) {
38
+ let u = message.guild.members.cache.get(userID)
39
+
40
+ let real = message.guild.roles.cache.find((r) => r.id === xd.role)
41
+ if (!real) return
42
+ else {
43
+ u.roles.add(real).catch((err) => {
44
+ message.channel.send(
45
+ '[XP] ERROR: Role is higher than me. `MISSING_PERMISSIONS`'
46
+ )
47
+ })
48
+ }
49
+ }
50
+ })
51
+ })
52
+ }
53
+
54
+ module.exports = lvlRole
@@ -1,10 +1,10 @@
1
- const mongoose = require('mongoose')
2
-
3
- const Levelz = new mongoose.Schema({
4
- user: { type: String, unique: true },
5
- guild: { type: String },
6
- xp: { type: Number, default: 0 },
7
- level: { type: Number, default: 0 }
8
- })
9
-
10
- module.exports = mongoose.model('Simply-XP', Levelz)
1
+ const mongoose = require('mongoose')
2
+
3
+ const Levelz = new mongoose.Schema({
4
+ user: { type: String, unique: true },
5
+ guild: { type: String },
6
+ xp: { type: Number, default: 0 },
7
+ level: { type: Number, default: 0 }
8
+ })
9
+
10
+ module.exports = mongoose.model('Simply-XP', Levelz)
@@ -1,8 +1,8 @@
1
- const mongoose = require('mongoose')
2
-
3
- const rol = new mongoose.Schema({
4
- gid: { type: String },
5
- lvlrole: { type: Array }
6
- })
7
-
8
- module.exports = mongoose.model('Simply-XP-LevelRole', rol)
1
+ const mongoose = require('mongoose')
2
+
3
+ const rol = new mongoose.Schema({
4
+ gid: { type: String },
5
+ lvlrole: { type: Array }
6
+ })
7
+
8
+ module.exports = mongoose.model('Simply-XP-LevelRole', rol)
package/src/rank.js CHANGED
@@ -49,12 +49,7 @@ async function rank(message, userID, guildID, options = []) {
49
49
  try {
50
50
  const Canvas = require('canvas')
51
51
  const { registerFont } = require('canvas')
52
- registerFont(join(__dirname, 'Fonts', 'Poppins-SemiBold.ttf'), {
53
- family: 'Poppins-Regular'
54
- })
55
- registerFont(join(__dirname, 'Fonts', 'Poppins-SemiBold.ttf'), {
56
- family: 'Poppins-Bold'
57
- })
52
+ registerFont(join(__dirname, 'Fonts', 'Baloo-Regular.ttf'), { family: 'Sans Serif' })
58
53
 
59
54
  function shortener(count) {
60
55
  const COUNT_ABBRS = ['', 'k', 'M', 'T']
@@ -88,7 +83,7 @@ async function rank(message, userID, guildID, options = []) {
88
83
  let BackgroundRadius = '20',
89
84
  BackGroundImg =
90
85
  options.background ||
91
- 'https://media.discordapp.net/attachments/868506665102762034/876750913866461185/photo-1579546929518-9e396f3cc809.png?width=640&height=427',
86
+ 'https://pinebanana.files.wordpress.com/2011/04/rainbow.jpg',
92
87
  AttachmentName = 'rank.png',
93
88
  Username = noSymbols(name),
94
89
  AvatarRoundRadius = '50',
@@ -98,7 +93,7 @@ async function rank(message, userID, guildID, options = []) {
98
93
  LevelBarFill = options.lvlbar || '#ffffff',
99
94
  LevelBarBackground = options.lvlbarBg || '#ffffff',
100
95
  Rank = options.rank,
101
- TextEXP = shortener(options.currentXP) + ' xp',
96
+ TextEXP = shortener(options.currentXP) + ' XP',
102
97
  LvlText = `Level ${shortener(options.level)}`,
103
98
  BarRadius = '20',
104
99
  TextXpNeded = '{current}/{needed}',
@@ -176,7 +171,7 @@ async function rank(message, userID, guildID, options = []) {
176
171
  ctx.fillRect(40 + 30, 30 + 180 + 30 + 50 + 30, 180, 50)
177
172
  ctx.globalAlpha = 1
178
173
  ctx.fillStyle = '#ffffff'
179
- ctx.font = '32px "Poppins-Bold"'
174
+ ctx.font = '32px "Sans Serif"'
180
175
  ctx.textAlign = 'center'
181
176
  ctx.fillText(TextEXP, 40 + 30 + 180 / 2, 30 + 180 + 30 + 30 + 50 + 38)
182
177
  ctx.restore()
@@ -191,7 +186,7 @@ async function rank(message, userID, guildID, options = []) {
191
186
  ctx.fillRect(40 + 30, 30 + 180 + 30, 180, 50, 50)
192
187
  ctx.globalAlpha = 1
193
188
  ctx.fillStyle = '#ffffff'
194
- ctx.font = '32px "Poppins-Bold"'
189
+ ctx.font = '32px "Sans Serif"'
195
190
  ctx.textAlign = 'center'
196
191
  ctx.fillText(LvlText, 40 + 30 + 180 / 2, 30 + 180 + 30 + 38)
197
192
  ctx.restore()
@@ -203,7 +198,7 @@ async function rank(message, userID, guildID, options = []) {
203
198
  ctx.shadowBlur = 15
204
199
  ctx.shadowOffsetX = 1
205
200
  ctx.shadowOffsetY = 1
206
- ctx.font = '39px "Poppins-Bold"'
201
+ ctx.font = '39px "Sans Serif"'
207
202
  ctx.fillText(Username, 390, 80)
208
203
  ctx.restore()
209
204
 
@@ -214,7 +209,7 @@ async function rank(message, userID, guildID, options = []) {
214
209
  ctx.shadowBlur = 15
215
210
  ctx.shadowOffsetX = 1
216
211
  ctx.shadowOffsetY = 1
217
- ctx.font = '55px "Poppins-Bold"'
212
+ ctx.font = '55px "Sans Serif"'
218
213
  ctx.fillText('#' + Rank, canvas.width - 50 - 5, 80)
219
214
  ctx.restore()
220
215
 
@@ -224,7 +219,7 @@ async function rank(message, userID, guildID, options = []) {
224
219
  ctx.stroke()
225
220
  ctx.clip()
226
221
  ctx.fillStyle = '#ffffff'
227
- ctx.font = `${fsiz} "Poppins-Bold"`
222
+ ctx.font = `${fsiz} "Sans Serif"`
228
223
  ctx.textAlign = 'center'
229
224
  ctx.fillText(message.guild.name, 60 + 660, 355)
230
225
  ctx.globalAlpha = '0.2'
@@ -258,8 +253,8 @@ async function rank(message, userID, guildID, options = []) {
258
253
  ctx.textAlign = 'left'
259
254
  ctx.fillStyle = '#ffffff'
260
255
  ctx.globalAlpha = '0.8'
261
- ctx.font = '30px "Poppins-Bold"'
262
- ctx.fillText('Next Level: ' + shortener(NeededXP) + ' xp', 390, 230)
256
+ ctx.font = '30px "Sans Serif"'
257
+ ctx.fillText('Next Level: ' + shortener(NeededXP) + ' XP', 390, 230)
263
258
  ctx.restore()
264
259
 
265
260
  const latestXP = Number(CurrentXP) - Number(NeededXP)
@@ -269,7 +264,7 @@ async function rank(message, userID, guildID, options = []) {
269
264
  ctx.textAlign = 'center'
270
265
  ctx.fillStyle = '#474747'
271
266
  ctx.globalAlpha = 1
272
- ctx.font = '30px "Poppins-Bold"'
267
+ ctx.font = '30px "Sans Serif"'
273
268
  ctx.fillText(textXPEdited, 730, 180)
274
269
 
275
270
  const attachment = new Discord.MessageAttachment(
package/src/reset.js CHANGED
@@ -1,28 +1,28 @@
1
- const levels = require('../src/models/level.js')
2
-
3
- /**
4
- * @param {string} userID
5
- * @param {string} guildID
6
- */
7
-
8
- async function reset(userID, guildID) {
9
- if (!userID) throw new Error('[XP] User ID was not provided.')
10
-
11
- if (!guildID) throw new Error('[XP] User ID was not provided.')
12
-
13
- let uzer = await levels.findOne({ user: userID, guild: guildID })
14
-
15
- uzer = new levels({
16
- user: userID,
17
- guild: guildID,
18
- xp: 0,
19
- lvl: 0
20
- })
21
- await uzer
22
- .save()
23
- .catch((e) => console.log(`[XP] Failed to save new use to database`))
24
-
25
- return true
26
- }
27
-
28
- module.exports = reset
1
+ const levels = require('../src/models/level.js')
2
+
3
+ /**
4
+ * @param {string} userID
5
+ * @param {string} guildID
6
+ */
7
+
8
+ async function reset(userID, guildID) {
9
+ if (!userID) throw new Error('[XP] User ID was not provided.')
10
+
11
+ if (!guildID) throw new Error('[XP] User ID was not provided.')
12
+
13
+ let uzer = await levels.findOne({ user: userID, guild: guildID })
14
+
15
+ uzer = new levels({
16
+ user: userID,
17
+ guild: guildID,
18
+ xp: 0,
19
+ lvl: 0
20
+ })
21
+ await uzer
22
+ .save()
23
+ .catch((e) => console.log(`[XP] Failed to save new use to database`))
24
+
25
+ return true
26
+ }
27
+
28
+ module.exports = reset