Files
computer-craft-web-file/README.md
2025-12-01 18:30:58 +08:00

197 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CC:Tweaked 远程文件编辑器
一个专为 ComputerCraft: Tweaked (CC:Tweaked) 设计的远程文件编辑器,支持实时文件管理和代码编辑。
Demo : http://cc-web-edit.liulikeji.cn
你可以直接使用 Demo这是开放的但你也可以部署自己的服务器
## 🌟 特性
### 核心功能
- **远程文件管理**:实时浏览、编辑和管理 CC:Tweaked 计算机中的文件
- **Monaco 编辑器**:基于 VS Code 的 Monaco 编辑器,提供专业的代码编辑体验
- **WebSocket 通信**:低延迟的双向通信,确保操作的实时性
### 文件操作
- ✅ 文件/文件夹创建、重命名、删除
- ✅ 文本文件在线编辑和保存
- ✅ 文件上传(支持多文件,最大 1MB
- ✅ 文件下载到本地
- ✅ 二进制文件识别(非文本文件显示为 `[binary]`
### CC:Tweaked 集成
- **自动命令生成**:根据 URL 参数自动生成连接命令
- **一键复制**:点击即可复制连接命令到剪贴板
- **房间管理**:支持创建和加入房间
- **心跳保活**:自动维持连接稳定性
## 🚀 快速开始
### 项目结构
```
项目根目录/
├── PyServer/ # Python 后端服务器
│ ├── main.py # 主服务器文件
│ └── static/ # 静态文件目录(需手动创建)
│ └── Client/
│ └── cc/
│ └── main.lua # CC:Tweaked 客户端脚本
├── Frontend1/ # Vue 前端项目
│ ├── src/
│ │ ├── App.vue # 主组件
│ │ └── mock-server.ts # WebSocket 客户端
│ └── package.json
└── Client/ # 客户端文件
└── main.lua # CC:Tweaked 客户端脚本
```
### 部署步骤
1. **部署后端服务器**
```bash
# 进入后端目录
cd PyServer
# 创建静态文件目录
mkdir -p static/Client/cc
# 复制客户端脚本到静态目录
cp ../Client/main.lua static/Client/cc/main.lua
# 安装依赖
pip install -r requirements.txt
# 启动服务器需要管理员权限绑定80端口
python main.py
```
服务器将启动:
- HTTP 服务:端口 80文件服务和 API
- WebSocket 服务:端口 81实时通信
2. **构建前端项目**
```bash
# 进入前端目录
cd Frontend1
# 安装依赖
npm install
# 构建生产版本
npm run build
# 将构建产物复制到后端静态目录
cp -r dist/* ../PyServer/static/
```
3. **访问编辑器**
打开浏览器访问 `http://你的服务器地址` 即可使用编辑器。
### CC:Tweaked 客户端连接
1. **获取连接命令**
- 访问编辑器页面会自动创建房间
- 在页面底部点击命令文本即可复制连接命令
2. **在游戏中运行**
```lua
# 粘贴复制的命令到CC:Tweaked计算机
# 命令格式类似:wget run http://服务器地址/Client/cc/main.lua ws://服务器ws地址 房间ID
```
3. **刷新文件列表**
- 在 CC 客户端连接成功后
- 返回编辑器页面点击刷新按钮即可看到文件列表
## 🔧 功能说明
### 当前支持的功能
- 📁 文件系统浏览和操作
- 📝 文本文件在线编辑
- ⬆️ 文件上传≤1MB
- ⬇️ 文件下载到本地
- 🔄 实时文件同步
### 限制说明
- **二进制文件**:非文本文件会显示为 `[binary]`,无法在线编辑
- **单客户端**:目前主要支持一个网页端和一个 CC 客户端的配对使用
- **文件大小**:上传文件限制为 1MB
### 计划功能
- 🚧 远程控制台(后续开发)
- 🚧 改进的多客户端支持
## ⚙️ API 接口
### WebSocket 消息类型
- `join_room` - 加入房间
- `file_operation` - 文件操作请求
- `file_operation_response` - 文件操作响应
- `ping/pong` - 心跳检测
### 文件操作类型
- `fetch_files` - 获取文件列表
- `create_or_save_file` - 创建/保存文件
- `new_file` - 创建新文件
- `new_folder` - 创建新文件夹
- `rename` - 重命名文件/文件夹
- `delete_file` - 删除文件/文件夹
## 🎯 使用流程
1. **访问编辑器**:打开服务器地址,自动创建房间
2. **复制命令**:点击编辑器主页的 CC:Tweaked 命令文本,复制到剪贴板
3. **CC 端连接**:在游戏中粘贴并运行命令
4. **刷新列表**:在编辑器中刷新文件列表
5. **开始编辑**:浏览和编辑 CC 计算机中的文件
## 🔒 注意事项
1. **权限要求**:服务器需要绑定 80 端口
2. **网络访问**:确保 CC:Tweaked 计算机可以访问你的服务器
3. **文件安全**:操作会直接影响游戏内计算机的文件系统
## 🐛 常见问题
**Q: 无法访问编辑器页面**
A: 检查服务器是否正常启动80 端口是否被占用
**Q: CC 端连接失败**
A: 检查网络连通性,确保游戏内计算机可以访问服务器
**Q: 文件列表为空**
A: 确保 CC 客户端已成功连接,然后刷新文件列表
**Q: 文件上传失败**
A: 检查文件大小是否超过 1MB 限制
## 📄 技术说明
- **后端**Python + WebSocket
- **前端**Vue 3 + TypeScript + Monaco Editor
- **通信**WebSocket 实时双向通信
- **客户端**CC:Tweaked Lua 脚本
## 🤝 开发说明
该项目目前主要支持远程代码编辑功能,远程控制台功能计划在后续版本中开发。
---
**注意**: 本项目主要用于 CC:Tweaked 的远程开发调试,请确保遵守游戏和模组的使用条款。