aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arguments/abbreviatedNumber.ts2
-rw-r--r--src/commands/info/userInfo.ts4
-rw-r--r--src/commands/leveling/level.ts1
-rw-r--r--src/commands/leveling/setLevel.ts8
-rw-r--r--src/commands/leveling/setXp.ts6
-rw-r--r--src/lib/extensions/discord.js/BushClientEvents.d.ts1
-rw-r--r--src/listeners/message/autoThread.ts2
-rw-r--r--src/listeners/message/level.ts3
-rw-r--r--yarn.lock22
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}`);
diff --git a/yarn.lock b/yarn.lock
index 918c660..d1aa211 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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