UNPKG

@elara-services/leveling

Version:

A package for XP/Leveling on Discord.

56 lines (55 loc) 2.16 kB
/// <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; }