fabricbukkitloader
A Paper 1.21 plugin that allows the server to load mods for Fabric 1.21.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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