Minecraft Bukkit 插件开发笔记

接了NyaaCat/PlayerTimeTracker的活(顺便练练java工程开发),然后发现软件工具都不怎么会用,调试环境搭建也花了不少时间。因此记录一下相关的过程。

*着重点并不是bukkit插件怎么开发

idea下gradle项目编译打包 & 调试环境搭建

  1. 编译打包bukkit插件

gradle项目构建由项目下build.gradle文件描述。需要利用idea的gradle插件进行启动编译与打包。

View -> Tools Window -> Gradle打开自带的gradle插件。

Tasks 展开到最后一级双击可执行任务。在这个插件的开发中用到打包是 publish

  1. 调试环境搭建

    1. 搭建服务器:部署一个bukkit服务器。这里用的paper-1.16.4;

    2. 复制编译完成的插件到plugin文件夹下;为了方便这里在build.gradle中添加一条拷贝任务:

      1
      2
      3
      4
      5
      task copyToDebug(type: Copy) {
      from "build/libs"
      into project.getProperties().get("target")
      exclude("*-javadoc.jar", "*-sources.jar")
      }

      这里利用了命令行参数制定拷贝目标文件夹。project.getProperties()获取gradle命令行参数后-Pkey=value的属性。这个插件开发中实际添加的命令行参数为-Ptarget=<server-root>/plugins

    3. 调试任务:Jar Application

      Run -> Edit Configurations选择Jar Application ,填写目标是服务器的 <server>.jar,注意把Working Directory改到服务器根目录下。这样当对这个Jar ApplicationTask 进行调试启动,实际上就是调试编写的插件了。

  2. 杂项

    1. 整个项目都必须连接外网。在idea中File -> Settings -> Http Proxy设置代理即可。

    2. mojang认证服务器有时也难连接上,可能需要对整个测试服务器设置代理。采用的方法是JVM参数-Dhttp.proxyHost= -Dhttp.proxyPort=-Dhttps.proxyHost= -Dhttps.proxyPort=

插件开发相关

关于数据库与查询结构

WIP

异步

WIP

动态加载依赖

Author: DWCarrot
Link: https://dwcarrot.github.io/blog/2021/05/14/Minecraft-Bukkit-Plugin-Development/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.