diff --git a/.vitepress/config/en.ts b/.vitepress/config/en.ts index aced55f..339f38c 100644 --- a/.vitepress/config/en.ts +++ b/.vitepress/config/en.ts @@ -57,14 +57,16 @@ function sidebar(): DefaultTheme.Sidebar { }, { text: 'Project Info', - items: [{ text: 'Changelog', link: '/en/changelog' }], + items: [ + { text: 'Changelog', link: '/en/changelog' }, + { text: 'Project Structure', link: '/en/structure' }, + ], }, { text: 'Development', collapsed: true, items: [ { text: 'Contributing', link: '/en/contributing' }, - { text: 'Project Structure', link: '/en/structure' }, { text: 'Contributors', link: '/en/contributor' }, ], }, diff --git a/.vitepress/config/zh-tw.ts b/.vitepress/config/zh-tw.ts index 4407954..69833ac 100644 --- a/.vitepress/config/zh-tw.ts +++ b/.vitepress/config/zh-tw.ts @@ -76,14 +76,16 @@ function sidebar(): DefaultTheme.Sidebar { }, { text: '專案資訊', - items: [{ text: '更新日誌', link: '/zh-tw/changelog' }], + items: [ + { text: '更新日誌', link: '/zh-tw/changelog' }, + { text: '專案結構', link: '/zh-tw/structure' }, + ], }, { text: '開發者', collapsed: true, items: [ { text: '貢獻指南', link: '/zh-tw/contributing' }, - { text: '專案結構', link: '/zh-tw/structure' }, { text: '貢獻者名單', link: '/zh-tw/contributor' }, ], }, diff --git a/.vitepress/config/zh.ts b/.vitepress/config/zh.ts index 82ab82a..97affec 100644 --- a/.vitepress/config/zh.ts +++ b/.vitepress/config/zh.ts @@ -76,14 +76,16 @@ function sidebar(): DefaultTheme.Sidebar { }, { text: '项目信息', - items: [{ text: '更新日志', link: '/zh/changelog' }], + items: [ + { text: '更新日志', link: '/zh/changelog' }, + { text: '项目结构', link: '/zh/structure' }, + ], }, { text: '开发者', collapsed: true, items: [ { text: '贡献指南', link: '/zh/contributing' }, - { text: '项目结构', link: '/zh/structure' }, { text: '贡献者名单', link: '/zh/contributor' }, ], }, diff --git a/.vitepress/version.ts b/.vitepress/version.ts index 851efa5..d1ca9e2 100644 --- a/.vitepress/version.ts +++ b/.vitepress/version.ts @@ -1,5 +1,8 @@ /** 当前最新版本号,更新时只需修改此处 */ -export const VERSION = '0.6.5' +export const VERSION = '1.0.0' + +/** GitHub Release 的 tag(不同版本可能不是固定命名规则) */ +export const RELEASE_TAG = 'v1.0.0' /** GitHub Release 下载基础 URL */ -export const RELEASE_BASE = `https://github.com/SeaLantern-Studio/SeaLantern/releases/download/sea-lantern-v${VERSION}` +export const RELEASE_BASE = `https://github.com/SeaLantern-Studio/SeaLantern/releases/download/${RELEASE_TAG}` diff --git a/STRUCTURE.md b/STRUCTURE.md deleted file mode 100644 index cb48961..0000000 --- a/STRUCTURE.md +++ /dev/null @@ -1,455 +0,0 @@ -# Sea Lantern 项目结构 - -## 项目概览 - -Sea Lantern(海晶灯)是一个轻量化的 Minecraft 服务器管理工具,基于 Tauri 2 + Rust + Vue 3 技术栈。 - -## 详细结构 - -``` -sea-lantern/ -│ -├── src/ # 前端代码(Vue 3 + TypeScript) -│ │ -│ ├── api/ # 与 Rust 后端通信的封装层 -│ │ ├── tauri.ts # 基础 invoke 封装,所有 API 的入口 -│ │ ├── server.ts # 服务器管理 API(创建、启动、停止、日志) -│ │ ├── java.ts # Java 环境检测 API -│ │ ├── config.ts # 配置文件读写 API -│ │ ├── player.ts # 玩家管理 API(白名单、封禁、OP) -│ │ ├── settings.ts # 应用设置 API -│ │ ├── system.ts # 系统信息、文件对话框 API -│ │ ├── update.ts # 软件更新检查 API -│ │ └── remoteLocales.ts # 远程语言包 API -│ │ -│ ├── assets/ # 静态资源 -│ │ ├── logo.svg # 应用图标 -│ │ └── vue.svg # Vue 图标 -│ │ -│ ├── components/ # UI 组件 -│ │ ├── common/ # 通用组件(整个项目的积木块) -│ │ │ ├── BrandIcon.vue # 品牌图标组件 -│ │ │ ├── SLButton.vue # 按钮组件 -│ │ │ ├── SLCard.vue # 卡片容器 -│ │ │ ├── SLInput.vue # 输入框组件 -│ │ │ ├── SLSelect.vue # 下拉选择组件 -│ │ │ ├── SLSwitch.vue # 开关组件 -│ │ │ ├── SLModal.vue # 弹窗组件 -│ │ │ ├── SLProgress.vue # 进度条组件 -│ │ │ ├── SLBadge.vue # 状态标签组件 -│ │ │ ├── SLToast.vue # 提示组件 -│ │ │ ├── SLTooltip.vue # 工具提示组件 -│ │ │ ├── SLCheckbox.vue # 复选框组件 -│ │ │ ├── SLFormField.vue # 表单字段组件 -│ │ │ ├── SLTextarea.vue # 文本域组件 -│ │ │ ├── SLTabs.vue # 标签页组件 -│ │ │ ├── SLTabPanel.vue # 标签页面板组件 -│ │ │ ├── SLSpinner.vue # 加载动画组件 -│ │ │ ├── SLContextMenu.vue # 上下文菜单组件 -│ │ │ ├── SLNotification.vue # 通知组件 -│ │ │ ├── SLCloseDialog.vue # 关闭对话框组件 -│ │ │ ├── UpdateModal.vue # 更新模态框组件 -│ │ │ └── index.ts # 组件导出文件 -│ │ │ -│ │ ├── config/ # 配置相关组件 -│ │ │ ├── ConfigCategories.vue # 配置分类组件 -│ │ │ ├── ConfigEntry.vue # 配置项组件 -│ │ │ └── ConfigToolbar.vue # 配置工具栏组件 -│ │ │ -│ │ ├── console/ # 控制台相关组件 -│ │ │ ├── CommandModal.vue # 命令模态框组件 -│ │ │ ├── ConsoleCommands.vue # 控制台命令组件 -│ │ │ ├── ConsoleInput.vue # 控制台输入组件 -│ │ │ ├── ConsoleOutput.vue # 控制台输出组件 -│ │ │ └── ConsoleToolbar.vue # 控制台工具栏组件 -│ │ │ -│ │ ├── layout/ # 页面布局组件 -│ │ │ ├── AppLayout.vue # 总布局(左侧栏 + 右侧内容区) -│ │ │ ├── AppSidebar.vue # 侧边导航栏 -│ │ │ ├── AppHeader.vue # 顶部标题栏 -│ │ │ └── index.ts # 布局组件导出文件 -│ │ │ -│ │ ├── plugin/ # 插件相关组件 -│ │ │ ├── PluginComponentRenderer.vue # 插件组件渲染器 -│ │ │ ├── PluginPermissionPanel.vue # 插件权限面板 -│ │ │ ├── SLPermissionDialog.vue # 权限对话框 -│ │ │ └── index.ts # 插件组件导出文件 -│ │ │ -│ │ ├── splash/ # 启动画面 -│ │ │ └── SplashScreen.vue # 应用启动时的加载动画 -│ │ │ -│ │ ├── JavaDownloader.vue # Java 下载器组件 -│ │ └── index.ts # 组件导出文件 -│ │ -│ ├── composables/ # 组合式函数 -│ │ ├── useAsync.ts # 异步操作处理 -│ │ ├── useComponentRegistry.ts # 组件注册表 -│ │ ├── useMessage.ts # 消息处理 -│ │ ├── useRegisterComponent.ts # 组件注册函数 -│ │ ├── useTabIndicator.ts # 标签指示器 -│ │ └── useToast.ts # 提示组件的组合式函数 -│ │ -│ ├── data/ # 静态数据 -│ │ └── contributors.ts # 贡献者信息列表 -│ │ -│ ├── language/ # 国际化资源 -│ │ ├── index.ts # i18n 核心模块 -│ │ ├── README.md # 语言包说明 -│ │ ├── README-en.md # 英文版本 -│ │ ├── zh-CN.json # 简体中文 -│ │ ├── zh-TW.json # 繁体中文 -│ │ ├── en-US.json # 英语 -│ │ ├── ja-JP.json # 日语 -│ │ ├── ko-KR.json # 韩语 -│ │ ├── de-DE.json # 德语 -│ │ ├── es-ES.json # 西班牙语 -│ │ ├── fr-FA.json # 波斯语 -│ │ ├── ru-RU.json # 俄语 -│ │ └── vi-VN.json # 越南语 -│ │ -│ ├── router/ # 路由配置 -│ │ └── index.ts # 路由表定义 -│ │ -│ ├── stores/ # Pinia 状态管理 -│ │ ├── index.ts # Pinia 实例初始化 -│ │ ├── serverStore.ts # 服务器列表和运行状态 -│ │ ├── consoleStore.ts # 控制台日志(切换页面不丢失) -│ │ ├── uiStore.ts # 界面状态(侧栏折叠等) -│ │ ├── settingsStore.ts # 应用设置状态 -│ │ ├── i18nStore.ts # 国际化状态 -│ │ ├── updateStore.ts # 更新检查状态 -│ │ ├── contextMenuStore.ts # 上下文菜单状态 -│ │ └── pluginStore.ts # 插件状态管理 -│ │ -│ ├── styles/ # 全局样式 -│ │ ├── variables.css # CSS 变量(颜色、间距、圆角、字体、阴影) -│ │ ├── reset.css # 浏览器样式重置 -│ │ ├── typography.css # 排版样式 -│ │ ├── animations.css # 动画关键帧 -│ │ ├── glass.css # 毛玻璃效果样式 -│ │ └── initial.css # 初始样式 -│ │ -│ ├── types/ # 类型定义 -│ │ ├── common.ts # 通用类型定义 -│ │ ├── plugin.ts # 插件相关类型定义 -│ │ └── server.ts # 服务器相关类型定义 -│ │ -│ ├── utils/ # 工具函数 -│ │ ├── constants.ts # 常量定义 -│ │ ├── errorHandler.ts # 错误处理工具 -│ │ ├── format.ts # 格式化工具 -│ │ ├── logger.ts # 日志工具 -│ │ ├── quoteUtils.ts # 引号处理工具 -│ │ ├── serverStatus.ts # 服务器状态工具 -│ │ ├── serverUtils.ts # 服务器工具函数 -│ │ ├── statsUtils.ts # 统计工具函数 -│ │ ├── theme.ts # 主题工具 -│ │ ├── tray.ts # 系统托盘工具 -│ │ └── version.ts # 版本工具 -│ │ -│ ├── views/ # 页面视图(每个路由对应一个) -│ │ ├── HomeView.vue # 首页(服务器列表、系统状态) -│ │ ├── CreateServerView.vue # 创建/导入服务器页面 -│ │ ├── ConsoleView.vue # 控制台页面(实时日志、命令输入) -│ │ ├── ConfigView.vue # 配置编辑页面(server.properties) -│ │ ├── PlayerView.vue # 玩家管理页面(白名单、封禁、OP) -│ │ ├── SettingsView.vue # 应用设置页面 -│ │ ├── PaintView.vue # 个性化设置页面 -│ │ ├── AboutView.vue # 关于页面(贡献者墙、更新检查) -│ │ ├── MarketView.vue # 市场页面 -│ │ ├── PluginsView.vue # 插件列表页面 -│ │ ├── PluginsPageView.vue # 插件分页视图 -│ │ ├── PluginCategoryView.vue # 插件分类视图 -│ │ └── PluginPageView.vue # 插件详情页面 -│ │ -│ ├── App.vue # 根组件 -│ ├── main.ts # 应用入口(初始化 Vue、Pinia、Router) -│ ├── style.css # 样式汇总导入 -│ └── vite-env.d.ts # Vite 环境类型声明 -│ -├── src-tauri/ # 后端代码(Rust + Tauri 2) -│ │ -│ ├── capabilities/ # Tauri 权限配置 -│ │ └── default.json # 默认权限设置 -│ │ -│ ├── icons/ # 应用图标 -│ │ ├── 32x32.png # 32x32 图标 -│ │ ├── 64x64.png # 64x64 图标 -│ │ ├── 128x128.png # 128x128 图标 -│ │ ├── 128x128@2x.png # 128x128 2x 图标 -│ │ ├── icon.icns # macOS 图标 -│ │ ├── icon.ico # Windows 图标 -│ │ ├── icon.png # 通用图标 -│ │ ├── source.png # 源图标 -│ │ ├── Square30x30Logo.png # 30x30 方形图标 -│ │ ├── Square44x44Logo.png # 44x44 方形图标 -│ │ ├── Square71x71Logo.png # 71x71 方形图标 -│ │ ├── Square89x89Logo.png # 89x89 方形图标 -│ │ ├── Square107x107Logo.png # 107x107 方形图标 -│ │ ├── Square142x142Logo.png # 142x142 方形图标 -│ │ ├── Square150x150Logo.png # 150x150 方形图标 -│ │ ├── Square284x284Logo.png # 284x284 方形图标 -│ │ ├── Square310x310Logo.png # 310x310 方形图标 -│ │ ├── StoreLogo.png # 商店图标 -│ │ ├── android/ # Android 图标 -│ │ └── ios/ # iOS 图标 -│ │ -│ ├── src/ # Rust 源代码 -│ │ ├── commands/ # Tauri 命令(前端 invoke 调用的 API) -│ │ │ ├── mod.rs # 模块导出 -│ │ │ ├── server.rs # 服务器管理命令 -│ │ │ ├── java.rs # Java 检测命令 -│ │ │ ├── config.rs # 配置文件读写命令 -│ │ │ ├── player.rs # 玩家管理命令 -│ │ │ ├── settings.rs # 应用设置命令 -│ │ │ ├── system.rs # 系统信息、文件对话框命令 -│ │ │ ├── update.rs # 软件更新检查命令 -│ │ │ ├── update_arch.rs # 更新架构检测 -│ │ │ ├── update_checksum.rs # 更新校验和 -│ │ │ ├── update_download.rs # 更新下载 -│ │ │ ├── update_github.rs # GitHub 更新源 -│ │ │ ├── update_install.rs # 更新安装 -│ │ │ ├── update_types.rs # 更新类型定义 -│ │ │ ├── update_version.rs # 更新版本比较 -│ │ │ ├── join.rs # 加入服务器命令 -│ │ │ ├── mods.rs # 模组管理命令 -│ │ │ ├── server_id.rs # 服务器 ID 管理命令 -│ │ │ ├── mcs_plugin.rs # MCS 插件命令 -│ │ │ └── plugin.rs # 插件系统命令 -│ │ │ -│ │ ├── services/ # 业务逻辑层 -│ │ │ ├── mod.rs # 模块导出 -│ │ │ ├── server_manager.rs # 服务器进程管理、日志读取 -│ │ │ ├── java_detector.rs # Java 环境扫描器 -│ │ │ ├── java_installer.rs # Java 安装器 -│ │ │ ├── config_parser.rs # .properties 文件解析器 -│ │ │ ├── player_manager.rs # 玩家数据文件读取 -│ │ │ ├── settings_manager.rs # 应用设置持久化 -│ │ │ ├── mod_manager.rs # 模组管理器 -│ │ │ ├── join_manager.rs # 加入服务器管理器 -│ │ │ ├── server_id_manager.rs # 服务器 ID 管理器 -│ │ │ ├── mcs_plugin_manager.rs # MCS 插件管理器 -│ │ │ ├── async_loader.rs # 异步加载器 -│ │ │ ├── i18n.rs # 国际化服务 -│ │ │ └── global.rs # 全局单例管理器 -│ │ │ -│ │ ├── plugins/ # 插件系统 -│ │ │ ├── mod.rs # 插件模块导出 -│ │ │ ├── api.rs # 插件 API -│ │ │ ├── loader.rs # 插件加载器 -│ │ │ ├── manager.rs # 插件管理器 -│ │ │ └── runtime/ # 插件运行时 -│ │ │ ├── mod.rs # 运行时模块导出 -│ │ │ ├── api_bridge.rs # API 桥接 -│ │ │ ├── console.rs # 控制台 API -│ │ │ ├── element.rs # UI 元素 API -│ │ │ ├── filesystem.rs # 文件系统 API -│ │ │ ├── helpers.rs # 辅助函数 -│ │ │ ├── http.rs # HTTP API -│ │ │ ├── i18n.rs # 国际化 API -│ │ │ ├── log.rs # 日志 API -│ │ │ ├── plugins_api.rs # 插件管理 API -│ │ │ ├── process.rs # 进程 API -│ │ │ ├── server.rs # 服务器 API -│ │ │ ├── storage.rs # 存储 API -│ │ │ ├── system.rs # 系统 API -│ │ │ └── ui.rs # UI API -│ │ │ -│ │ ├── models/ # 数据结构定义 -│ │ │ ├── mod.rs # 模块导出 -│ │ │ ├── server.rs # 服务器实例、状态数据结构 -│ │ │ ├── config.rs # 配置项数据结构 -│ │ │ ├── settings.rs # 应用设置数据结构 -│ │ │ ├── mcs_plugin.rs # MCS 插件数据结构 -│ │ │ └── plugin.rs # 插件数据结构 -│ │ │ -│ │ ├── utils/ # 工具函数 -│ │ │ ├── mod.rs # 工具模块 -│ │ │ ├── cli.rs # 命令行工具 -│ │ │ ├── downloader.rs # 下载工具 -│ │ │ └── path.rs # 路径工具 -│ │ │ -│ │ ├── lib.rs # Tauri 库入口(插件注册、命令注册) -│ │ └── main.rs # 应用主函数 -│ │ -│ ├── .gitignore # Git 忽略文件 -│ ├── Cargo.lock # Rust 依赖锁定文件 -│ ├── Cargo.toml # Rust 依赖配置 -│ ├── build.rs # 构建脚本 -│ └── tauri.conf.json # Tauri 配置(窗口大小、标题、版本等) -│ -│ -├── docs/ # 文档 -│ ├── AI_GUIDE.md # AI 使用指南 -│ ├── CONTRIBUTING.md # 贡献指南 -│ ├── STRUCTURE.md # 项目结构文档 -│ ├── 新手使用教程.html # 新手使用教程 -│ └── language/ -│ ├── README.md # 语言包说明 -│ └── README-en.md # 英文版本 -│ -├── .SRCINFO # 包信息 -├── .editorconfig # 编辑器配置 -├── .gitattributes # Git 属性配置 -├── .gitignore # Git 忽略文件 -├── .oxfmtrc.json # Oxlint 格式化配置 -├── .oxlintrc.json # Oxlint 配置 -├── Cargo.lock # Rust 依赖锁定文件 -├── Cargo.toml # Rust 依赖配置 -├── LICENSE # 许可证文件 -├── PKGBUILD # Arch Linux 包构建文件 -├── README.md # 项目说明文档 -├── README-en.md # 英文项目说明文档 -├── index.html # HTML 入口文件 -├── package-lock.json # Node.js 依赖锁定文件 -├── package.json # Node.js 依赖配置 -├── rustfmt.toml # Rust 代码格式化配置 -├── sealantern.desktop # Linux 桌面文件 -├── sealantern.install # 安装脚本 -├── tsconfig.json # TypeScript 配置 -├── tsconfig.node.json # Node.js 环境 TypeScript 配置 -└── vite.config.ts # Vite 构建配置 -``` - -## 核心功能模块 - -### 1. 服务器管理 - -- 创建、导入、启动、停止、删除服务器 -- 支持不同类型的服务器启动方式(jar、bat、sh) -- 支持整合包导入 - -### 2. 控制台管理 - -- 实时查看服务器日志 -- 直接向服务器发送命令 -- 支持自定义命令 - -### 3. 配置管理 - -- 图形化编辑 server.properties -- 支持多种配置项类型 - -### 4. 玩家管理 - -- 白名单管理 -- 封禁管理 -- OP 管理 - -### 5. 系统监控 - -- CPU、内存、磁盘使用情况 -- 实时系统资源监控 - -### 6. 国际化 - -- 支持多语言 -- 内置多种语言包 - -### 7. 更新管理 - -- 检查更新 -- 一键下载新版本 - -### 8. 插件系统 - -- 支持动态加载插件 -- 插件 API 桥接(控制台、文件系统、HTTP、UI 等) -- 插件权限管理 -- 插件市场 - -### 9. 主题系统 - -- 多种内置主题(默认、午夜、海洋、玫瑰、日落) -- 自定义主题支持 -- CSS 变量驱动的主题切换 - -## 技术特点 - -1. **轻量级**:使用 Tauri 替代 Electron,体积小,启动快,内存占用低 -2. **高性能**:Rust 后端处理核心逻辑,性能优异 -3. **跨平台**:支持 Windows、macOS、Linux -4. **响应式设计**:支持不同屏幕尺寸 -5. **模块化架构**:清晰的代码结构,易于扩展 -6. **国际化支持**:内置多语言支持 -7. **安全可靠**:关闭软件时自动停止服务器,防止丢存档 - -## 开发指南 - -### 前端开发 - -- 使用 Vue 3 Composition API -- 使用 TypeScript 确保类型安全 -- 使用 Pinia 进行状态管理 -- 使用 Vite 进行构建 - -### 后端开发 - -- 使用 Rust 语言 -- 使用 Tauri 2 作为桌面应用框架 -- 使用 serde 进行序列化/反序列化 -- 使用 tokio 进行异步处理 - -### 代码规范 - -- 前端:使用 ESLint 和 Prettier 确保代码质量 -- 后端:使用 rustfmt 和 clippy 确保代码质量 - -## 构建与部署 - -### 开发环境 - -```bash -# 安装依赖 -npm install - -# 启动开发服务器 -npm run tauri dev -``` - -### 生产构建 - -```bash -# 构建发布版 -npm run tauri build - -# 产物位置 -src-tauri/target/release/bundle/ -``` - -## 扩展指南 - -### 添加新功能 - -1. **后端**: - - 在 `src-tauri/src/services/` 下创建新的服务文件 - - 在 `src-tauri/src/commands/` 下创建新的命令文件 - - 在 `commands/mod.rs` 中导出模块 - - 在 `lib.rs` 的 `generate_handler!` 宏中注册命令 - -2. **前端**: - - 在 `src/api/` 下创建新的 API 封装文件 - - 在 `src/views/` 下创建新的页面组件 - - 在 `src/router/index.ts` 中添加路由 - - 在 `src/components/` 下创建相关组件 - - 在 `src/stores/` 下创建相关状态管理 - -## 注意事项 - -1. **数据存储**:服务器数据存储在可执行文件所在目录的 `sea_lantern_servers.json` 文件中 -2. **日志管理**:服务器日志存储在服务器目录的 `latest.log` 文件中 -3. **权限管理**:确保应用具有足够的文件系统权限 -4. **性能优化**:避免在主线程中执行耗时操作 -5. **错误处理**:确保所有错误都有适当的处理和提示 - -## 未来规划 - -- 下载中心:下载服务端核心,插件,模组 -- 备份管理:世界存档的增量备份和还原 -- 内网穿透:集成 FRP -- 定时任务:自动重启、定时备份、定时执行命令 -- 资源管理:从 Modrinth / CurseForge 搜索安装插件和 Mod - ---- - -**提示**:本文档会随着项目的发展而更新,如需了解最新的项目结构,请参考代码仓库。 diff --git a/en/changelog.md b/en/changelog.md index 6827dc9..2d5319a 100644 --- a/en/changelog.md +++ b/en/changelog.md @@ -2,7 +2,29 @@ [GitHub Releases](https://github.com/SeaLantern-Studio/SeaLantern/releases) -## v0.6.5 +## v1.0.0 + +[GitHub Release](https://github.com/SeaLantern-Studio/SeaLantern/releases/tag/v1.0.0) + +> 2026-02-26 + +### Highlights +- Server creation workflow upgraded with modpack auto-install, smart startup-mode detection, and custom startup commands +- Added import capability to bring existing servers/startup files into Sea Lantern +- Plugin system and plugin market improvements: permission panel behavior, state retention, and better download failure feedback +- Expanded Java auto-detection paths and one-click Java installation when runtime is missing +- Upgraded homepage charting with ECharts for clearer status visibility + +### Stability & Engineering +- Continued i18n hardening by replacing hardcoded text and fixing multilingual display issues +- Fixed issues in server creation flow, plugin permission panel placement, drag box rendering, and window restore behavior +- Refactored core views (Settings/Home/Player/Paint) to reduce coupling and improve maintainability +- Reworked CI/CD and frontend quality-check workflows for cleaner release pipelines +- Added ARM architecture support in release assets (including Windows/Linux) + +--- + +## v0.6.5 [GitHub Release](https://github.com/SeaLantern-Studio/SeaLantern/releases/tag/sea-lantern-v0.6.5) diff --git a/en/download.md b/en/download.md index c36ed10..019c74f 100644 --- a/en/download.md +++ b/en/download.md @@ -13,12 +13,18 @@ Choose the package that matches your system, then install directly. Current latest version: v{{ VERSION }} +::: tip Architecture update (v1.0.0+) +Windows and Linux ARM64 packages are now available. Choose the one matching your device architecture. +::: + ## Windows | Format | Description | |--------|-------------| | EXE Installer | Recommended, double-click to install | | MSI Installer | Windows Installer format | +| EXE Installer (ARM64) | For Windows on ARM | +| MSI Installer (ARM64) | Windows Installer (ARM64) | ## macOS @@ -26,15 +32,20 @@ Current latest version: |--------|-------------| | DMG (Apple Silicon) | M1 / M2 / M3 / M4 | | DMG (Intel) | x64 architecture | +| app.tar.gz (Apple Silicon) | Portable archive | +| app.tar.gz (Intel) | Portable archive | ## Linux | Format | Description | |--------|-------------| | DEB | Debian / Ubuntu | -| RPM | Fedora / RHEL | +| DEB (ARM64) | Debian / Ubuntu ARM64 | +| RPM | Fedora / RHEL (x86_64) | +| RPM (ARM64) | Fedora / RHEL (aarch64) | | AppImage | Universal format | -| pkg.tar.zst | Arch Linux installable package | +| AppImage (ARM64) | Universal format (ARM64) | +| pkg.tar.zst | Arch Linux package (x86_64) | Arch Linux users can install via AUR, for example: diff --git a/en/features.md b/en/features.md index b8fe162..78138c3 100644 --- a/en/features.md +++ b/en/features.md @@ -32,6 +32,7 @@ Lua script-based plugin extension mechanism: - Plugin permission management panel - Sandboxed plugin runtime - Plugin install / enable / disable / delete workflow +- Plugin market entry with improved failure feedback and state retention ## Theme System @@ -55,6 +56,7 @@ Lua script-based plugin extension mechanism: - Auto-detect Java runtimes installed on the system - Built-in Java downloader for one-click installation - Manual Java path selection with validation support +- Expanded scan paths for common install locations to reduce missed detections ## Mod Management @@ -66,6 +68,9 @@ Lua script-based plugin extension mechanism: - Guided workflow to lower setup friction for new servers - Supports `jar` / `bat` / `sh` startup modes +- Supports importing existing servers or startup files +- Smart startup-mode detection with custom startup command support +- Modpack auto-install is available during the creation flow - Includes first-launch guidance for EULA-related steps ## Safe Shutdown diff --git a/en/getting-started.md b/en/getting-started.md index c069d2d..a5d1faf 100644 --- a/en/getting-started.md +++ b/en/getting-started.md @@ -22,7 +22,7 @@ Arch Linux users can install via AUR (see the Linux section on the download page ## 2. Get a Server JAR -You need a Minecraft server JAR file to create a server. If you don't have one yet, check the [Server JAR Guide](/en/server-jar) to download one. +You can create a new server from a Minecraft server JAR, or import an existing server directory/startup script. If you don't have a core file yet, check the [Server JAR Guide](/en/server-jar) to download one. ::: tip Recommendation For most players, we recommend [Paper](https://papermc.io/downloads/paper) — great performance and a rich plugin ecosystem. @@ -42,10 +42,11 @@ Different Minecraft versions require different Java versions: ## 4. Create a Server 1. Click the "Create Server" button -2. Import your downloaded server JAR file -3. Select the Java runtime version -4. Name your server -5. Accept the Minecraft EULA on first launch +2. Choose an import source (JAR, existing server, or startup script) +3. Finish startup-mode detection in the wizard; customize startup command if needed +4. Select the Java runtime version (or install one-click if missing) +5. Name your server and confirm parameters +6. Accept the Minecraft EULA on first launch ## 5. Start the Server diff --git a/en/intro.md b/en/intro.md index 8a60779..2ae9c57 100644 --- a/en/intro.md +++ b/en/intro.md @@ -5,15 +5,15 @@ const featureItems = [ { title: 'Real-time Console', desc: 'View live logs, run commands directly, and keep command history.', note: 'Useful for startup troubleshooting and routine operations without switching to another terminal.' }, { title: 'Visual Configuration', desc: 'Edit server.properties with categorized controls instead of manual files.', note: 'Common options are faster to find; settings that require restart still follow server-side behavior.' }, { title: 'Player Management', desc: 'Whitelist, ban, and OP operations are available in one place.', note: 'Online status and permission actions are centralized to reduce repeated command memorization.' }, - { title: 'Plugin System', desc: 'Lua-based extensions with support for custom UI and context menus.', note: 'Best for local extensions and tooling; complex ecosystems may still rely on native server workflows.' }, + { title: 'Plugin System', desc: 'Lua-based extensions with custom UI, context menus, and plugin market integration.', note: 'v1.0.0 improves permission panel behavior and market state retention for more stable workflows.' }, + { title: 'Creation Flow 2.0', desc: 'Supports JAR/script/existing-server import with smart startup detection and custom commands.', note: 'Modpack auto-install is available during setup to reduce first-run manual steps.' }, { title: 'Theme System', desc: 'Five built-in themes with dark/light mode; acrylic effect is supported on Windows.', note: 'Theme switching keeps the same layout and focuses on readability and visual preference.' }, { title: 'Multi-language', desc: '10 built-in languages including Chinese, English, Japanese, and Korean.', note: 'Language can be switched at runtime, and core terms stay aligned across UI and docs.' }, - { title: 'Java Management', desc: 'Auto-detect installed runtimes and install Java with one click.', note: 'You can reuse an existing JDK or quickly prepare a runtime from inside the app.' }, + { title: 'Java Management', desc: 'Auto-detect installed runtimes and install Java with one click.', note: 'v1.0.0 expands scan paths across common install directories to reduce missed detections.' }, { title: 'Mod Management', desc: 'View installed server-side mods/plugins with basic management support.', note: 'Currently focused on local inspection and basic maintenance before deeper adjustments.' }, { title: 'Safe Shutdown', desc: 'Stops the server automatically when the app closes to reduce data risk.', note: 'Helps avoid abrupt process termination and lowers save/world corruption risk.' }, { title: 'Auto Update', desc: 'Check for new versions and jump to the download page (AUR workflow on Arch Linux).', note: 'Desktop updates are download-guided rather than silently overwriting your installation.' }, { title: 'Cross-platform', desc: 'Supports Windows, macOS, and Linux (including Arch Linux AUR).', note: 'Some capabilities differ by platform, and platform-specific behavior is documented separately.' }, - { title: 'System Tray', desc: 'Minimize to the system tray and keep servers running in the background.', note: 'Practical for long-running servers, with quick restore and exit actions from the tray menu.' }, ] diff --git a/en/server-jar.md b/en/server-jar.md index 47ff390..0a1ed49 100644 --- a/en/server-jar.md +++ b/en/server-jar.md @@ -107,6 +107,7 @@ When starting any Minecraft server for the first time, you must accept the [Mine ### What to Do After Downloading? 1. Most server types provide a `.jar` file (projects like Pumpkin may provide executables) -2. Click "Create Server" in Sea Lantern +2. Click "Create Server" in Sea Lantern and choose an import source (JAR / existing server / startup script) 3. For `.jar`, import it directly; for executables, use script startup mode (`bat` / `sh`) -4. See [Getting Started](/en/getting-started) for detailed steps +4. The wizard tries to auto-detect startup mode; you can manually adjust and set a custom startup command if needed +5. See [Getting Started](/en/getting-started) for detailed steps diff --git a/en/structure-full.md b/en/structure-full.md new file mode 100644 index 0000000..4f070c1 --- /dev/null +++ b/en/structure-full.md @@ -0,0 +1,133 @@ +# Detailed Directory Structure + +> Based on the `v1.0.0` tree of `SeaLantern-Studio/SeaLantern` (released on 2026-02-26). + +## Top-Level Layout + +```text +SeaLantern/ +├── .github/ +│ ├── ISSUE_TEMPLATE/ +│ ├── pull_request_template.md +│ └── workflows/ +│ ├── check.yml +│ ├── release.yml +│ ├── issue-check.yml +│ └── aur-publish.yml +├── docs/ +│ ├── AI_GUIDE.md +│ ├── CONTRIBUTING.md +│ └── STRUCTURE.md +├── src/ # Vue 3 + TypeScript frontend +├── src-tauri/ # Rust + Tauri 2 backend +├── Cargo.toml +├── package.json +├── pnpm-lock.yaml +├── README.md +└── README-en.md +``` + +## Frontend (`src/`) + +### API Layer (`src/api/`) + +```text +src/api/ +├── tauri.ts +├── server.ts +├── config.ts +├── settings.ts +├── player.ts +├── java.ts +├── system.ts +├── plugin.ts +├── mcs_plugins.ts +├── downloader.ts +├── update.ts +├── remoteLocales.ts +└── index.ts +``` + +### Component Layer (`src/components/`) + +```text +src/components/ +├── common/ # shared UI primitives (SLButton/SLInput/SLSelect/SLTabs/SLDropzone...) +├── layout/ # AppHeader/AppLayout/AppSidebar +├── console/ # ConsoleInput/ConsoleOutput/CommandModal +├── config/ # ConfigCategories/ConfigEntry/ConfigToolbar +├── plugin/ # PluginComponentRenderer/PluginPermissionPanel +├── splash/ # SplashScreen +├── views/ +│ ├── create/ # creation workflow split (workflow, startup utils, step components) +│ ├── home/ +│ ├── player/ +│ ├── settings/ +│ ├── paint/ +│ └── about/ +└── JavaDownloader.vue +``` + +### View Layer (`src/views/`) + +```text +src/views/ +├── HomeView.vue +├── CreateServerView.vue +├── ConsoleView.vue +├── ConfigView.vue +├── PlayerView.vue +├── SettingsView.vue +├── PaintView.vue +├── AboutView.vue +├── MarketView.vue +├── DownloadFileView.vue +├── PluginsView.vue +├── PluginsPageView.vue +├── PluginCategoryView.vue +└── PluginPageView.vue +``` + +### State and Infrastructure + +```text +src/ +├── stores/ # server/console/settings/plugin/ui/update/i18n stores +├── composables/ # useAsync/useMessage/useTabIndicator/useAboutLinks... +├── language/ # 10 locales + index.ts +├── themes/ # default/midnight/ocean/rose/sunset +├── styles/ # variables/reset/typography/app + module styles +├── types/ # common/plugin/server/theme +├── utils/ # constants/errorHandler/serverUtils/theme/version +├── data/ # contributors.ts +├── router/index.ts +├── App.vue +├── main.ts +└── style.css +``` + +## Backend (`src-tauri/`) + +```text +src-tauri/ +├── capabilities/default.json +├── tauri.conf.json +├── build.rs +├── Cargo.toml +└── src/ + ├── commands/ # server/player/java/settings/system/update/downloader/mcs_plugin... + ├── services/ # server_manager/server_installer/download_manager/java_detector... + ├── models/ # server/plugin/config/settings/download models + ├── plugins/ # Lua plugin runtime (api/loader/manager/runtime) + ├── utils/ # cli/path/downloader + ├── lib.rs + └── main.rs +``` + +## Key Structural Changes in v1.0.0 + +- Server creation flow is fully split under `src/components/views/create/`. +- Plugin-related views and permission handling are clearly separated. +- Download modules are split out on both frontend and backend. +- `src/views/DownloadFileView.vue` is now part of the routed views. +- CI workflow is streamlined into check, release, issue-check, and AUR publish. diff --git a/en/structure.md b/en/structure.md index 460c062..823f3ce 100644 --- a/en/structure.md +++ b/en/structure.md @@ -9,6 +9,14 @@ - **Package Manager**: pnpm - **Linting**: oxlint + oxfmt +## v1.0.0 Structure Sync (2026-02-26) + +- Server-creation flow is split under `src/components/views/create/` (import source, startup detection, custom command) +- View internals are further modularized under `about/`, `home/`, `paint/`, `player/`, and `settings/` +- API layer additions/updates include `src/api/downloader.ts` and `src/api/mcs_plugins.ts` +- View layer includes `DownloadFileView.vue` and multi-view plugin pages (`PluginsView / PluginsPageView / PluginCategoryView / PluginPageView`) +- Active CI/CD workflows: `check.yml`, `release.yml`, `issue-check.yml`, `aur-publish.yml` + ## Directory Overview ``` @@ -42,3 +50,5 @@ SeaLantern/ │ └── Cargo.toml └── .github/workflows/ # CI/CD (check, build, release) ``` + +[Detailed Directory Structure](/en/structure-full) diff --git a/en/tutorial.md b/en/tutorial.md index e4d8eaf..4ef99a3 100644 --- a/en/tutorial.md +++ b/en/tutorial.md @@ -4,15 +4,21 @@ This page covers how to use each feature in Sea Lantern. ## Creating Your First Server -### Import Server JAR +### Import Source (JAR / Existing Server / Startup Script) 1. Click the "Create Server" button on the main screen -2. In the setup wizard, click "Choose File" to import your server JAR +2. In the setup wizard, choose an import source: server JAR, existing server directory, or startup script (`bat` / `sh`) 3. If you don't have a server JAR yet, check the [Server JAR Guide](/en/server-jar) +### Startup Detection and Custom Command + +- Sea Lantern automatically detects the startup mode from imported content +- If detection does not match your expectation, switch modes manually and set a custom startup command +- Modpack auto-install is available in the creation flow to reduce first-run manual steps + ### Select Java Version -After importing the JAR, Sea Lantern will list all detected Java versions on your system. Choose the one that matches your Minecraft version: +After import is complete, Sea Lantern will list all detected Java versions on your system. Choose the one that matches your Minecraft version: | Minecraft Version | Recommended Java | |-------------------|-----------------| diff --git a/zh-tw/changelog.md b/zh-tw/changelog.md index 08cb070..815c418 100644 --- a/zh-tw/changelog.md +++ b/zh-tw/changelog.md @@ -2,7 +2,29 @@ [GitHub Releases](https://github.com/SeaLantern-Studio/SeaLantern/releases) -## v0.6.5 +## v1.0.0 + +[GitHub Release](https://github.com/SeaLantern-Studio/SeaLantern/releases/tag/v1.0.0) + +> 2026-02-26 + +### 重點新增 +- 建立伺服器流程升級:支援整合包自動安裝、智慧識別開服方式、可自訂開服命令 +- 新增匯入能力,可將既有伺服器/啟動檔接入 Sea Lantern 管理 +- 插件系統與插件市場持續增強:權限面板、狀態保留、下載失敗提示等體驗改善 +- Java 偵測路徑擴充,常見安裝目錄識別率更高,缺失時可一鍵下載安裝 +- 首頁圖表能力升級(ECharts),狀態展示更直覺 + +### 穩定性與工程 +- 持續完善 i18n,替換硬編碼文字並修復多語言顯示細節 +- 修復建立流程、插件權限面板、拖曳框、視窗還原等問題 +- 重構 Settings/Home/Player/Paint 等核心頁面,降低耦合並提升可維護性 +- CI/CD 與品質檢查流程重構,發布鏈路更清晰 +- 發布資產新增 ARM 架構支援(含 Windows/Linux) + +--- + +## v0.6.5 [GitHub Release](https://github.com/SeaLantern-Studio/SeaLantern/releases/tag/sea-lantern-v0.6.5) diff --git a/zh-tw/download.md b/zh-tw/download.md index 062a87c..e7dc65e 100644 --- a/zh-tw/download.md +++ b/zh-tw/download.md @@ -13,12 +13,18 @@ import { VERSION, RELEASE_BASE } from '../.vitepress/version' 當前最新版本: v{{ VERSION }} +::: tip 架構支援更新(v1.0.0+) +Windows 與 Linux 已提供 ARM64 安裝包,可依裝置架構選擇下載。 +::: + ## Windows | 格式 | 說明 | |------|------| | EXE 安裝包 | 推薦,雙擊安裝 | | MSI 安裝包 | Windows Installer 格式 | +| EXE 安裝包 (ARM64) | 適用 Windows on ARM | +| MSI 安裝包 (ARM64) | Windows Installer (ARM64) | ## macOS @@ -26,15 +32,20 @@ import { VERSION, RELEASE_BASE } from '../.vitepress/version' |------|------| | DMG (Apple Silicon) | M1 / M2 / M3 / M4 | | DMG (Intel) | x64 架構 | +| app.tar.gz (Apple Silicon) | 可攜壓縮包 | +| app.tar.gz (Intel) | 可攜壓縮包 | ## Linux | 格式 | 說明 | |------|------| | DEB | Debian / Ubuntu | -| RPM | Fedora / RHEL | +| DEB (ARM64) | Debian / Ubuntu ARM64 | +| RPM | Fedora / RHEL (x86_64) | +| RPM (ARM64) | Fedora / RHEL (aarch64) | | AppImage | 通用格式 | -| pkg.tar.zst | Archlinux 可安裝套件 | +| AppImage (ARM64) | 通用格式 (ARM64) | +| pkg.tar.zst | Arch Linux 可安裝套件 (x86_64) | Arch Linux 使用者可透過 AUR 安裝,例如: diff --git a/zh-tw/features.md b/zh-tw/features.md index ec15308..91ae61c 100644 --- a/zh-tw/features.md +++ b/zh-tw/features.md @@ -32,6 +32,7 @@ - 插件權限管理面板 - 插件執行時沙箱隔離 - 支援插件安裝、啟用/停用與刪除 +- 提供插件市場入口,並加強下載失敗提示與狀態保留 ## 主題系統 @@ -55,6 +56,7 @@ - 自動偵測系統中已安裝的 Java 執行環境 - 內建 Java 下載器,支援一鍵安裝所需版本 - 支援手動指定 Java 路徑並進行可用性校驗 +- 擴充常見安裝目錄掃描路徑,降低「已安裝但未識別」情況 ## Mod 管理 @@ -66,6 +68,9 @@ - 引導式流程建立新伺服器,降低新手配置門檻 - 支援 `jar` / `bat` / `sh` 啟動模式 +- 支援匯入既有伺服器或啟動檔 +- 智慧偵測開服方式,並支援自訂開服命令 +- 可在建立流程中自動安裝整合包 - 首次啟動可引導完成 EULA 相關步驟 ## 安全退出 diff --git a/zh-tw/getting-started.md b/zh-tw/getting-started.md index 7a01b56..a60ede3 100644 --- a/zh-tw/getting-started.md +++ b/zh-tw/getting-started.md @@ -22,7 +22,7 @@ Arch Linux 使用者可透過 AUR 安裝(見下載頁 Linux 小節)。 ## 2. 取得伺服端核心 -您需要一個 Minecraft 伺服端 JAR 檔案來建立伺服器。如果您還沒有,請參考 [伺服端核心取得](/zh-tw/server-jar) 頁面下載。 +您可以使用 Minecraft 伺服端 JAR 建立新伺服器,也可以直接匯入既有伺服器目錄或啟動腳本。如果您還沒有核心檔案,請參考 [伺服端核心取得](/zh-tw/server-jar) 頁面下載。 ::: tip 推薦 對於大多數玩家,推薦使用 [Paper](https://papermc.io/downloads/paper) — 效能優秀、插件生態豐富。 @@ -42,10 +42,11 @@ Minecraft 不同版本對 Java 的要求不同: ## 4. 建立伺服器 1. 點擊「建立伺服器」按鈕 -2. 匯入您下載的伺服端 JAR 檔案 -3. 選擇 Java 執行環境版本 -4. 為您的伺服器命名 -5. 首次啟動時需要同意 Minecraft EULA +2. 選擇匯入來源(JAR、既有伺服器或啟動腳本) +3. 依引導完成開服方式偵測;必要時可自訂開服命令 +4. 選擇 Java 執行環境版本(缺失時可一鍵安裝) +5. 為您的伺服器命名並確認參數 +6. 首次啟動時需要同意 Minecraft EULA ## 5. 啟動伺服器 diff --git a/zh-tw/intro.md b/zh-tw/intro.md index 2627da4..9a5af99 100644 --- a/zh-tw/intro.md +++ b/zh-tw/intro.md @@ -5,15 +5,15 @@ const featureItems = [ { title: '即時控制台', desc: '即時查看日誌,直接輸入命令,並支援命令歷史。', note: '適合排查啟動錯誤與日常維運,不需頻繁切換外部終端。' }, { title: '圖形化配置', desc: 'server.properties 視覺化編輯,依分類整理,減少手動改檔。', note: '常見參數可快速定位;需重啟生效的項目仍遵循伺服端規則。' }, { title: '玩家管理', desc: '白名單、封禁、OP 操作集中在同一入口。', note: '線上狀態與權限操作集中呈現,降低手動記憶指令成本。' }, - { title: '插件系統', desc: '基於 Lua 腳本擴展,支援自訂 UI 元件和右鍵選單。', note: '偏向本地擴展與工具強化,複雜生態仍建議搭配伺服端原生方案。' }, + { title: '插件系統', desc: '基於 Lua 腳本擴展,支援自訂 UI 元件、右鍵選單與插件市場。', note: 'v1.0.0 持續優化權限面板與市場狀態保留,使用流程更穩定。' }, + { title: '建立流程 2.0', desc: '支援 JAR/腳本/既有伺服器匯入,智慧偵測開服方式並可自訂命令。', note: '可在建立階段自動安裝整合包,減少首次開服手動操作。' }, { title: '主題系統', desc: '內建 5 套主題,支援明暗模式;Windows 支援亞克力效果。', note: '切換主題不改變功能布局,重點在可讀性與視覺風格。' }, { title: '多語言支援', desc: '內建 10 種語言,包含中文、英語、日語、韓語等。', note: '支援執行中切換語言,介面與文件術語盡量保持一致。' }, - { title: 'Java 管理', desc: '自動偵測已安裝 Java,並支援一鍵下載安裝。', note: '可直接沿用現有 JDK,也能在應用內快速補齊執行環境。' }, + { title: 'Java 管理', desc: '自動偵測已安裝 Java,並支援一鍵下載安裝。', note: 'v1.0.0 擴充常見安裝路徑掃描,降低已安裝卻未識別的情況。' }, { title: 'Mod 管理', desc: '檢視伺服端已安裝的 Mod/插件,並提供基礎管理能力。', note: '目前以本地檢視與基礎維護為主,方便先排查再調整。' }, { title: '安全退出', desc: '關閉軟體時自動停止伺服器,降低存檔損壞風險。', note: '避免直接強制結束行程,降低世界與玩家資料異常機率。' }, { title: '自動更新', desc: '檢查新版本並跳轉下載頁面(Arch Linux 使用 AUR 更新)。', note: '桌面端以下載引導為主,不會在背景靜默覆蓋你的安裝。' }, { title: '跨平台', desc: '支援 Windows、macOS、Linux(含 Arch Linux AUR)。', note: '不同平台能力會有差異,文件會單獨標示平台特定行為。' }, - { title: '系統托盤', desc: '最小化到系統托盤,讓伺服器在背景持續運行。', note: '長時間掛服更實用,可從系統匣快速還原視窗或退出。' }, ] diff --git a/zh-tw/server-jar.md b/zh-tw/server-jar.md index 6fc3c37..cfb3567 100644 --- a/zh-tw/server-jar.md +++ b/zh-tw/server-jar.md @@ -107,6 +107,7 @@ Pumpkin 與傳統 Bukkit/Paper 生態不同,當前主要風險是生態相容 ### 下載後如何使用? 1. 多數核心下載得到 `.jar` 檔案(Pumpkin 等專案可能提供可執行檔) -2. 在 Sea Lantern 中點擊「建立伺服器」 -3. 若是 `.jar` 直接匯入;若是可執行檔,請使用腳本啟動模式(`bat` / `sh`) -4. 詳細步驟請參考 [快速開始](/zh-tw/getting-started) +2. 在 Sea Lantern 中點擊「建立伺服器」,選擇匯入來源(JAR / 既有伺服器 / 啟動腳本) +3. 若是 `.jar` 可直接匯入;若是可執行檔,請使用腳本啟動模式(`bat` / `sh`) +4. 建立引導會嘗試自動識別開服方式;必要時可手動調整並填寫自訂開服命令 +5. 詳細步驟請參考 [快速開始](/zh-tw/getting-started) diff --git a/zh-tw/structure-full.md b/zh-tw/structure-full.md new file mode 100644 index 0000000..7a5fc76 --- /dev/null +++ b/zh-tw/structure-full.md @@ -0,0 +1,133 @@ +# 詳細目錄結構 + +> 依據 `SeaLantern-Studio/SeaLantern` 的 `v1.0.0` 標籤目錄(發布日期:2026-02-26)整理。 + +## 頂層目錄 + +```text +SeaLantern/ +├── .github/ +│ ├── ISSUE_TEMPLATE/ +│ ├── pull_request_template.md +│ └── workflows/ +│ ├── check.yml +│ ├── release.yml +│ ├── issue-check.yml +│ └── aur-publish.yml +├── docs/ +│ ├── AI_GUIDE.md +│ ├── CONTRIBUTING.md +│ └── STRUCTURE.md +├── src/ # Vue 3 + TypeScript 前端 +├── src-tauri/ # Rust + Tauri 2 後端 +├── Cargo.toml +├── package.json +├── pnpm-lock.yaml +├── README.md +└── README-en.md +``` + +## 前端結構(`src/`) + +### API 層(`src/api/`) + +```text +src/api/ +├── tauri.ts +├── server.ts +├── config.ts +├── settings.ts +├── player.ts +├── java.ts +├── system.ts +├── plugin.ts +├── mcs_plugins.ts +├── downloader.ts +├── update.ts +├── remoteLocales.ts +└── index.ts +``` + +### 元件層(`src/components/`) + +```text +src/components/ +├── common/ # 通用元件(SLButton/SLInput/SLSelect/SLTabs/SLDropzone 等) +├── layout/ # AppHeader/AppLayout/AppSidebar +├── console/ # ConsoleInput/ConsoleOutput/CommandModal +├── config/ # ConfigCategories/ConfigEntry/ConfigToolbar +├── plugin/ # PluginComponentRenderer/PluginPermissionPanel +├── splash/ # SplashScreen +├── views/ +│ ├── create/ # 建立流程拆分(workflow、startup utils、step 元件) +│ ├── home/ +│ ├── player/ +│ ├── settings/ +│ ├── paint/ +│ └── about/ +└── JavaDownloader.vue +``` + +### 視圖層(`src/views/`) + +```text +src/views/ +├── HomeView.vue +├── CreateServerView.vue +├── ConsoleView.vue +├── ConfigView.vue +├── PlayerView.vue +├── SettingsView.vue +├── PaintView.vue +├── AboutView.vue +├── MarketView.vue +├── DownloadFileView.vue +├── PluginsView.vue +├── PluginsPageView.vue +├── PluginCategoryView.vue +└── PluginPageView.vue +``` + +### 狀態與基礎能力 + +```text +src/ +├── stores/ # server/console/settings/plugin/ui/update/i18n 狀態 +├── composables/ # useAsync/useMessage/useTabIndicator/useAboutLinks 等 +├── language/ # 10 種語言 + index.ts +├── themes/ # default/midnight/ocean/rose/sunset +├── styles/ # variables/reset/typography/app + 分模組樣式 +├── types/ # common/plugin/server/theme +├── utils/ # constants/errorHandler/serverUtils/theme/version +├── data/ # contributors.ts +├── router/index.ts +├── App.vue +├── main.ts +└── style.css +``` + +## 後端結構(`src-tauri/`) + +```text +src-tauri/ +├── capabilities/default.json +├── tauri.conf.json +├── build.rs +├── Cargo.toml +└── src/ + ├── commands/ # server/player/java/settings/system/update/downloader/mcs_plugin 等 + ├── services/ # server_manager/server_installer/download_manager/java_detector 等 + ├── models/ # server/plugin/config/settings/download 模型 + ├── plugins/ # Lua 插件系統(api/loader/manager/runtime) + ├── utils/ # cli/path/downloader + ├── lib.rs + └── main.rs +``` + +## v1.0.0 結構變更重點 + +- 建立伺服器流程完整拆分至 `src/components/views/create/`。 +- 插件相關視圖與權限流程分層更清楚。 +- 下載能力在前後端都拆分為獨立模組。 +- `src/views/DownloadFileView.vue` 已納入路由視圖層。 +- CI 工作流收斂為 check、release、issue-check、AUR publish 四條主線。 diff --git a/zh-tw/structure.md b/zh-tw/structure.md index 0b068d8..51a336c 100644 --- a/zh-tw/structure.md +++ b/zh-tw/structure.md @@ -9,6 +9,14 @@ - **套件管理**: pnpm - **程式碼檢查**: oxlint + oxfmt +## v1.0.0 結構同步(2026-02-26) + +- 建立伺服器流程拆分到 `src/components/views/create/`,支援匯入來源、啟動方式偵測與自訂命令 +- 頁面子元件進一步模組化:`about/`、`home/`、`paint/`、`player/`、`settings/` +- API 層新增/完善:`src/api/downloader.ts`、`src/api/mcs_plugins.ts` +- 視圖層包含 `DownloadFileView.vue` 與插件多視圖(`PluginsView / PluginsPageView / PluginCategoryView / PluginPageView`) +- CI/CD 工作流目前為:`check.yml`、`release.yml`、`issue-check.yml`、`aur-publish.yml` + ## 目錄概覽 ``` @@ -42,3 +50,5 @@ SeaLantern/ │ └── Cargo.toml └── .github/workflows/ # CI/CD(檢查、建構、發佈) ``` + +[詳細目錄結構](/zh-tw/structure-full) diff --git a/zh-tw/tutorial.md b/zh-tw/tutorial.md index 71eef39..a04cc63 100644 --- a/zh-tw/tutorial.md +++ b/zh-tw/tutorial.md @@ -4,15 +4,21 @@ ## 建立第一個伺服器 -### 匯入伺服端 JAR +### 匯入來源(JAR / 既有伺服器 / 啟動腳本) 1. 點擊主介面的「建立伺服器」按鈕 -2. 在彈出的引導介面中,點擊「選擇檔案」匯入您的伺服端 JAR 檔案 +2. 在引導介面中選擇匯入來源:伺服端 JAR、既有伺服器目錄或啟動腳本(`bat` / `sh`) 3. 如果還沒有伺服端,請參考 [伺服端核心取得](/zh-tw/server-jar) +### 啟動方式偵測與自訂命令 + +- Sea Lantern 會依匯入內容智慧偵測啟動方式 +- 若偵測結果不符合預期,可手動切換並填寫自訂開服命令 +- 建立流程支援整合包自動安裝,降低首次開服手動操作 + ### 選擇 Java 版本 -匯入 JAR 後,Sea Lantern 會列出系統中已偵測到的 Java 版本。選擇與您的 Minecraft 版本相符的 Java: +完成匯入後,Sea Lantern 會列出系統中已偵測到的 Java 版本。選擇與您的 Minecraft 版本相符的 Java: | Minecraft 版本 | 推薦 Java | |---------------|----------| diff --git a/zh/changelog.md b/zh/changelog.md index 96cfef1..bb8a0c5 100644 --- a/zh/changelog.md +++ b/zh/changelog.md @@ -2,7 +2,29 @@ [GitHub Releases](https://github.com/SeaLantern-Studio/SeaLantern/releases) -## v0.6.5 +## v1.0.0 + +[GitHub Release](https://github.com/SeaLantern-Studio/SeaLantern/releases/tag/v1.0.0) + +> 2026-02-26 + +### 重点新增 +- 新建服务器流程升级:支持整合包自动安装、智能识别开服方式、可自定义开服命令 +- 新增导入能力,可将已有服务器/启动文件接入 Sea Lantern 管理 +- 插件系统与插件市场持续增强:权限面板、状态保留、下载失败提示等体验改进 +- Java 检测路径扩展,常见安装目录识别率更高,缺失时支持一键下载安装 +- 首页图表能力升级(ECharts),状态展示更直观 + +### 稳定性与工程 +- 持续完善 i18n,替换硬编码文本并修复多语言显示细节 +- 修复创建流程、插件权限面板、拖拽框、窗口恢复等问题 +- 重构 Settings/Home/Player/Paint 等核心页面,降低耦合,提升可维护性 +- CI/CD 与质量检查链路重构,发布流程更清晰 +- 发布资产新增 ARM 架构支持(含 Windows/Linux) + +--- + +## v0.6.5 [GitHub Release](https://github.com/SeaLantern-Studio/SeaLantern/releases/tag/sea-lantern-v0.6.5) diff --git a/zh/download.md b/zh/download.md index b24c514..ebac349 100644 --- a/zh/download.md +++ b/zh/download.md @@ -13,12 +13,18 @@ import { VERSION, RELEASE_BASE } from '../.vitepress/version' 当前最新版本: v{{ VERSION }} +::: tip 架构支持更新(v1.0.0+) +Windows 和 Linux 现已提供 ARM64 安装包,可按你的设备架构选择下载。 +::: + ## Windows | 格式 | 说明 | |------|------| | EXE 安装包 | 推荐,双击安装 | | MSI 安装包 | Windows Installer 格式 | +| EXE 安装包 (ARM64) | 适用于 Windows on ARM | +| MSI 安装包 (ARM64) | Windows Installer (ARM64) | ## macOS @@ -26,15 +32,20 @@ import { VERSION, RELEASE_BASE } from '../.vitepress/version' |------|------| | DMG (Apple Silicon) | M1 / M2 / M3 / M4 | | DMG (Intel) | x64 架构 | +| app.tar.gz (Apple Silicon) | 便携压缩包 | +| app.tar.gz (Intel) | 便携压缩包 | ## Linux | 格式 | 说明 | |------|------| | DEB | Debian / Ubuntu | -| RPM | Fedora / RHEL | +| DEB (ARM64) | Debian / Ubuntu ARM64 | +| RPM | Fedora / RHEL (x86_64) | +| RPM (ARM64) | Fedora / RHEL (aarch64) | | AppImage | 通用格式 | -| pkg.tar.zst | Archlinux可安装包| +| AppImage (ARM64) | 通用格式 (ARM64) | +| pkg.tar.zst | Arch Linux 可安装包 (x86_64) | Arch Linux 用户可通过 AUR 安装,例如: diff --git a/zh/features.md b/zh/features.md index 1bb624e..cd93a61 100644 --- a/zh/features.md +++ b/zh/features.md @@ -32,6 +32,7 @@ - 插件权限管理面板 - 插件运行时沙箱隔离 - 支持插件安装、启用/禁用与删除 +- 提供插件市场入口,支持下载失败提示和状态保留 ## 主题系统 @@ -55,6 +56,7 @@ - 自动检测系统中已安装的 Java 运行时 - 内置 Java 下载器,支持一键安装所需版本 - 支持手动指定 Java 路径并进行可用性校验 +- 扩展常见安装目录扫描路径,降低“已安装但未识别”的情况 ## Mod 管理 @@ -66,6 +68,9 @@ - 引导式流程创建新服务器,降低新手配置门槛 - 支持 `jar` / `bat` / `sh` 启动模式 +- 支持导入已有服务器或启动文件 +- 智能检测开服方式,并支持自定义开服命令 +- 可在创建流程中自动安装整合包 - 首次启动可引导完成 EULA 相关步骤 ## 安全退出 diff --git a/zh/getting-started.md b/zh/getting-started.md index 5f85b11..a33f54e 100644 --- a/zh/getting-started.md +++ b/zh/getting-started.md @@ -22,7 +22,7 @@ Arch Linux 用户可通过 AUR 安装(见下载页 Linux 小节)。 ## 2. 获取服务端核心 -你需要一个 Minecraft 服务端 JAR 文件来创建服务器。如果你还没有,请参考 [核心获取](/zh/server-jar) 页面下载。 +你可以使用 Minecraft 服务端 JAR 创建新服务器,也可以直接导入已有服务器目录或启动脚本。如果你还没有核心文件,请参考 [核心获取](/zh/server-jar) 页面下载。 ::: tip 推荐 对于大多数玩家,推荐使用 [Paper](https://papermc.io/downloads/paper) — 性能优秀、插件生态丰富。 @@ -42,10 +42,11 @@ Minecraft 不同版本对 Java 的要求不同: ## 4. 创建服务器 1. 点击「创建服务器」按钮 -2. 导入你下载的服务端 JAR 文件 -3. 选择 Java 运行时版本 -4. 为你的服务器命名 -5. 首次启动时需要同意 Minecraft EULA +2. 选择导入来源(JAR、已有服务器或启动脚本) +3. 按向导完成启动方式检测;如有需要可自定义开服命令 +4. 选择 Java 运行时版本(缺失时可一键安装) +5. 为你的服务器命名并确认参数 +6. 首次启动时需要同意 Minecraft EULA ## 5. 启动服务器 diff --git a/zh/intro.md b/zh/intro.md index f791fbc..1447a4f 100644 --- a/zh/intro.md +++ b/zh/intro.md @@ -5,15 +5,15 @@ const featureItems = [ { title: '实时控制台', desc: '实时查看服务器日志,直接输入命令,支持命令历史。', note: '适合排查启动报错和日常运维,不必频繁切换外部终端。' }, { title: '图形化配置', desc: 'server.properties 可视化编辑,按分类组织,减少手改文件。', note: '常见参数可快速定位;涉及重启生效的项仍遵循服务端规则。' }, { title: '玩家管理', desc: '白名单、封禁、OP 一键操作,常用管理集中在一个入口。', note: '在线状态与权限操作集中展示,减少手动记忆复杂指令。' }, - { title: '插件系统', desc: '基于 Lua 脚本扩展,支持自定义 UI 组件和右键菜单。', note: '偏向本地扩展与工具增强,复杂生态仍建议结合服务端原生方案。' }, + { title: '插件系统', desc: '基于 Lua 脚本扩展,支持自定义 UI 组件、右键菜单与插件市场。', note: '插件权限面板与市场体验在 v1.0.0 持续优化,状态保留更稳定。' }, + { title: '创建流程 2.0', desc: '支持 JAR/脚本/已有服务器导入,智能识别开服方式并可自定义命令。', note: '可在创建阶段自动安装整合包,减少首次开服的手动配置量。' }, { title: '主题系统', desc: '内置 5 套主题,支持明暗模式;Windows 支持亚克力效果。', note: '主题切换不影响功能布局,主要改变视觉风格与可读性。' }, { title: '多语言支持', desc: '内置 10 种语言,覆盖中文、英语、日语、韩语等。', note: '支持运行时切换语言,常用术语在界面与文档中尽量保持一致。' }, - { title: 'Java 管理', desc: '自动检测已安装 Java,并支持一键下载安装。', note: '可直接复用已有 JDK,也可在应用内快速补齐运行环境。' }, + { title: 'Java 管理', desc: '自动检测已安装 Java,并支持一键下载安装。', note: '扫描路径在 v1.0.0 扩展,常见安装目录的识别率更高。' }, { title: 'Mod 管理', desc: '查看服务端已安装的 Mod/插件,并提供基础管理能力。', note: '当前以本地查看与基础维护为主,便于先排查冲突再调整。' }, { title: '安全退出', desc: '关闭软件时自动停止服务器,降低存档损坏风险。', note: '避免直接强制结束进程,减少世界与玩家数据异常概率。' }, { title: '自动更新', desc: '检查新版本并跳转下载页面(Arch Linux 使用 AUR 更新)。', note: '桌面端以下载引导为主,不会在后台静默覆盖你的安装。' }, { title: '跨平台', desc: '支持 Windows、macOS、Linux(含 Arch Linux AUR)。', note: '各平台能力存在差异,文档会单独标注平台特定行为。' }, - { title: '系统托盘', desc: '最小化到系统托盘,后台保持服务器运行。', note: '长时间挂服场景更实用,可从托盘快速恢复窗口或退出。' }, ] diff --git a/zh/server-jar.md b/zh/server-jar.md index 7c58579..867fe6a 100644 --- a/zh/server-jar.md +++ b/zh/server-jar.md @@ -106,6 +106,7 @@ Pumpkin 与传统 Bukkit/Paper 生态不同,当前主要风险是生态兼容 ### 下载后如何使用? 1. 大多数核心下载得到 `.jar` 文件(Pumpkin 等项目可能提供可执行文件) -2. 在 Sea Lantern 中点击「创建服务器」 -3. 若是 `.jar`,直接导入 JAR;若是可执行文件,请用脚本启动模式(`bat` / `sh`) -4. 详细步骤请参考 [快速开始](/zh/getting-started) +2. 在 Sea Lantern 中点击「创建服务器」,选择导入来源(JAR / 既有服务器 / 启动脚本) +3. 若是 `.jar` 可直接导入;若是可执行文件,请使用脚本模式(`bat` / `sh`) +4. 创建向导会尝试自动识别开服方式;必要时可手动调整并填写自定义开服命令 +5. 详细步骤请参考 [快速开始](/zh/getting-started) diff --git a/zh/structure-full.md b/zh/structure-full.md new file mode 100644 index 0000000..c6f06fe --- /dev/null +++ b/zh/structure-full.md @@ -0,0 +1,133 @@ +# 详细目录结构 + +> 基于 `SeaLantern-Studio/SeaLantern` 的 `v1.0.0` 标签目录(发布日期:2026-02-26)整理。 + +## 顶层目录 + +```text +SeaLantern/ +├── .github/ +│ ├── ISSUE_TEMPLATE/ +│ ├── pull_request_template.md +│ └── workflows/ +│ ├── check.yml +│ ├── release.yml +│ ├── issue-check.yml +│ └── aur-publish.yml +├── docs/ +│ ├── AI_GUIDE.md +│ ├── CONTRIBUTING.md +│ └── STRUCTURE.md +├── src/ # Vue 3 + TS 前端 +├── src-tauri/ # Rust + Tauri 2 后端 +├── Cargo.toml +├── package.json +├── pnpm-lock.yaml +├── README.md +└── README-en.md +``` + +## 前端结构(`src/`) + +### API 层(`src/api/`) + +```text +src/api/ +├── tauri.ts +├── server.ts +├── config.ts +├── settings.ts +├── player.ts +├── java.ts +├── system.ts +├── plugin.ts +├── mcs_plugins.ts +├── downloader.ts +├── update.ts +├── remoteLocales.ts +└── index.ts +``` + +### 组件层(`src/components/`) + +```text +src/components/ +├── common/ # 通用组件(SLButton/SLInput/SLSelect/SLTabs/SLDropzone 等) +├── layout/ # AppHeader/AppLayout/AppSidebar +├── console/ # ConsoleInput/ConsoleOutput/CommandModal +├── config/ # ConfigCategories/ConfigEntry/ConfigToolbar +├── plugin/ # PluginComponentRenderer/PluginPermissionPanel +├── splash/ # SplashScreen +├── views/ +│ ├── create/ # 创建流程拆分(workflow、startup utils、step 组件) +│ ├── home/ +│ ├── player/ +│ ├── settings/ +│ ├── paint/ +│ └── about/ +└── JavaDownloader.vue +``` + +### 页面层(`src/views/`) + +```text +src/views/ +├── HomeView.vue +├── CreateServerView.vue +├── ConsoleView.vue +├── ConfigView.vue +├── PlayerView.vue +├── SettingsView.vue +├── PaintView.vue +├── AboutView.vue +├── MarketView.vue +├── DownloadFileView.vue +├── PluginsView.vue +├── PluginsPageView.vue +├── PluginCategoryView.vue +└── PluginPageView.vue +``` + +### 状态与基础能力 + +```text +src/ +├── stores/ # server/console/settings/plugin/ui/update/i18n 等状态 +├── composables/ # useAsync/useMessage/useTabIndicator/useAboutLinks 等 +├── language/ # 10 种语言 + index.ts +├── themes/ # default/midnight/ocean/rose/sunset +├── styles/ # variables/reset/typography/app + 分模块样式 +├── types/ # common/plugin/server/theme +├── utils/ # constants/errorHandler/serverUtils/theme/version +├── data/ # contributors.ts +├── router/index.ts +├── App.vue +├── main.ts +└── style.css +``` + +## 后端结构(`src-tauri/`) + +```text +src-tauri/ +├── capabilities/default.json +├── tauri.conf.json +├── build.rs +├── Cargo.toml +└── src/ + ├── commands/ # server/player/java/settings/system/update/downloader/mcs_plugin 等 + ├── services/ # server_manager/server_installer/download_manager/java_detector 等 + ├── models/ # server/plugin/config/settings/download 等模型 + ├── plugins/ # Lua 插件系统(api/loader/manager/runtime) + ├── utils/ # cli/path/downloader + ├── lib.rs + └── main.rs +``` + +## 目前结构变化重点(v1.0.0) + +- 创建流程拆分至 `src/components/views/create/`,覆盖导入来源、启动识别、自定义命令。 +- 插件体系拆分为市场视图与权限面板,多页面结构更清晰。 +- 下载能力前后端都新增独立模块(`src/api/downloader.ts`、`src-tauri/src/commands/downloader.rs`)。 +- `src/views/DownloadFileView.vue` 已加入路由视图层。 +- CI 工作流收敛为检查、发布、Issue 检查、AUR 发布四条主线。 diff --git a/zh/structure.md b/zh/structure.md index 56bfe44..d19ba71 100644 --- a/zh/structure.md +++ b/zh/structure.md @@ -9,6 +9,14 @@ - **包管理**: pnpm - **代码检查**: oxlint + oxfmt +## v1.0.0 结构同步(2026-02-26) + +- 创建流程拆分到 `src/components/views/create/`,支持导入来源、启动方式识别与自定义命令 +- 页面子组件进一步模块化:`about/`、`home/`、`paint/`、`player/`、`settings/` +- API 层新增/完善:`src/api/downloader.ts`、`src/api/mcs_plugins.ts` +- 视图层包含 `DownloadFileView.vue` 与插件页多视图(`PluginsView / PluginsPageView / PluginCategoryView / PluginPageView`) +- CI/CD 工作流当前为:`check.yml`、`release.yml`、`issue-check.yml`、`aur-publish.yml` + ## 目录概览 ``` @@ -43,4 +51,4 @@ SeaLantern/ └── .github/workflows/ # CI/CD(检查、构建、发布) ``` -[详细目录结构](/STRUCTURE.md) \ No newline at end of file +[详细目录结构](/zh/structure-full) diff --git a/zh/tutorial.md b/zh/tutorial.md index 85904e1..6623c9d 100644 --- a/zh/tutorial.md +++ b/zh/tutorial.md @@ -4,15 +4,21 @@ ## 创建第一个服务器 -### 导入服务端 JAR +### 导入来源(JAR / 已有服务器 / 启动脚本) 1. 点击主界面的「创建服务器」按钮 -2. 在弹出的引导界面中,点击「选择文件」导入你的服务端 JAR 文件 +2. 在引导界面选择导入来源:服务端 JAR、已有服务器目录或启动脚本(`bat` / `sh`) 3. 如果还没有服务端,请参考 [核心获取](/zh/server-jar) +### 启动方式识别与自定义命令 + +- Sea Lantern 会根据导入内容智能识别启动方式 +- 当识别结果不符合预期时,你可以手动切换并填写自定义开服命令 +- 创建流程支持整合包自动安装,减少首次开服的手动步骤 + ### 选择 Java 版本 -导入 JAR 后,Sea Lantern 会列出系统中已检测到的 Java 版本。选择与你的 Minecraft 版本匹配的 Java: +完成导入后,Sea Lantern 会列出系统中已检测到的 Java 版本。选择与你的 Minecraft 版本匹配的 Java: | Minecraft 版本 | 推荐 Java | |---------------|----------|