aboutsummaryrefslogtreecommitdiff
path: root/src/lib/models/instance/Level.ts
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-18 22:42:12 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-18 22:42:12 -0400
commit2356d2c44736fb83021dacb551625852111c8ce6 (patch)
tree10408d22fdd7a358d2f5c5917c3b59e55aa4c19d /src/lib/models/instance/Level.ts
parent8aed6f93f7740c592cbc0e2f9fd3269c05286077 (diff)
downloadtanzanite-2356d2c44736fb83021dacb551625852111c8ce6.tar.gz
tanzanite-2356d2c44736fb83021dacb551625852111c8ce6.tar.bz2
tanzanite-2356d2c44736fb83021dacb551625852111c8ce6.zip
restructure, experimental presence and member automod, fixed bugs probably made some more bugs
Diffstat (limited to 'src/lib/models/instance/Level.ts')
-rw-r--r--src/lib/models/instance/Level.ts70
1 files changed, 0 insertions, 70 deletions
diff --git a/src/lib/models/instance/Level.ts b/src/lib/models/instance/Level.ts
deleted file mode 100644
index d8d16f0..0000000
--- a/src/lib/models/instance/Level.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import { type Snowflake } from 'discord.js';
-import { type Sequelize } from 'sequelize';
-import { BaseModel } from '../BaseModel.js';
-const { DataTypes } = (await import('sequelize')).default;
-
-export interface LevelModel {
- user: Snowflake;
- guild: Snowflake;
- xp: number;
-}
-
-export interface LevelModelCreationAttributes {
- user: Snowflake;
- guild: Snowflake;
- xp?: number;
-}
-
-/**
- * Leveling information for a user in a guild.
- */
-export class Level extends BaseModel<LevelModel, LevelModelCreationAttributes> implements LevelModel {
- /**
- * The user's id.
- */
- public declare user: Snowflake;
-
- /**
- * The guild where the user is gaining xp.
- */
- public declare guild: Snowflake;
-
- /**
- * The user's xp.
- */
- public declare xp: number;
-
- /**
- * The user's level.
- */
- public get level(): number {
- return Level.convertXpToLevel(this.xp);
- }
-
- /**
- * Initializes the model.
- * @param sequelize The sequelize instance.
- */
- public static initModel(sequelize: Sequelize): void {
- Level.init(
- {
- user: { type: DataTypes.STRING, allowNull: false },
- guild: { type: DataTypes.STRING, allowNull: false },
- xp: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0 }
- },
- { sequelize }
- );
- }
-
- public static convertXpToLevel(xp: number): number {
- return Math.floor((-25 + Math.sqrt(625 + 200 * xp)) / 100);
- }
-
- public static convertLevelToXp(level: number): number {
- return 50 * level * level + 25 * level; // 50x² + 25x
- }
-
- public static genRandomizedXp(): number {
- return Math.floor(Math.random() * (40 - 15 + 1)) + 15;
- }
-}