discord-xp
Version:
A lightweight and easy to use economy framework for discord bots, uses MongoDB.
45 lines (40 loc) • 1.84 kB
TypeScript
// Type definitions for discord-xp v1.1.8
// Project: https://github.com/MrAugu/discord-xp
// Definitions by: Nico Finkernagel <https://github.com/gruselhaus/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import { Client } from "discord.js";
type User = {
userID: string;
guildID: string;
xp: number;
level: number;
lastUpdated: Date;
cleanXp: number;
cleanNextLevelXp: number;
};
type LeaderboardUser = {
guildID: string;
userID: string;
xp: number;
level: number;
position: number;
username: String | null;
discriminator: String | null;
};
declare module "discord-xp" {
export default class DiscordXp {
static async setURL(dbURL: string): Promise<typeof import("mongoose")>;
static async createUser(userId: string, guildId: string): Promise<User>;
static async deleteUser(userId: string, guildId: string): Promise<User>;
static async appendXp(userId: string, guildId: string, xp: number): Promise<boolean>;
static async appendLevel(userId: string, guildId: string, levels: number): Promise<User>;
static async setXp(userId: string, guildId: string, xp: number): Promise<User>;
static async setLevel(userId: string, guildId: string, level: number): Promise<User>;
static async fetch(userId: string, guildId: string, fetchPosition = false): Promise<User>;
static async subtractXp(userId: string, guildId: string, xp: number): Promise<User>;
static async subtractLevel(userId: string, guildId: string, level: number): Promise<User>;
static async fetchLeaderboard(guildId: String, limit: number): Promise<User[] | []>;
static async computeLeaderboard(client: Client, leaderboard: User[], fetchUsers = false): Promise<LeaderboardUser[] | []>;
static xpFor(targetLevel: number): number;
}
}