@elara-services/leveling
Version:
A package for XP/Leveling on Discord.
56 lines (55 loc) • 2.16 kB
TypeScript
/// <reference types="node" />
import { Client, Message, TextBasedChannel, VoiceState, type GuildChannel, type GuildMember, type PartialGuildMember } from "discord.js";
import { EventEmitter } from "events";
import type { Options, Settings, UserCache, Users } from "./interfaces";
import { Database } from "./services";
import { API } from "./services/api";
export type * from "./interfaces";
export type * from "./services";
export type * from "./services/api";
export * from "./utils";
export declare class Leveling extends Database {
#private;
client: Client;
/**
* The manager to configure the leveling data ()
*/
api: API;
constructor(client: Client, mongodbURI: string, dbName?: string);
private webhook;
/**
* Emits when the cooldown is added for the user
*/
onCooldown(listener: (message: Message<true>, cooldown: UserCache) => unknown): EventEmitter;
/**
* Emits when someone levels up in a server.
*/
onLevelUp(listener: (member: GuildMember, profile: Users & {
_id: string;
}, server: Settings & {
_id: string;
}, level: number, channel: GuildChannel | null) => unknown): EventEmitter;
private send;
/**
* Emits when someone gains xp in a server.
*/
onXP(listener: (member: GuildMember, profile: Users & {
_id: string;
}, server: Settings & {
_id: string;
}, xp: number) => unknown): EventEmitter;
/**
* Use this to start listening for events and automatically handle xp/leveling
*/
start(): Promise<true | undefined>;
voiceStateUpdate(old: VoiceState, voice: VoiceState): Promise<void>;
guildMemberRemove(m: GuildMember | PartialGuildMember): Promise<void>;
messageCreate(message: Message): Promise<null | undefined>;
sendOptions(user: Users, db: Settings, member: GuildMember, options: Options, channel: TextBasedChannel): Promise<void | Message<true> | import("discord.js").APIMessage | null>;
getOptions(options: Options, user: Users, member: GuildMember): Promise<object>;
/**
* This is only for internal use!
*
*/
private handleLevelups;
}