从零开始使用Kotlin撰写Bukkit插件
一、准备工作
① 什么是Kotlin

这里我简单的概述下(COPY)
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源,Kotlin
可以编译成 Java字节码也可以编译成 JavaScript
方便在没有 JVM(Java虚拟机) 的设备上运行
So,他与Java有什么区别?
Java Code
package dev;
import org.bukkit.plugin.PluginLogger;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;
public final class Main extends JavaPlugin {
public Logger logger = PluginLogger.getLogger("example Plugin~");
@Override
public void onEnable() {
logger.info("插件已启动!");
printLogo();
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
}复制代码
Kotlin Code
package dev复制代码从代码上看
Kotlin 相较于 Java 更加简便且直观
至于语法我这里就不过多介绍了
菜鸟教程 内有有关Kotlin语法的详细介绍

②正片开始
编辑器选择
要写出个插件,编辑器是必不可少的工具
这里我推荐使用
IntelliJ IDEA

IntelliJ IDEA 又叫 IDEA 好像差不多 是 Jetbrain 推出的专门为
Java 和 Kotlin 定制的 IDE
创建项目
打开你的IDEA > 点击新建项目
并配置为如下图

Gradle DSL的选择取决于你的习惯
选择 Kotlin 你的BuildGradle文件将为 build.gradle.kts (Kotlin脚本形式)
选择 Groovy 你的BuildGradle文件将为 build.gralde (原生BuildGradle形式)
两种形式的配置方法都有所不同
我列举下
Kotlin脚本形式
在Plugins一栏中添加下面的代码片段(重要)
id("com.github.johnrengelman.shadow").version("7.1.2")
在repositories一栏中添加下面的代码片段
maven { name = "Aliyun Maven" setUrl("https://maven.aliyun.com/nexus/content/groups/public/") }
//Spigot maven { name = "spigotmc-repo" setUrl("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") }复制代码
在dependencies中添加以下代码(重要依赖)
compileOnly ("org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT")
这里的版本是可以修改的
然后在空处添加以下代码片段
//防止编译中文出现乱码
tasks.withType {
options.encoding = "UTF-8"
}
//将kotlin标准库编译入Plugin防止服务器找不到无法加载插件
tasks.withType{
manifest.attributes.apply{
put("kotlin-stdlib","1.6.20")
}
}
至此,重载你的Gradle!
原生形式
在Plugins一栏添加
id 'com.github.johnrengelman.shadow' version '7.0.0'
在repositories一栏添加
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }maven { url 'https://hub.spigotmc.org/nexus/content/repositories/public/' }复制代码
在dependencies一栏添加
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.20'复制代码
在空处添加
shadowJar {复制代码 options.encoding = "UTF-8"
}
至此,重载Gradle!
打开 src > main > resources
添加 plugin.yml
name: "插件名称"main: 主类位置 (net.example.plugin.main main为你的主类名称)version: '1.0-SNAPSHOT'api-version: '1.13'authors: [艾乐·秋]复制代码
打开 src > main > kotlin
删除里面全部内容(别把kotlin文件夹一起删除了!)
并右键创建软件包
(net.example.plugin)
以括号内为准,可以自由修改
然后右键创建Kotlin类名称随意
记住你的主类位置并将位置复制到plugin.yml内的main项
然后打开刚刚创建的类
添加以下内容
override fun onEnable() { super.onEnable()}
override fun onDisable() { super.onDisable()}复制代码
准备工作完毕!
一、准备工作
① 什么是Kotlin

这里我简单的概述下(COPY)
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源,Kotlin
可以编译成 Java字节码也可以编译成 JavaScript
方便在没有 JVM(Java虚拟机) 的设备上运行
So,他与Java有什么区别?
Java Code
package dev;
import org.bukkit.plugin.PluginLogger;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;
public final class Main extends JavaPlugin {
public Logger logger = PluginLogger.getLogger("example Plugin~");
@Override
public void onEnable() {
logger.info("插件已启动!");
printLogo();
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
}复制代码
Kotlin Code
package dev复制代码从代码上看
Kotlin 相较于 Java 更加简便且直观
至于语法我这里就不过多介绍了
菜鸟教程 内有有关Kotlin语法的详细介绍

②正片开始
编辑器选择
要写出个插件,编辑器是必不可少的工具
这里我推荐使用
IntelliJ IDEA

IntelliJ IDEA 又叫 IDEA 好像差不多 是 Jetbrain 推出的专门为
Java 和 Kotlin 定制的 IDE
创建项目
打开你的IDEA > 点击新建项目
并配置为如下图

Gradle DSL的选择取决于你的习惯
选择 Kotlin 你的BuildGradle文件将为 build.gradle.kts (Kotlin脚本形式)
选择 Groovy 你的BuildGradle文件将为 build.gralde (原生BuildGradle形式)
两种形式的配置方法都有所不同
我列举下
Kotlin脚本形式
在Plugins一栏中添加下面的代码片段(重要)
id("com.github.johnrengelman.shadow").version("7.1.2")
在repositories一栏中添加下面的代码片段
maven { name = "Aliyun Maven" setUrl("https://maven.aliyun.com/nexus/content/groups/public/") }
//Spigot maven { name = "spigotmc-repo" setUrl("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") }复制代码
在dependencies中添加以下代码(重要依赖)
compileOnly ("org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT")
这里的版本是可以修改的
然后在空处添加以下代码片段
//防止编译中文出现乱码
tasks.withType {
options.encoding = "UTF-8"
}
//将kotlin标准库编译入Plugin防止服务器找不到无法加载插件
tasks.withType{
manifest.attributes.apply{
put("kotlin-stdlib","1.6.20")
}
}
至此,重载你的Gradle!
原生形式
在Plugins一栏添加
id 'com.github.johnrengelman.shadow' version '7.0.0'
在repositories一栏添加
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }maven { url 'https://hub.spigotmc.org/nexus/content/repositories/public/' }复制代码
在dependencies一栏添加
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.20'复制代码
在空处添加
shadowJar {复制代码 options.encoding = "UTF-8"
}
至此,重载Gradle!
打开 src > main > resources
添加 plugin.yml
name: "插件名称"main: 主类位置 (net.example.plugin.main main为你的主类名称)version: '1.0-SNAPSHOT'api-version: '1.13'authors: [艾乐·秋]复制代码
打开 src > main > kotlin
删除里面全部内容(别把kotlin文件夹一起删除了!)
并右键创建软件包
(net.example.plugin)
以括号内为准,可以自由修改
然后右键创建Kotlin类名称随意
记住你的主类位置并将位置复制到plugin.yml内的main项
然后打开刚刚创建的类
添加以下内容
override fun onEnable() { super.onEnable()}
override fun onDisable() { super.onDisable()}复制代码
准备工作完毕!