# FunConnect Client Minecraft 联机桌面客户端,基于 Electron 构建,支持 Windows / macOS / Linux。 ## 功能 - **连接服务器** - 输入中继服务器地址一键连接 - **浏览房间** - 查看所有在线联机房间 - **创建房间** - 将本地 MC 服务器共享给好友 - **加入房间** - 输入房间号,自动建立本地代理 - **设置持久化** - 记住服务器地址、玩家名、端口等偏好 - **系统托盘** - 最小化到托盘,后台运行 - **自动重连** - 连接断开后自动尝试重新连接 ## 快速开始 ### 安装依赖 ```bash npm install ``` > 如果 Electron 下载慢,使用国内镜像: > ```bash > ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm install > ``` ### 开发模式 ```bash npm run dev ``` ### 打包发布 ```bash npm run dist # 输出到 release/ 目录 ``` ## 使用方法 ### 房主(创建房间) 1. 启动客户端,输入中继服务器地址并连接 2. 进入「创建房间」页面 3. 填写房间名称、本地MC端口(默认25565)、游戏版本等信息 4. 点击「创建房间」,获得房间号 5. 将房间号分享给好友 ### 玩家(加入房间) 1. 启动客户端,输入中继服务器地址并连接 2. 进入「加入房间」或在「房间列表」中点击加入 3. 输入房间号和中继服务器地址 4. 连接成功后,在 Minecraft 中添加服务器 `127.0.0.1:25566` 5. 开始联机! ## 项目结构 ``` client/ ├── src/main/ │ ├── index.ts # Electron 主进程 │ ├── preload.ts # 预加载脚本(IPC桥接) │ ├── api-client.ts # REST API 客户端 │ ├── relay-client.ts # TCP 中继连接 │ └── local-proxy.ts # 本地代理服务器 ├── renderer/ │ ├── index.html # 客户端界面 │ ├── style.css # 样式 │ └── app.js # 交互逻辑 ├── package.json └── tsconfig.json ``` ## 配置说明 设置页面中可配置: | 设置项 | 默认值 | 说明 | |--------|--------|------| | 玩家名称 | Player | 在房间中显示的名字 | | 本地端口 | 25566 | MC连接的本地代理端口 | | 自动重连 | 开启 | 连接断开后自动重连 | | 最小化到托盘 | 开启 | 关闭窗口时隐藏到系统托盘 | ## 技术栈 - **Electron 28** - 跨平台桌面框架 - **TypeScript** - 主进程开发 - **electron-store** - 设置持久化 - **Axios** - HTTP 请求 - **electron-builder** - 打包发布