doki/src/main/java/net/hypr/doki/utils/LevellingUtils.java

35 lines
1.2 KiB
Java

package net.hypr.doki.utils;
import org.slf4j.Logger;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Random;
public class LevellingUtils {
public static void incrementXp(Logger logger, UserRecord userRecord) throws SQLException {
Random random = new Random();
// Random increment between 15 and 25
int xpInc = (random.nextInt(10) + 16) * 3;
int xpNew = userRecord.xp + xpInc;
int totalXp = userRecord.xp + xpInc;
int levelNew = userRecord.level;
if (xpNew >= ((userRecord.level + 1) * 5) * 40) {
levelNew ++;
xpNew = 0;
}
DBUtils.updateUserRecord(
userRecord.user_id,
userRecord.server_id,
Timestamp.valueOf(LocalDateTime.now()),
xpNew,
totalXp,
levelNew
);
logger.info("Incremented {}'s XP in {} ({} -> {})", userRecord.user_id, userRecord.server_id, userRecord.xp, xpNew);
if (levelNew > userRecord.level) {
logger.info("Incremented {}'s level in {} ({} -> {})", userRecord.user_id, userRecord.server_id, userRecord.level, levelNew);
}
}
}