# PluginPilot
一个全面的 Minecraft 服务器插件管理器,支持多个插件仓库并提供高级插件管理功能。
## 功能
### 核心功能
- **多源安装**: 从 Modrinth、Hangar、SpigotMC、Polymart 和自定义来源安装插件
- **实时搜索**: 具有缓存和智能自动补全的实时插件搜索
- **版本管理**: 安装特定版本、更新插件和自动更新
- **高级自动补全**: 通过实时 API 搜索和“加载中...”反馈,提供动态自动补全
- **插件备份**: 在更新前自动备份,并具有回滚功能
- **安全扫描**: 集成恶意软件扫描 (开发中)
- **数据库存储**: 基于 SQLite 的持久性存储用于插件元数据
### 命令系统
所有命令都支持广泛的自动补全:
#### 插件安装和管理
- `/pp install <插件> [版本]` - 下载并启用插件
- `/pp download <插件> [版本]` - 下载插件而不启用它
- `/pp show <插件>` - 预览插件信息
- `/pp update <插件>` - 更新单个插件
- `/pp updateall` - 更新所有管理的插件
- `/pp remove <插件>` - 卸载插件
- `/pp delete <插件>` - 删除插件文件
#### 插件加载和卸载
- `/pp load <插件>` - 从插件目录加载插件
- `/pp unload <插件>` - 卸载插件
- `/pp reload <插件>` - 重新加载特定插件
#### 备份和安全
- `/pp backup <插件>` - 创建插件备份
- `/pp restore <插件> [版本]` - 从备份恢复
- `/pp scan <插件>` - 安全扫描插件
#### 信息和发现
- `/pp list` - 列出所有管理的插件
- `/pp detect` - 查找未管理的插件
- `/pp discover` - 发现流行的插件
- `/pp info` - 显示插件信息
#### 系统和配置
- `/pp logs` - 查看、导出或清除插件日志
- `/pp sources` - 管理插件仓库
- `/pp refreshconfig` - 重新加载 PluginPilot 配置
- `/pp clearcache` - 清除插件搜索缓存
- `/pp debug` - 切换调试模式
- `/pp import` - 从其他管理器导入插件
### 高级自动补全
该插件具有智能异步自动补全功能:
- 在搜索 API 时显示“正在加载...”
- 缓存结果以减少 API 调用
- 提供实时插件名称建议
- 支持所选插件的版本补全
- 限制搜索速率以防止 API 垃圾邮件
## 技术细节
### 要求
- **Minecraft 版本**: 1.21.4 (兼容高达 1.21.8)
- **Java 版本**: 17+
- **API 版本**: 1.21
### 架构
- **模块化设计**: 具有专用包的职责分离
- **异步操作**: 非阻塞 API 调用和下载
- **缓存系统**: 智能缓存和 TTL,以提高性能
- **数据库集成**: SQLite 用于可靠的数据持久性
- **插件来源**: 扩展的来源系统,支持多个 API
### 支持的来源
- ✅ **Modrinth**: 完全集成了 API,具有搜索、版本和下载功能
- ✅ **Hangar**: PaperMC 的插件仓库,提供完整支持
- ⚠️ **SpigotMC**: 有限 (没有用于自动下载的公共 API)
- 🚧 **Polymart**: 计划实施
- 🚧 **自定义来源**: GitHub、Jenkins、直接 URL (计划中)
## 安装
1. 下载 PluginPilot JAR 文件
2. 将其放置在服务器的 `plugins` 文件夹中
3. 启动/重启服务器
4. 在 `plugins/PluginPilot/config.yml` 中配置插件
5. 使用 `/pp help` 查看可用命令
## 配置
插件可以通过 `config.yml` 进行高度配置:
- 启用/禁用特定的插件来源
- 配置自动更新间隔
- 设置缓存 TTL 值
- 配置安全扫描
- 自定义自动补全行为
## 权限
- `pluginpilot.*` - 所有权限
- `pluginpilot.use` - 基本使用权限
- `pluginpilot.install` - 安装和下载插件
- `pluginpilot.update` - 更新插件
- `pluginpilot.uninstall` - 卸载插件
- `pluginpilot.load` - 加载/卸载/重新加载插件
- `pluginpilot.backup` - 备份/恢复插件
- `pluginpilot.security` - 安全扫描
- `pluginpilot.sources` - 管理来源
- `pluginpilot.debug` - 访问日志和调试信息
- `pluginpilot.discover` - 发现流行的插件
- `pluginpilot.import` - 从其他管理器导入插件
- `pluginpilot.clearcache` - 清除插件搜索缓存
- `pluginpilot.refreshconfig` - 重新加载插件配置
## 开发
使用现代 Java 17 特性构建,采用 Maven:
- Async/CompletableFuture 用于非阻塞操作
- Stream API 用于高效的数据处理
- 现代 HTTP 客户端 (OkHttp) 用于 API 调用
- GSON 用于 JSON 处理
- SQLite 用于数据持久性
## 贡献
此插件采用模块化架构,使其易于:
- 添加新的插件来源
- 扩展命令功能
- 改进缓存系统
- 添加新的安全功能