GameServerManager/server/data/plugins/README.md
2025-07-12 11:09:14 +08:00

216 lines
No EOL
5.5 KiB
Markdown
Raw Permalink 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.

# GSM3 插件目录
欢迎使用 GSM3 插件系统!这个目录包含了插件开发所需的所有资源和文档。
## 📁 目录结构
```
plugins/
├── README.md # 本文件 - 插件目录说明
├── 插件开发文档.md # 完整的插件开发指南
├── 插件模板.md # 快速开始模板
└── example-plugin/ # 示例插件目录
├── plugin.json # 插件配置文件
├── index.html # 主界面文件
└── gsm3-api.js # API客户端库
```
## 🚀 快速开始
### 1. 查看示例插件
首先访问 `example-plugin` 目录,这是一个功能完整的示例插件,展示了:
- 插件基本结构
- API调用方法
- 用户界面设计
- 错误处理
- 最佳实践
### 2. 阅读开发文档
查看 [插件开发文档.md](./插件开发文档.md) 了解:
- 插件系统架构
- 配置文件格式
- 可用API列表
- 开发最佳实践
- 调试和测试方法
### 3. 使用模板快速开发
参考 [插件模板.md](./插件模板.md) 快速创建您的第一个插件:
1. 复制模板代码
2. 修改配置信息
3. 自定义界面和功能
4. 测试和调试
## 📚 文档说明
### 插件开发文档.md
这是最完整的开发指南,包含:
- **插件结构**: 文件组织和命名规范
- **配置文件**: plugin.json 详细说明
- **API参考**: 所有可用API方法和参数
- **开发实践**: 代码规范和性能优化
- **调试指南**: 常见问题和解决方案
### 插件模板.md
提供了一个最小化的插件模板,适合:
- 初学者快速上手
- 创建简单功能插件
- 作为新项目的起点
### 示例插件 (example-plugin)
这是一个功能齐全的示例,展示了:
- **系统信息API**: 获取系统状态和信息
- **实例管理API**: 创建、启动、停止、删除实例
- **文件操作API**: 读写文件、目录操作
- **终端管理API**: 终端会话和进程管理
- **用户界面**: 现代化的响应式设计
- **错误处理**: 完善的异常处理机制
## 🛠️ 开发流程
### 第一步:环境准备
1. 确保 GSM3 服务器正在运行
2.`plugins` 目录下创建新的插件文件夹
3. 从示例插件复制 `gsm3-api.js` 文件
### 第二步:创建插件
1. 创建 `plugin.json` 配置文件
2. 创建 `index.html` 主界面文件
3. 根据需要添加其他资源文件
### 第三步:开发和测试
1. 编写插件逻辑和界面
2. 使用浏览器开发者工具调试
3. 测试各种API调用和错误情况
### 第四步:优化和发布
1. 优化性能和用户体验
2. 完善错误处理和用户提示
3. 编写插件说明文档
## 🎯 API 功能概览
GSM3 插件系统提供了丰富的API接口
### 系统管理
- `getSystemStatus()` - 获取系统状态
- `getSystemInfo()` - 获取系统信息
- `healthCheck()` - 健康检查
- `getVersion()` - 获取版本信息
### 实例管理
- `getInstances()` - 获取实例列表
- `getInstance(id)` - 获取实例详情
- `createInstance(config)` - 创建新实例
- `startInstance(id)` - 启动实例
- `stopInstance(id)` - 停止实例
- `restartInstance(id)` - 重启实例
- `deleteInstance(id)` - 删除实例
### 文件操作
- `readFile(path)` - 读取文件
- `writeFile(path, content)` - 写入文件
- `listDirectory(path)` - 列出目录
- `createDirectory(path)` - 创建目录
- `deleteFile(path)` - 删除文件
- `copy(src, dest)` - 复制文件
- `move(src, dest)` - 移动文件
### 终端管理
- `getTerminals()` - 获取终端列表
- `getTerminalSessions()` - 获取终端会话
- `getTerminalStats()` - 获取终端统计
- `updateTerminalSessionName()` - 更新会话名称
## 🔧 开发工具
### 浏览器开发者工具
使用 F12 打开开发者工具:
- **Console**: 查看日志和错误信息
- **Network**: 监控API请求和响应
- **Elements**: 调试HTML和CSS
- **Sources**: 调试JavaScript代码
### 调试技巧
```javascript
// 启用详细日志
console.log('API调用参数:', params);
console.log('API响应结果:', result);
// 错误处理
try {
const result = await api.someMethod();
console.log('成功:', result);
} catch (error) {
console.error('失败:', error);
}
```
## 📋 最佳实践
### 1. 代码组织
- 保持文件结构清晰
- 使用有意义的函数和变量名
- 添加适当的注释
### 2. 错误处理
- 为所有API调用添加错误处理
- 提供用户友好的错误信息
- 记录详细的调试信息
### 3. 用户体验
- 使用响应式设计
- 提供加载状态指示
- 确保操作反馈及时
### 4. 性能优化
- 避免频繁的API调用
- 使用适当的缓存策略
- 优化大数据的显示
## 🆘 常见问题
### Q: 插件不显示怎么办?
A: 检查 `plugin.json` 格式,确保 `enabled: true` 且文件路径正确。
### Q: API调用失败
A: 检查网络连接查看浏览器控制台错误信息确认API方法名和参数正确。
### Q: 如何调试插件?
A: 使用浏览器开发者工具,查看控制台日志和网络请求。
### Q: 插件如何与主系统通信?
A: 通过 `gsm3-api.js` 提供的API方法所有通信都通过HTTP请求完成。
## 📞 技术支持
如果您在开发过程中遇到问题:
1. 查看示例插件的实现
2. 阅读开发文档的相关章节
3. 检查浏览器控制台的错误信息
4. 联系GSM3开发团队获取支持
---
**祝您开发愉快!** 🎉
如果您创建了有趣的插件,欢迎分享给社区!