fix(bot): added better type checking

This commit is contained in:
ahmadk953 2025-06-15 22:02:57 -04:00
parent 3ffd0d2b80
commit 01c1bbc21d
No known key found for this signature in database
GPG key ID: 31D488058614185C
2 changed files with 28 additions and 5 deletions

View file

@ -86,8 +86,8 @@ export async function addXpToUser(
const cacheKey = `level-${discordId}`; const cacheKey = `level-${discordId}`;
const userData = await getUserLevel(discordId); const userData = await getUserLevel(discordId);
const currentLevel = userData.level; const currentLevel = userData.level;
const currentXp = Number(userData.xp); const currentXp = userData.xp;
const xpToAdd = Number(amount); const xpToAdd = amount;
userData.xp = currentXp + xpToAdd; userData.xp = currentXp + xpToAdd;

View file

@ -16,9 +16,32 @@ import { processMessageAchievements } from './achievementManager.js';
const config = loadConfig(); const config = loadConfig();
const XP_COOLDOWN = config.leveling.xpCooldown || 60 * 1000; let minXpOffered = config.leveling.minXpAwarded ?? 5;
const MIN_XP = config.leveling.minXpAwarded || 5; let maxXpOffered = config.leveling.maxXpAwarded ?? 15;
const MAX_XP = config.leveling.maxXpAwarded || 15;
if (typeof minXpOffered === 'string') {
minXpOffered = parseInt(minXpOffered, 10);
}
if (typeof maxXpOffered === 'string') {
maxXpOffered = parseInt(maxXpOffered, 10);
}
if (minXpOffered > maxXpOffered) {
throw new Error(
'Minimum XP awarded must be less than or equal to maximum XP awarded.',
);
}
const MIN_XP = minXpOffered;
const MAX_XP = maxXpOffered;
let xpCooldownValue = config.leveling.xpCooldown ?? 60;
if (typeof xpCooldownValue === 'string') {
xpCooldownValue = parseInt(xpCooldownValue, 10);
}
if (isNaN(xpCooldownValue)) {
throw new Error('XP cooldown must be a number.');
}
const XP_COOLDOWN = xpCooldownValue * 1000;
const __dirname = path.resolve(); const __dirname = path.resolve();