UNPKG

maplestorysea-mcp-server

Version:

NEXON MapleStory SEA API MCP Server for Claude Desktop - Complete character info, union details, guild data, rankings optimized for SEA servers

185 lines 5.27 kB
/** * Server status and game information utilities * Optimized for MapleStory SEA region with proper timezone and date formatting */ /** * Server status types */ export declare enum ServerStatus { ONLINE = "online", OFFLINE = "offline", MAINTENANCE = "maintenance", UNSTABLE = "unstable", UNKNOWN = "unknown" } /** * SEA timezone offset (UTC+8) */ export declare const SEA_TIMEZONE_OFFSET: number; /** * SEA timezone identifier */ export declare const SEA_TIMEZONE = "Asia/Singapore"; /** * Convert UTC date to SEA timezone using proper timezone handling */ export declare function convertToSEATime(date: Date | string): Date; /** * Get current time in SEA timezone */ export declare function getCurrentSEATime(): Date; /** * Format date for SEA region display in DD/MM/YYYY format */ export declare function formatSEADate(date: Date | string, includeTime?: boolean): string; /** * Format time for SEA region display in 24-hour format */ export declare function formatSEATime(date: Date | string): string; /** * Get current SEA date in DD/MM/YYYY format */ export declare function getCurrentSEADate(): string; /** * Get current SEA time string in HH:MM:SS format */ export declare function getCurrentSEATimeString(): string; /** * Convert date to API format (YYYY-MM-DD) */ export declare function formatDateForAPI(date: Date | string): string; /** * Parse SEA date string (DD/MM/YYYY) to Date object */ export declare function parseSEADate(dateString: string): Date; /** * Check if date is today in SEA timezone */ export declare function isTodayInSEA(date: Date | string): boolean; /** * Get yesterday's date in SEA timezone */ export declare function getYesterdaySEA(): string; /** * Get tomorrow's date in SEA timezone */ export declare function getTomorrowSEA(): string; /** * Extract maintenance time from content (SEA API does not support notices) * This function is kept for backward compatibility but always returns null */ export declare function extractMaintenanceTime(_content: string): { startTime?: Date; endTime?: Date; duration?: string; } | null; /** * Check if server is likely in maintenance based on time patterns * Updated for SEA server maintenance schedules */ export declare function isMaintenanceTime(): boolean; /** * Get next daily reset time in SEA timezone (00:00 SGT) */ export declare function getNextDailyReset(): Date; /** * Get time until next daily reset in SEA timezone */ export declare function getTimeUntilDailyReset(): { hours: number; minutes: number; seconds: number; totalMs: number; }; /** * Get next weekly reset time (Wednesday 00:00 SGT) */ export declare function getNextWeeklyReset(): Date; /** * Determine server status based on various factors */ export declare function determineServerStatus(apiAvailable: boolean, maintenanceNotices: any[], errorRate?: number): ServerStatus; /** * Parse world population level from ranking data */ /** * Check if it's currently during data update time (08:00-09:30 SGT) */ export declare function isDuringDataUpdate(): boolean; /** * Get next data update time */ export declare function getNextDataUpdate(): Date; export declare function estimateWorldPopulation(rankingData: any): 'high' | 'medium' | 'low' | 'unknown'; /** * Format content for display (SEA API does not support notices) * This function is kept for backward compatibility */ /** * Format number for SEA region display (using English locale) */ export declare function formatSEANumber(num: number): string; /** * Format currency for SEA region (Mesos) */ export declare function formatSEAMesos(amount: number): string; /** * Format percentage for SEA region */ export declare function formatSEAPercentage(value: number, decimals?: number): string; export declare function formatNoticeContent(content: string, maxLength?: number): string; /** * SEA-specific event and reset schedules */ export declare const SEA_SCHEDULES: { readonly DAILY_RESET: { readonly hour: 0; readonly minute: 0; }; readonly WEEKLY_RESET: { readonly day: 3; readonly hour: 0; readonly minute: 0; }; readonly MAINTENANCE_WINDOWS: { readonly WEEKLY: { readonly day: 3; readonly startHour: 8; readonly endHour: 12; }; readonly EMERGENCY: { readonly startHour: 1; readonly endHour: 6; }; readonly PATCH: { readonly day: 2; readonly startHour: 23; readonly endHour: 3; }; }; readonly DATA_UPDATES: { readonly CHARACTER: { readonly hour: 8; readonly minute: 0; }; readonly RANKINGS: { readonly hour: 8; readonly minute: 30; }; readonly UNION: { readonly hour: 9; readonly minute: 0; }; }; }; /** * Generate cache keys for server-related data */ export declare const ServerCacheKeys: { serverStatus: (worldName?: string) => string; events: () => string; maintenance: () => string; dailyReset: () => string; weeklyReset: () => string; }; //# sourceMappingURL=server-utils.d.ts.map