fabricbukkitloader
A Paper 1.21 plugin that allows the server to load mods for Fabric 1.21.
fabricbukkitloader
Plugin description
Features
A Paper 1.21+ plugin that enables servers to load Fabric 1.21+ mods. - 🔄 Management Interface - Load and run Fabric mods on Paper servers - ⚙️ Management Interface - Flexible configuration system with hot reload support - 🎮 Management Interface - Automatically converts Bukkit events to Fabric event format - ⌨️ Management Interface - Supports Fabric mod commands running on Paper servers - 🔒 Management Interface - Whitelist/blacklist system, plugin signature verification - 📊 Management Interface - Convenient management commands and monitoring features
Installation
Prerequisites
- Paper 1.21+ server - Java 21 - Maven 3.6+ (for compilation)
Installation Steps
1. Download Plugin - Download `FabricBukkitLoader-1.0.0.jar` from the releases page - Or use the pre-compiled jar file in this project
2. Install Plugin - Place `FabricBukkitLoader-1.0.0.jar` in your server's `plugins` folder - Start the server, the plugin will automatically generate configuration files
3. Configure Plugin - Edit the `plugins/FabricBukkitLoader/config.yml` configuration file - Make necessary settings (see configuration instructions)
4. Add Fabric Mods - Place Fabric mod `.jar` files in the `mods/` folder in the server root directory - Restart the server or use the `/fabricloader reload` command to load mods
Configuration
Main Configuration File (`config.yml`)
```yaml
Enable/disable plugin loading
enable-plugin-loading: true
Enable/disable debug logging
debug-logging: false
Mods directory path (relative to server root)
mods-directory: "mods"
Auto reload plugins
auto-reload-plugins: true
Maximum number of plugins to load
max-plugins: 100
Plugin compatibility mode
allow-incompatible-plugins: false
Event adapter settings
event-adapter: enabled: true priority-handling: "NORMAL" event-filtering: true
Command adapter settings
command-adapter: enabled: true enable-aliases: true enable-permissions: true
Logging settings
logging: log-plugin-loading: true log-plugin-errors: true log-command-execution: false log-event-handling: false
Security settings
security: verify-plugin-signatures: false allow-unsigned-plugins: true whitelist-plugins: [] blacklist-plugins: [] ```
Commands
Main Commands
- `/fabricloader help` - Display help information - `/fabricloader info` - Display plugin information - `/fabricloader mods` - List loaded Fabric mods - `/fabricloader reload` - Reload plugin configuration
Admin Commands (OP permission required)
- `/fabricloader load <mod-file>` - Load specified mod file - `/fabricloader unload <mod-id>` - Unload specified mod
Shortcut Commands
- `/fblmods` - Quick view of loaded mods list - `/fbl` - Alias for `/fabricloader`
Permissions
``` fabricbukkit.loader.* - All permissions fabricbukkit.loader.admin - Admin permissions fabricbukkit.loader.mods - View mods list fabricbukkit.loader.reload - Reload plugin fabricbukkit.loader.info - View plugin information ```
Development
Project Structure
``` fabric-bukkit-loader/ ├── src/main/java/com/fabricbukkit/loader/ │ ├── FabricBukkitLoader.java # Main class │ ├── ModConfigManager.java # Configuration manager │ ├── ModLoader.java # Mod loader │ ├── EventAdapter.java # Event adapter │ ├── CommandAdapter.java # Command adapter │ └── LoadedMod.java # Mod entity class ├── src/main/resources/ │ └── plugin.yml # Plugin configuration ├── pom.xml # Maven configuration └── README.md # Documentation ```
Build Project
```bash
Build
mvn clean package
Generated jar file is in target/ directory
```
API Usage
```java // Get plugin instance FabricBukkitLoader plugin = FabricBukkitLoader.getInstance();
// Get loaded mods Map<String, LoadedMod> mods = plugin.getLoadedMods();
// Load new mod ModLoader modLoader = plugin.getModLoader(); LoadedMod mod = modLoader.loadMod(modFile);
// Event adaptation EventAdapter eventAdapter = plugin.getEventAdapter(); eventAdapter.registerModEvents(mod);
// Command adaptation CommandAdapter commandAdapter = plugin.getCommandAdapter(); commandAdapter.registerModCommands(mod); ```
Supported Fabric Mods
This plugin supports most Fabric mods that don't require client-side modifications, including:
- 🔧 Utility mods - 🏗️ Building mods - 📦 Storage mods - 🎛️ Mechanical mods - 🔬 Technology mods - ⚔️ Combat mods
Note: Mods requiring client support (such as new blocks, new item rendering) may not be fully compatible.
FAQ
Q: Plugin cannot load certain Fabric mods?
A: Check the following: - Confirm the mod is compiled for Fabric 1.21+ - Check error messages in server logs - Verify mod dependencies are satisfied - Try enabling the `allow-incompatible-plugins` option
Q: How to debug mod loading issues?
A: Enable debug logging in `config.yml`: ```yaml debug-logging: true logging: log-plugin-loading: true log-plugin-errors: true ```
Q: Does it support all Fabric mods?
A: No, mods requiring client-side modifications are not supported. Server-side functionality usually works normally.
Q: What about performance impact?
A: The plugin itself has minimal overhead. Mod performance depends on the specific mod implementation.
Changelog
v1.0.0
- ✨ Initial release - ✨ Fabric mod loading support - ✨ Event adaptation system - ✨ Command adaptation system - ✨ Configuration management system - ✨ Permission control system
Contributing
1. Fork this repository 2. Create a feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
- PaperMC Team - For providing excellent server API - FabricMC Team - For providing mod loading framework - All contributors and testers
---
Made with ❤️ for the Minecraft Modding Community
*中文翻译*
FbBLoader
功能特性
一个Paper 1.21+插件,使服务器能够加载Fabric 1.21+的mods。 - 🔄 管理界面 - 在Paper服务器上加载和运行Fabric mods - ⚙️ 管理界面 - 灵活的配置系统,支持热重载 - 🎮 管理界面 - 自动将Bukkit事件转换为Fabric事件格式 - ⌨️ 管理界面 - 支持Fabric mod命令在Paper服务器上运行 - 🔒 管理界面 - 白名单/黑名单系统,插件签名验证 - 📊 管理界面 - 便捷的管理命令和监控功能
安装说明
前提条件
- Paper 1.21+ 服务器 - Java 21 - Maven 3.6+ (用于编译)
安装步骤
1. 下载插件 - 从 releases 页面下载 `FabricBukkitLoader-1.0.0.jar` - 或者使用本项目中已编译好的 jar 文件
2. 安装插件 - 将 `FabricBukkitLoader-1.0.0.jar` 放入服务器的 `plugins` 文件夹 - 启动服务器,插件会自动生成配置文件
3. 配置插件 - 编辑 `plugins/FabricBukkitLoader/config.yml` 配置文件 - 根据需要进行设置(见配置说明)
4. 添加Fabric Mods - 将Fabric mod的 `.jar` 文件放入服务器根目录的 `mods/` 文件夹 - 重启服务器或使用 `/fabricloader reload` 命令加载mods
配置说明
主配置文件 (`config.yml`)
```yaml
启用/禁用插件加载
enable-plugin-loading: true
启用/禁用调试日志
debug-logging: false
Mods目录路径(相对于服务器根目录)
mods-directory: "mods"
自动重载插件
auto-reload-plugins: true
最大插件加载数量
max-plugins: 100
插件兼容性模式
allow-incompatible-plugins: false
事件适配器设置
event-adapter: enabled: true priority-handling: "NORMAL" event-filtering: true
命令适配器设置
command-adapter: enabled: true enable-aliases: true enable-permissions: true
日志设置
logging: log-plugin-loading: true log-plugin-errors: true log-command-execution: false log-event-handling: false
安全设置
security: verify-plugin-signatures: false allow-unsigned-plugins: true whitelist-plugins: [] blacklist-plugins: [] ```
使用命令
主要命令
- `/fabricloader help` - 显示帮助信息 - `/fabricloader info` - 显示插件信息 - `/fabricloader mods` - 列出已加载的Fabric mods - `/fabricloader reload` - 重载插件配置
管理命令 (需要 OP 权限)
- `/fabricloader load <mod-file>` - 加载指定的mod文件 - `/fabricloader unload <mod-id>` - 卸载指定的mod
快捷命令
- `/fblmods` - 快速查看已加载的mods列表 - `/fbl` - `/fabricloader` 的别名
权限节点
``` fabricbukkit.loader.* - 所有权限 fabricbukkit.loader.admin - 管理权限 fabricbukkit.loader.mods - 查看mods列表 fabricbukkit.loader.reload - 重载插件 fabricbukkit.loader.info - 查看插件信息 ```
开发说明
项目结构
``` fabric-bukkit-loader/ ├── src/main/java/com/fabricbukkit/loader/ │ ├── FabricBukkitLoader.java # 主类 │ ├── ModConfigManager.java # 配置管理 │ ├── ModLoader.java # Mod加载器 │ ├── EventAdapter.java # 事件适配器 │ ├── CommandAdapter.java # 命令适配器 │ └── LoadedMod.java # Mod实体类 ├── src/main/resources/ │ └── plugin.yml # 插件配置 ├── pom.xml # Maven配置 └── README.md # 说明文档 ```
编译项目
```bash
编译
mvn clean package
生成的jar文件在 target/ 目录
```
API 使用
```java // 获取插件实例 FabricBukkitLoader plugin = FabricBukkitLoader.getInstance();
// 获取已加载的mods Map<String, LoadedMod> mods = plugin.getLoadedMods();
// 加载新的mod ModLoader modLoader = plugin.getModLoader(); LoadedMod mod = modLoader.loadMod(modFile);
// 事件适配 EventAdapter eventAdapter = plugin.getEventAdapter(); eventAdapter.registerModEvents(mod);
// 命令适配 CommandAdapter commandAdapter = plugin.getCommandAdapter(); commandAdapter.registerModCommands(mod); ```
支持的Fabric Mods
本插件支持大多数不需要客户端修改的Fabric mods,包括:
- 🔧 工具类mods - 🏗️ 建筑类mods - 📦 存储类mods - 🎛️ 机械类mods - 🔬 科技类mods - ⚔️ 战斗类mods
注意: 需要客户端支持的mods(如新方块、新物品渲染)可能无法完全兼容。
常见问题
Q: 插件无法加载某些Fabric mods?
A: 检查以下几点: - 确认mod是为Fabric 1.21+版本编译的 - 查看服务器日志中的错误信息 - 检查mod的依赖是否满足 - 尝试启用 `allow-incompatible-plugins` 选项
Q: 如何调试mod加载问题?
A: 在 `config.yml` 中启用调试日志: ```yaml debug-logging: true logging: log-plugin-loading: true log-plugin-errors: true ```
Q: 是否支持所有Fabric mods?
A: 不支持需要客户端修改的mods。服务器端功能通常可以正常工作。
Q: 性能影响如何?
A: 插件本身开销很小。mod的性能取决于具体的mod实现。
更新日志
v1.0.0
- ✨ 初始版本 - ✨ 支持Fabric mod加载 - ✨ 事件适配系统 - ✨ 命令适配系统 - ✨ 配置管理系统 - ✨ 权限控制系统
开发环境搭建
1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request
许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
致谢
- PaperMC 团队 - 提供优秀的服务器API - FabricMC 团队 - 提供mod加载框架 - 所有贡献者和测试人员
---
Made with ❤️ for the Minecraft Modding Community