UNPKG

@aituber-onair/kizuna

Version:

A sophisticated bond system (絆 - Kizuna) for managing relationships between users and AI characters in AITuber OnAir.

131 lines (130 loc) 2.98 kB
/** * UserManager - User management class * * Manages creation, retrieval, and updates of Kizuna users */ import type { KizunaUser, PointContext, Achievement, UserType, KizunaConfig } from "./types"; /** * User management class */ export declare class UserManager { private users; private config; constructor(config: KizunaConfig); /** * Get or create user */ getOrCreateUser(context: PointContext): KizunaUser; /** * Get user */ getUser(userId: string): KizunaUser | null; /** * Get all users */ getAllUsers(): KizunaUser[]; /** * Get user count */ getUserCount(): number; /** * Get user count by platform */ getUserCountByPlatform(): Record<UserType, number>; /** * Get active users (users who accessed within specified period) */ getActiveUsers(hours?: number): KizunaUser[]; /** * Get top users (by points) */ getTopUsers(limit?: number): KizunaUser[]; /** * Delete user */ deleteUser(userId: string): boolean; /** * Reset user points */ resetUserPoints(userId: string): boolean; /** * Grant achievement to user */ grantAchievement(userId: string, achievement: Achievement): boolean; /** * Add user interaction record */ addInteractionRecord(userId: string, context: PointContext, pointsEarned: number, appliedRules: string[]): void; /** * Export users in JSON format */ exportUsers(): string; /** * Import users from JSON format */ importUsers(jsonData: string): { success: boolean; imported: number; errors: string[]; }; /** * Get user data as Map format (for internal processing) */ getUsersAsMap(): Map<string, KizunaUser>; /** * Set user data from Map format (for internal processing) */ setUsersFromMap(users: Map<string, KizunaUser>): void; /** * Generate user ID from context */ private generateUserIdFromContext; /** * Extract username from context */ private extractUserNameFromContext; /** * Create new user */ private createUser; /** * Determine user type */ private determineUserType; /** * Create initial statistics */ private createInitialStats; /** * Update user activity */ private updateUserActivity; /** * Grant owner-specific achievements */ private grantOwnerAchievements; /** * Calculate level */ private calculateLevel; /** * Generate interaction ID */ private generateInteractionId; /** * Check if same day */ private isSameDay; /** * Check if consecutive day */ private isConsecutiveDay; /** * Validate and normalize user data */ private validateAndNormalizeUser; /** * Log output */ private log; }