diff options
-rw-r--r-- | src/arguments/abbreviatedNumber.ts | 2 | ||||
-rw-r--r-- | src/commands/info/userInfo.ts | 4 | ||||
-rw-r--r-- | src/commands/leveling/level.ts | 1 | ||||
-rw-r--r-- | src/commands/leveling/setLevel.ts | 8 | ||||
-rw-r--r-- | src/commands/leveling/setXp.ts | 6 | ||||
-rw-r--r-- | src/lib/extensions/discord.js/BushClientEvents.d.ts | 1 | ||||
-rw-r--r-- | src/listeners/message/autoThread.ts | 2 | ||||
-rw-r--r-- | src/listeners/message/level.ts | 3 | ||||
-rw-r--r-- | yarn.lock | 22 |
9 files changed, 34 insertions, 15 deletions
diff --git a/src/arguments/abbreviatedNumber.ts b/src/arguments/abbreviatedNumber.ts index 99f6df7..e6791e6 100644 --- a/src/arguments/abbreviatedNumber.ts +++ b/src/arguments/abbreviatedNumber.ts @@ -5,7 +5,7 @@ export const abbreviatedNumberTypeCaster: BushArgumentTypeCaster = (_, phrase): if (!phrase) return null; const num = numeral(phrase?.toLowerCase()).value(); - if (!num || isNaN(num)) return null; + if (num === undefined || num === null || isNaN(num)) return null; return num; }; diff --git a/src/commands/info/userInfo.ts b/src/commands/info/userInfo.ts index 9450e96..745dcf0 100644 --- a/src/commands/info/userInfo.ts +++ b/src/commands/info/userInfo.ts @@ -50,6 +50,8 @@ export default class UserInfoCommand extends BushCommand { const emojis = []; const superUsers = client.cache.global.superUsers; + await user.fetch(true); // gets banner info and accent color + const userEmbed: MessageEmbed = new MessageEmbed() .setTitle(user.tag) .setThumbnail( @@ -97,7 +99,7 @@ export default class UserInfoCommand extends BushCommand { `**Created: **${createdAt} (${createdAtDelta} ago)` ]; if (user.accentColor !== null) generalInfo.push(`**Accent Color:** ${user.hexAccentColor}`); - if (user.banner) generalInfo.push(`**Banner**: [link](${user.bannerURL({ dynamic: true, format: 'png' })})`); + if (user.banner) generalInfo.push(`**Banner**: [link](${user.bannerURL({ dynamic: true, format: 'png', size: 4096 })})`); const pronouns = await util.getPronounsOf(user); if (pronouns) generalInfo.push(`**Pronouns:** ${pronouns}`); diff --git a/src/commands/leveling/level.ts b/src/commands/leveling/level.ts index 223a590..f14c005 100644 --- a/src/commands/leveling/level.ts +++ b/src/commands/leveling/level.ts @@ -60,6 +60,7 @@ export default class LevelCommand extends BushCommand { const currentLevelXP = Level.convertLevelToXp(userLevel); const currentLevelXPProgress = userLevelRow.xp - currentLevelXP; const xpForNextLevel = Level.convertLevelToXp(userLevelRow.level + 1) - currentLevelXP; + await user.fetch(true); // get accent color const white = '#FFFFFF', gray = '#23272A', highlight = user.hexAccentColor ?? '#5865F2'; diff --git a/src/commands/leveling/setLevel.ts b/src/commands/leveling/setLevel.ts index f312356..2cd9099 100644 --- a/src/commands/leveling/setLevel.ts +++ b/src/commands/leveling/setLevel.ts @@ -59,6 +59,11 @@ export default class SetLevelCommand extends BushCommand { return await message.util.reply(`${util.emojis.error} This command is Bestower proof.`); if (!user.id) throw new Error('user.id is null'); + if (isNaN(level)) + return await message.util.reply(`${util.emojis.error} Provide a valid number to set the user's level to.`); + if (level > 6553 || level < 0) + return await message.util.reply(`${util.emojis.error} You cannot set a level higher than \`6553\`.`); + const [levelEntry] = await Level.findOrBuild({ where: { user: user.id, @@ -66,7 +71,8 @@ export default class SetLevelCommand extends BushCommand { }, defaults: { user: user.id, - guild: message.guild.id + guild: message.guild.id, + xp: 0 } }); await levelEntry.update({ xp: Level.convertLevelToXp(level), user: user.id, guild: message.guild.id }); diff --git a/src/commands/leveling/setXp.ts b/src/commands/leveling/setXp.ts index fdfd74f..8be3a10 100644 --- a/src/commands/leveling/setXp.ts +++ b/src/commands/leveling/setXp.ts @@ -62,6 +62,12 @@ export default class SetXpCommand extends BushCommand { return await message.util.reply(`${util.emojis.error} This command is Bestower proof.`); if (!user.id) throw new Error('user.id is null'); + if (isNaN(xp)) return await message.util.reply(`${util.emojis.error} Provide a valid number.`); + if (xp > 2147483647 || xp < 0) + return await message.util.reply( + `${util.emojis.error} Provide an positive integer under \`2147483647\` to set the user's xp to.` + ); + const [levelEntry] = await Level.findOrBuild({ where: { user: user.id, diff --git a/src/lib/extensions/discord.js/BushClientEvents.d.ts b/src/lib/extensions/discord.js/BushClientEvents.d.ts index 0406015..96dc4c5 100644 --- a/src/lib/extensions/discord.js/BushClientEvents.d.ts +++ b/src/lib/extensions/discord.js/BushClientEvents.d.ts @@ -230,6 +230,7 @@ export interface BushClientEvents extends ClientEvents { caseID: string, dmSuccess: boolean ]; + bushLevelUp: []; } type Setting = diff --git a/src/listeners/message/autoThread.ts b/src/listeners/message/autoThread.ts index ec8bfcb..04f6bcf 100644 --- a/src/listeners/message/autoThread.ts +++ b/src/listeners/message/autoThread.ts @@ -6,7 +6,7 @@ import { BushClientEvents } from '../../lib/extensions/discord.js/BushClientEven export default class autoThreadListener extends BushListener { public constructor() { super('autoThread', { - emitter: 'client', + emitter: 'commandHandler', event: 'messageInvalid', category: 'message' }); diff --git a/src/listeners/message/level.ts b/src/listeners/message/level.ts index 7004d52..aff8190 100644 --- a/src/listeners/message/level.ts +++ b/src/listeners/message/level.ts @@ -28,12 +28,15 @@ export default class LevelListener extends BushListener { xp: 0 } }); + const previousLevel = Level.convertXpToLevel(user.xp); const xpToGive = Level.genRandomizedXp(); user.xp = user.xp + xpToGive; const success = await user.save().catch((e) => { void util.handleError('level', e); return false; }); + const newLevel = Level.convertXpToLevel(user.xp); + if (previousLevel < newLevel) client.emit('bushLevelUp'); if (success) void client.logger.verbose(`level`, `Gave <<${xpToGive}>> XP to <<${message.author.tag}>> in <<${message.guild}>>.`); this.#levelCooldowns.add(`${message.guild.id}-${message.author.id}`); @@ -319,11 +319,11 @@ __metadata: linkType: hard "@types/keyv@npm:*": - version: 3.1.2 - resolution: "@types/keyv@npm:3.1.2" + version: 3.1.3 + resolution: "@types/keyv@npm:3.1.3" dependencies: "@types/node": "*" - checksum: 769e462ae9d663f1c2b65f07f621d52cfd02b8289357ac9f8af353243a7356a54f1568d4cbef13b90de367aaeb768446b324b792b6c5ff958d0b34ed68b75df2 + checksum: b5f8aa592cc21c16d99e69aec0976f12b893b055e4456d90148a610a6b6088e297b2ba5f38f8c8280cef006cfd8f9ec99e069905020882619dc5fc8aa46f5f27 languageName: node linkType: hard @@ -366,16 +366,16 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 16.7.10 - resolution: "@types/node@npm:16.7.10" - checksum: 0518803caa1a14f4070e770a280eda1c4b4581a425cbda481cdd54b1f34a7ea497ff067fd23b90e3d4f4fdcfba15c1316182875e9cf9f5b2e880de1e595de053 + version: 16.7.13 + resolution: "@types/node@npm:16.7.13" + checksum: 15dc28aa44674d3f49dcca4a6523b6ab1ef9bbea5c659057bec13153e1873718d6b62ab0ea57a3d57ee37f0f1136ae30e3ea503df43b0afa3ae437c8750be7f5 languageName: node linkType: hard "@types/node@npm:^14.14.22": - version: 14.17.14 - resolution: "@types/node@npm:14.17.14" - checksum: 66ed675a324fdddc4f693f1b240c0d81a9f53e1c68f7de8b84d02d65c0b447f9fa30d318481d04e1502f68dd37091b5cadc59633b57246582ad25e3fa835cd7d + version: 14.17.15 + resolution: "@types/node@npm:14.17.15" + checksum: e0840304db236027e822ef1e149de433afd20d2553699cdc2ce651d107a77646c6eaaeaec8c348eabdc05169440dbc2cf069791bef65ca4b6e5ee4412e69c898 languageName: node linkType: hard @@ -1128,12 +1128,12 @@ discord-akairo-message-util@NotEnoughUpdates/discord-akairo-message-util: discord-akairo@NotEnoughUpdates/discord-akairo: version: 8.2.2 - resolution: "discord-akairo@https://github.com/NotEnoughUpdates/discord-akairo.git#commit=1ad1f9c476927d5687de93b82bfbd342f4c77b0e" + resolution: "discord-akairo@https://github.com/NotEnoughUpdates/discord-akairo.git#commit=535a4797ed196c2c3a39b470562aa4ca3f49af61" dependencies: discord-akairo-message-util: NotEnoughUpdates/discord-akairo-message-util lodash: ^4.17.21 source-map-support: ^0.5.19 - checksum: 4e054c55edec04c1581f503d85111c8218b664b1722eab3aa6d7a944714de0c52e8273d739e5e16cfc6aedec113adb33aacbce0492fa161a23c5f475dd82df98 + checksum: 5701a9822ad3aae85c095795d9a261a8b981a1f57400e8a30d8a339898c67c8197149dfe8f0165b8149d1edc06fad458176988a8d587f275274d2e1dbc5d248c languageName: node linkType: hard |