Skip to content

贡献指南

欢迎为OPanel项目贡献你的代码!

前置知识

在开始贡献代码之前,请你先了解如何通过fork和Pull Request贡献代码和提交更改

项目结构

opanel
├── frontend/
│   ├── app
│   ├── components
│   └── ...
├── core
├── fabric-...
├── forge-...
├── neoforge-...
├── spigot-...
├── folia-...
└── ...
  • frontend 文件夹存放前端页面源码,前端使用Next.jsShadcn UI进行构建。
  • core 文件夹是整个项目的核心,包括一系列核心逻辑和功能,如Web服务器和后端API。
  • fabric- 开头的文件夹是不同Minecraft版本的Fabric模组实现。
  • forge- 开头的文件夹是不同Minecraft版本的Forge模组实现。
  • neoforge- 开头的文件夹是不同Minecraft版本的Neoforge模组实现。
  • spigot- 开头的文件夹是不同Minecraft版本的Bukkit插件实现。
  • folia- 开头的文件夹是不同Minecraft版本的Folia插件实现。

在插件 / 模组初始化后,程序会在指定端口(默认为3000)启动一个Web服务器,该服务器包括前端和后端API。

在开发环境下,前端页面被部署在3001端口下,然后它会直接连接一个硬编码的后端API网址http://localhost:3000(参见frontend/lib/api.ts)。因此,在开发和调试前端页面时,你的后端Web服务器,也就是插件 / 模组所配置的端口应该设置为3000

准备工作

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

然后,你还需要安装Node.js和jdk。

安装依赖

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

Gradle 依赖

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

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

Node.js 依赖

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

开发

服务端功能 / 后端API

Fabric

执行Gradle菜单中相应Minecraft版本的Fabric任务fabric/runServer。在服务器完全启动后,后端API和生产环境下的前端页面将被部署在3000端口上。

INFO

通常情况下,我们不会使用这里生产环境下的前端页面来开发和调试前端。

Forge / Neoforge / Bukkit

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

前端

frontend文件夹下执行命令

cmd
npm run dev

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

构建源码

  1. 构建前端页面

frontend文件夹下执行命令

cmd
npm run build

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

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

在项目根目录下执行命令

cmd
.\gradlew clean build

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

Released under the MPL-2.0 License