贡献指南
欢迎为OPanel项目贡献你的代码!
前置知识
在开始贡献代码之前,请你先了解如何通过fork和Pull Request贡献代码和提交更改
项目结构
opanel
├── frontend/
│ ├── app
│ ├── components
│ └── ...
├── core/
├── fabric/
│ ├── fabric-helper
│ ├── fabric-helper-unmapped
│ ├── fabric-1.19
│ ├── fabric-1.20
│ └── ...
├── forge/
│ ├── forge-helper
│ ├── forge-1.19.4
│ ├── forge-1.20.1
│ └── ...
├── neoforge/
│ ├── neoforge-helper
│ ├── neoforge-1.21.1
│ └── ...
└── bukkit/
├── bukkit-helper
├── spigot-1.16.1
├── spigot-1.20
├── folia-1.20
└── ...frontend文件夹存放前端页面源码,前端使用Next.js和Shadcn UI进行构建。core文件夹是整个项目的核心,包括一系列核心逻辑和功能,如Web服务器和后端API。fabric文件夹按版本存放所有Fabric相关的适配模块:fabric-helper存放Fabric服务端适配模块的共用代码。fabric-helper-unmapped存放未映射(unmapped)环境下Fabric适配所需的共用代码。- 以
fabric-开头并附带版本号的文件夹是不同Minecraft版本的Fabric模组实现。
forge文件夹按版本存放所有Forge相关的适配模块:forge-helper存放Forge服务端(不包括NeoForge)适配模块的共用代码。- 以
forge-开头并附带版本号的文件夹是不同Minecraft版本的Forge模组实现。
neoforge文件夹按版本存放所有NeoForge相关的适配模块:neoforge-helper存放NeoForge服务端适配模块的共用代码。- 以
neoforge-开头并附带版本号的文件夹是不同Minecraft版本的NeoForge模组实现。
bukkit文件夹按版本存放所有Bukkit系列(Spigot、Folia)的适配模块:bukkit-helper存放Bukkit系列服务端适配模块的共用代码。- 以
spigot-开头的文件夹是不同Minecraft版本的Bukkit插件实现。 - 以
folia-开头的文件夹是不同Minecraft版本的Folia插件实现。
在插件 / 模组初始化后,程序会在指定端口(默认为3000)启动一个Web服务器,该服务器包括前端和后端API。
在开发环境下,前端页面被部署在3001端口下,然后它会直接连接一个硬编码的后端API网址http://localhost:3000(参见frontend/lib/api.ts)。因此,在开发和调试前端页面时,你的后端Web服务器,也就是插件 / 模组所配置的端口应该设置为3000。
准备工作
在开始之前,你需要安装VSCode和Intellij IDEA。下面的指南将假定你使用的是这两款代码编辑器。
准备好开发环境后,即可在Github创建本仓库的fork。
接着,通过下面的命令clone仓库:
git clone https://github.com/<your-username>/opanel.git安装依赖
在clone完仓库后,需要下载所有依赖才能正确运行源码。
Gradle 依赖
使用Intellij IDEA打开项目,IDEA会自动启动一个同步任务来下载依赖。
在任务结束后,你可以打开右侧边栏中的Gradle图标来查看可以执行的Gradle任务。如果你能在菜单中找到如
fabric/runServer之类的任务,就证明你的Gradle依赖已经正确安装好了。
Node.js 依赖
- 进入
frontend文件夹
cd frontend- 执行下面的命令来下载依赖
npm install开发
服务端功能 / 后端API
提前准备一个Fabric / Forge / NeoForge / Bukkit的服务端用于测试,然后按照下面的指南来构建一个jar包,接着将要调试的jar包放进对应的mods或plugins文件夹。在重启服务器后,最新的更改将会应用到你的测试服务器上。
适配新版本
参见适配指南。
前端
在frontend文件夹下执行命令
npm run dev然后生产环境下的前端页面将被部署到3001端口下,接着就可以开始使用浏览器打开http://localhost:3001来调试前端。
构建源码
- 构建前端页面
在frontend文件夹下执行命令
npm run build:pack这一步会自动将打包好的前端页面复制到/core/src/main/resources/web路径下,以备插件 / 模组的构建。
- 构建服务端插件 / 模组
在项目根目录下执行命令
.\gradlew clean build最终构建好的jar包将出现在/build/libs文件夹下。
提交代码
git add .
git commit -m "<your-commit-message>"
git push若想将你的代码合并到OPanel官方仓库,可以通过Pull Request进行提交。