
fabricbukkitloader
A Paper 1.21 plugin that allows the server to load mods for Fabric 1.21.
Plugin description
Features
A Paper 1.21+ plugin that enables servers to load Fabric 1.21+ mods.
- 🔄 Fabric Mod Loading - Load and run Fabric mods on Paper servers
- ⚙️ Configuration Management - Flexible configuration system with hot reload support
- 🎮 Event Adaptation - Automatically converts Bukkit events to Fabric event format
- ⌨️ Command Adaptation - Supports Fabric mod commands running on Paper servers
- 🔒 Security Control - 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
-
Download Plugin
- Download
FabricBukkitLoader-1.0.0.jarfrom the releases page - Or use the pre-compiled jar file in this project
- Download
-
Install Plugin
- Place
FabricBukkitLoader-1.0.0.jarin your server'spluginsfolder - Start the server, the plugin will automatically generate configuration files
- Place
-
Configure Plugin
- Edit the
plugins/FabricBukkitLoader/config.ymlconfiguration file - Make necessary settings (see configuration instructions)
- Edit the
-
Add Fabric Mods
- Place Fabric mod
.jarfiles in themods/folder in the server root directory - Restart the server or use the
/fabricloader reloadcommand to load mods
- Place Fabric mod
Configuration
Main Configuration File (config.yml)
# 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
# Build
mvn clean package
# Generated jar file is in target/ directory
API Usage
// 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-pluginsoption
Q: How to debug mod loading issues?
A: Enable debug logging in config.yml:
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
- Fork this repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - 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。
- 🔄 Fabric Mod加载 - 在Paper服务器上加载和运行Fabric mods
- ⚙️ 配置管理 - 灵活的配置系统,支持热重载
- 🎮 事件适配 - 自动将Bukkit事件转换为Fabric事件格式
- ⌨️ 命令适配 - 支持Fabric mod命令在Paper服务器上运行
- 🔒 安全控制 - 白名单/黑名单系统,插件签名验证
- 📊 管理界面 - 便捷的管理命令和监控功能
安装说明
前提条件
- Paper 1.21+ 服务器
- Java 21
- Maven 3.6+ (用于编译)
安装步骤
-
下载插件
- 从 releases 页面下载
FabricBukkitLoader-1.0.0.jar - 或者使用本项目中已编译好的 jar 文件
- 从 releases 页面下载
-
安装插件
- 将
FabricBukkitLoader-1.0.0.jar放入服务器的plugins文件夹 - 启动服务器,插件会自动生成配置文件
- 将
-
配置插件
- 编辑
plugins/FabricBukkitLoader/config.yml配置文件 - 根据需要进行设置(见配置说明)
- 编辑
-
添加Fabric Mods
- 将Fabric mod的
.jar文件放入服务器根目录的mods/文件夹 - 重启服务器或使用
/fabricloader reload命令加载mods
- 将Fabric mod的
配置说明
主配置文件 (config.yml)
# 启用/禁用插件加载
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 # 说明文档
编译项目
# 编译
mvn clean package
# 生成的jar文件在 target/ 目录
API 使用
// 获取插件实例
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 中启用调试日志:
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加载
- ✨ 事件适配系统
- ✨ 命令适配系统
- ✨ 配置管理系统
- ✨ 权限控制系统
开发环境搭建
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
致谢
- PaperMC 团队 - 提供优秀的服务器API
- FabricMC 团队 - 提供mod加载框架
- 所有贡献者和测试人员
Made with ❤️ for the Minecraft Modding Community
