Skip to content

快速入门

通过本教程,你可以快速上手OPanel扩展开发,并创建你的第一个OPanel扩展插件。

准备工作

  • 部署 OPanel,版本为2.2.0-pre5及以上(参见快速开始文档)
  • 准备 Java 环境(JDK 14+),安装 Intellij IDEA

可选:使用AI Agent开发扩展

如果你想使用AI Agent来快速开发一个OPanel扩展,也可以安装使用OPanel提供的Agent Skill

shell
npx skills add opanel-mc/opanel

创建新项目

打开IDEA,点击“新建项目”,选择“Gradle”,点击“创建”。

等待IDEA自动执行Gradle同步,同步成功后,打开build.gradle,将OPanel API添加为依赖。

kts
repositories {
  mavenCentral()
}

dependencies {
  compileOnly 'cn.opanel:opanel-api:<OPanel版本号>'
}

java {
  toolchain {
    languageVersion = JavaLanguageVersion.of(14)
  }
}

如果你后续需要注册后端接口,那么还需要添加Javalin为依赖。

kts
dependencies {
  // ...
  compileOnly 'io.javalin:javalin:5.6.4'
}

扩展元数据

在项目源码的resources目录下新建extension.json文件存放扩展元数据,具体内容参见extension.json

若缺失元数据文件,扩展就无法被OPanel加载。

Hello World

创建一个主类Main.java作为扩展入口,主类的示例代码如下:

java
package com.example.extension;

import cn.opanel.api.*;

@Extension
public class Main {
    private OPanelAPI api;

    @ExtensionLoad
    public void load(OPanelAPI api) {
        this.api = api;
        api.logInfo("Example extension loaded");
        api.logInfo("Hello World!");
    }

    @ExtensionUnload
    public void unload() {
        api.logInfo("Example extension unloaded");
    }
}

其中,load()是整个扩展的入口方法,OPanel在启动阶段会执行每一个扩展的load()来激活扩展;unload()是整个扩展的注销方法,OPanel在退出时会执行每一个扩展的unload()来释放资源。

注意

添加了@Extension注解的类即为扩展的主类,OPanel扩展有且只能有一个主类。

构建运行

编写完代码后,在IDEA右侧边栏中打开Gradle,双击运行build任务,构建好的jar包将会出现在build/libs目录下。

extension-1

准备一个装有OPanel的Minecraft服务器,将构建好的jar包放到服务端的opanel/extensions目录下,启动服务器,如果在日志中看到:

[OPanel] [Example Extension] Example extension loaded
[OPanel] [Example Extension] Hello World!

那么你就成功创建了你的第一个OPanel扩展!

Released under the GPL-3.0 License