Skip to content

贡献指南

欢迎为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.jsShadcn 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

准备工作

在开始之前,你需要安装VSCodeIntellij IDEA。下面的指南将假定你使用的是这两款代码编辑器。

然后,你还需要安装Node.jsRustJDK 25

准备好开发环境后,即可在Github创建本仓库的fork。

接着,通过下面的命令clone仓库:

cmd
git clone https://github.com/<your-username>/opanel.git

安装依赖

在clone完仓库后,需要下载所有依赖才能正确运行源码。

Gradle 依赖

  1. 使用Intellij IDEA打开项目,IDEA会自动启动一个同步任务来下载依赖。

  2. 在任务结束后,你可以打开右侧边栏中的Gradle图标来查看可以执行的Gradle任务。如果你能在菜单中找到如fabric/runServer之类的任务,就证明你的Gradle依赖已经正确安装好了。

Node.js 依赖

  1. 进入frontend文件夹
cmd
cd frontend
  1. 执行下面的命令来下载依赖
npm install

开发

服务端功能 / 后端API

提前准备一个Fabric / Forge / NeoForge / Bukkit的服务端用于测试,然后按照下面的指南来构建一个jar包,接着将要调试的jar包放进对应的modsplugins文件夹。在重启服务器后,最新的更改将会应用到你的测试服务器上。

适配新版本

参见适配指南

前端

frontend文件夹下执行命令

cmd
npm run dev

然后生产环境下的前端页面将被部署到3001端口下,接着就可以开始使用浏览器打开http://localhost:3001来调试前端。

构建源码

  1. 构建前端页面

frontend文件夹下执行命令

cmd
npm run build:pack

这一步会自动将打包好的前端页面复制到/core/src/main/resources/web路径下,以备插件 / 模组的构建。

  1. 构建服务端插件 / 模组

在项目根目录下执行命令

cmd
.\gradlew clean build

最终构建好的jar包将出现在/build/libs文件夹下。

提交代码

cmd
git add .
git commit -m "<your-commit-message>"
git push

若想将你的代码合并到OPanel官方仓库,可以通过Pull Request进行提交。

Released under the GPL-3.0 License