Paper MC:使用 IDEA 创建一个 Paper Plugin 项目并流式运行
创建项目
本文撰写时使用的 IDEA 版本为 2022.3.3(Ultimate Edition),如果你的界面和文中图片不一致,请检查你的 IDEA 版本
打开 IDEA,新建一个项目(File
-> New Project
),在下图所示的界面中创建一个项目:
- Name:输入项目的名字,建议使用插件名;
- Language:选择
Java
; - Build system:Paper 的开发团队使用的依赖管理器是 Gradle,故其文档给出的方法也是使用 Gradle。本文在此选择 Gradle;
- JDK:Minecraft 1.18 及以上需要使用 JDK17;
- Gradle DSL:跟从 Paper 文档选择 Kotlin;
设置完成后,点击 Create
按钮创建一个新的项目。
配置依赖
打开 build.gradle.kts
文件,这个文件是 Gradle 的配置文件,你可以在这里配置项目中需要使用的依赖、编译选项等等。
由于我们是 Paper 的插件项目,我们需要使用到 Paper 的 API,所以我们要引入 Paper 依赖,修改后的 build.gradle.kts
文件如下:
1 | plugins { |
修改后,点击下图的红框中的按钮 Load Gradle Change
,也可以使用快捷键 ctrl+shift+O
,顾名思义,这一步是应用我们修改的配置项,Gradle 将根据配置文件的内容为我们下载 paper-api
。等待其配置完成,即可完成依赖配置步骤。
创建包和主类
官方建议的文件夹结构为:
1 | ExamplePlugin |
根据官方推荐的文件夹结构,首先,我们需要创建源代码的第一个包,请按以下步骤之一来做,以此保证你的包名不与其它步骤重复:
- 如果你有一个域名
abc.io
,那你应该创建io.abc
包 - 如果你没有域名,你可以使用你的 github 账户,例如你的 github 账户名为 abc,你应该将
io.example
包修改为io.github.abc
- 你也可以用你的邮箱,如果你的邮箱是
abc@gmail.com
,你应该创建com.gmail.abc
包
在创建好上面的包后,需要在其中再创建一个以你的插件名命名的包,注意包名应该为纯小写。
创建好包后,我们在最内层的包内创建一个主类
注意
如果你在创建类时 IDEA 没有给你任何帮助,例如没有为你自动生成包名,请设置 java
文件夹为你的代码根目录文件夹,具体步骤为右键 java
文件夹 -> Mark Directory as
-> Sources Root
,设置成功后文件夹颜色变为蓝色。
我们创建的类内容如下:
1 | package org.example.exampleplugin; |
添加 plugin.yml
在和 java
文件夹同级的 resources
文件夹中新建一个 plugin.yml
文件,输入以下内容:
1 | name: ExamplePlugin |
编译为 jar 文件
至此,我们已经可以编译我们的插件了,在 IDEA 的右上角新建一个运行配置文件(Current File
-> Edit Configurations...
)
在弹出的对话框中点击 +
-> Gradle
在右侧的 Run
一栏中输入 jar
,代表我们要编译一个 jar
文件,填写完后点击 OK
退出来后,我们可以看到原先 Current File
的位置已经多了我们刚刚配置好的选项,点击小三角按钮运行即可。执行完成后,控制台的输出如下所示,我们的 jar
文件位于 build/libs
文件夹中。
1 | 14:35:34: Executing 'jar'... |
找不到编译时的控制台?
点击 IDEA 底部的 Build 按钮即可
流式运行
每次都复制 jar
文件到服务端中,再重启服务端,这未免也过于麻烦了,还好我们可以利用 Gradle 的 Task 帮我们一次性搞定。
-
添加 Plugin 和 Task
打开
build.gradle.kts
文件,在其中添加一个新的插件id("xyz.jpenilla.run-paper") version "2.1.0"
1
2
3
4plugins {
id("java")
id("xyz.jpenilla.run-paper") version "2.1.0"
}再在文件底部添加一个新的 task,在输入以下代码后 IDEA 会报错,不必理会,我们再次
Load Gradle Change
(忘记了?看下前面是怎么做的。)1
2
3
4
5tasks {
runServer {
minecraftVersion("1.19.3")
}
} -
添加 Run/Debug Configuration
跟我们需要编译 jar 文件时一样,只不过这次我们在
Run
一栏中填的是runServer
,配置完成后点击运行。run-paper
将自动在run
文件夹下搭建一个 Paper Spigot 服务端。 -
同意 Eula 协议
首次启动后,控制台将提示如下:
1
You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
此时我们需要打开
run/eula.txt
,将其中的eula=false
修改为eula=true
。修改后在此启动runServer
-
开始使用
此后,每当我们需要测试插件,只需要执行
runServer
即可,你也可以在run
文件夹中对你的服务端进行配置。1
2[14:45:00 INFO]: [ExamplePlugin] Enabling ExamplePlugin v1.0.0
[14:45:00 INFO]: [ExamplePlugin] Enabled Successfully可以看到我们的插件已经成功启动了。
参考资料
Paper Project Setup | PaperMC Documentation
GitHub - jpenilla/run-task: Gradle plugins adding tasks to run Minecraft server and proxy software