export type AnnouncementLocale = 'en-US' | 'zh-CN' export type AnnouncementChangeType = | 'added' | 'changed' | 'deprecated' | 'removed' | 'fixed' | 'security' export type LocalizedAnnouncementText = Readonly> export type AnnouncementChange = LocalizedAnnouncementText export type LauncherAnnouncement = { readonly id: string readonly version: string readonly publishedAt: string readonly title: LocalizedAnnouncementText readonly changes: Readonly>> readonly notes?: LocalizedAnnouncementText readonly externalUrl?: string } export const ANNOUNCEMENT_CHANGE_TYPES: readonly AnnouncementChangeType[] = [ 'added', 'changed', 'deprecated', 'removed', 'fixed', 'security', ] export const launcherAnnouncements: readonly LauncherAnnouncement[] = [ { id: 'launcher-1.0.0-beta15', version: '1.0.0-beta15', publishedAt: '2026-09-26', title: { 'en-US': 'Starlight Launcher 1.0.0-beta15', 'zh-CN': 'Starlight Launcher 1.0.0-beta15', }, changes: { fixed: [ { 'en-US': 'Fixed the launcher crashing on startup in 1.0.0-beta14 by temporarily reverting the built-in updater. The updater will be re-enabled after the crash is resolved.', 'zh-CN': '修复 1.0.0-beta14 中启动器一打开就崩溃的问题:暂时回退了内置自动更新。待崩溃问题解决后会重新启用。', }, ], }, }, { id: 'launcher-1.0.0-beta14', version: '1.0.0-beta14', publishedAt: '2026-09-26', title: { 'en-US': 'Starlight Launcher 1.0.0-beta14', 'zh-CN': 'Starlight Launcher 1.0.0-beta14', }, changes: { added: [ { 'en-US': 'Enabled the built-in automatic updater, so the launcher can check for and install new versions from the update channel.', 'zh-CN': '启用内置自动更新,启动器现在可以从更新通道检查并安装新版本。', }, ], fixed: [ { 'en-US': 'Fixed the updater manifest download URL and release ordering so update checks succeed.', 'zh-CN': '修复更新清单的下载地址与发布顺序,更新检查现在可以成功。', }, { 'en-US': 'Updated the signing key pair used to sign update packages.', 'zh-CN': '更新了用于签名更新包的密钥对。', }, ], changed: [ { 'en-US': 'Removed upstream release announcements prior to 1.0.0-beta1.', 'zh-CN': '移除了 1.0.0-beta1 之前的上游版本公告。', }, ], }, }, { id: 'launcher-1.0.0-beta13', version: '1.0.0-beta13', publishedAt: '2026-09-25', title: { 'en-US': 'Starlight Launcher 1.0.0-beta13', 'zh-CN': 'Starlight Launcher 1.0.0-beta13', }, changes: { added: [ { 'en-US': 'Installing a modpack now lets you choose the game directory.', 'zh-CN': '一键安装整合包时现在可以选择游戏目录。', }, { 'en-US': 'Approved (hosted) modpack sync and StarLight instance mode were added.', 'zh-CN': '新增获批整合包同步与 StarLight 实例模式。', }, { 'en-US': 'Added the skin editor, improved font settings, and polished the about page (including an easter egg).', 'zh-CN': '新增皮肤编辑器、改进字体设置,并完善关于页(含彩蛋)。', }, ], changed: [ { 'en-US': 'The about page now plays a looping wither victory animation.', 'zh-CN': '关于页现在会播放循环的凋灵胜利动画。', }, ], fixed: [ { 'en-US': 'Fixed several issues when importing an instance from a .minecraft folder (content copy, version isolation, symlinks, loader version detection).', 'zh-CN': '修复从 .minecraft 文件夹导入实例的多项问题(内容复制、版本隔离、符号链接、加载器版本识别等)。', }, { 'en-US': 'Fixed the instance log view stopping updates and overlapping log lines.', 'zh-CN': '修复实例日志窗口停更与日志行重叠的问题。', }, { 'en-US': 'Fixed hosted (SLS) instances leaving external data behind on delete and reusing the same folder on reinstall.', 'zh-CN': '修复 SLS 实例删除残留外部数据、重装共用同一文件夹的问题。', }, { 'en-US': 'Fixed the sidebar player picker not appearing right after signing in to the skin site.', 'zh-CN': '修复登录皮肤站后侧栏玩家选择器未立即显示的问题。', }, { 'en-US': 'Fixed launches getting stuck and the player picker not reappearing when not signed in to the skin site.', 'zh-CN': '修复未登录皮肤站时启动卡住且不再弹出玩家选择的问题。', }, { 'en-US': 'Fixed various skin site login, player list sync, and display issues.', 'zh-CN': '修复皮肤站登录、玩家列表同步及若干显示问题。', }, ], }, }, { id: 'launcher-1.0.0-beta1', version: '1.0.0-beta1', publishedAt: '2026-09-13', title: { 'en-US': 'Starlight Launcher 1.0.0-beta1', 'zh-CN': 'Starlight Launcher 1.0.0-beta1', }, changes: { changed: [ { 'en-US': 'The launcher has been rebranded from Axolotl Launcher to Starlight Launcher, with a new icon and a refreshed about page.', 'zh-CN': '启动器已从 Axolotl Launcher 更名为 Starlight Launcher,并更换了全新图标与关于页。', }, { 'en-US': 'The "Powered by" and copyright notices now correctly credit Axolotl Launcher as the upstream project.', 'zh-CN': '版权与 "Powered by" 署名现在正确标注上游项目 Axolotl Launcher。', }, { 'en-US': 'The developer list on the about page now shows Ax_Tps and Disy920.', 'zh-CN': '关于页的开发组现在显示 Ax_Tps 与 Disy920。', }, ], added: [ { 'en-US': 'A "Starlight" entry was added to the sidebar, which embeds the StarLight skin site.', 'zh-CN': '侧边栏新增「斯达莱特」入口,内嵌 StarLight 皮肤站。', }, { 'en-US': 'A launch progress panel was added to the home sidebar, showing the current launch stage and progress.', 'zh-CN': '主页侧边栏新增启动进度面板,显示当前启动阶段与进度。', }, { 'en-US': 'An easter egg mini-game (star merge) was added, reachable via the secret code "starlight", the Konami code, or a long press on a developer name on the about page.', 'zh-CN': '新增彩蛋小游戏(下界之星合成),可通过暗号 starlight、Konami 秘技或长按关于页开发者名字触发。', }, ], removed: [ { 'en-US': 'The hard-coded Starlight official server was removed from "Pinned servers"; only servers you favorite yourself are shown now.', 'zh-CN': '移除了「固定的服务器」中写死的 Starlight 官方服务器,现在只显示你自己收藏的服务器。', }, { 'en-US': 'The swimming axolotl animation on the about page was replaced with a static nether star.', 'zh-CN': '关于页中游动的美西螈动画已替换为静止的下界之星。', }, ], fixed: [ { 'en-US': 'Minecraft now launches in a maximized window when the maximize option is enabled.', 'zh-CN': '启用最大化选项后,Minecraft 现在会以最大化窗口启动。', }, ], }, }, ] export function getAnnouncementByVersion(version: string | null | undefined) { if (!version) return undefined return launcherAnnouncements.find((announcement) => announcement.version === version) } export function getAnnouncements(): readonly LauncherAnnouncement[] { return launcherAnnouncements } export function getAnnouncementById(id: string) { return launcherAnnouncements.find((announcement) => announcement.id === id) } export function getLocalizedAnnouncementText( text: LocalizedAnnouncementText, locale: string, ): string { return locale === 'zh-CN' ? text['zh-CN'] : text['en-US'] }