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
TypeScript
/**
* 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