Bukkit插件开发教程 - 第一个插件

第一个插件 - First Plugin

学习目标:

  • 如何利用IntelliJ IDEA(以下简称IDEA)创建一个项目
  • 如何用IDEA创建一个Module
  • 编写第一个插件
  • 导出插件

如何利用IDEA创建一个适合Bukkit插件开发的项目

  • 打开我们的IDEA

    Bukkit插件开发教程 - 第一个插件_第1张图片
    idea_create_net_project.png

    点击 Create New Project 该选项

  • 在弹出来的新窗口内我们选择 Java 项目

    Bukkit插件开发教程 - 第一个插件_第2张图片
    idea_create_java_project.png

选择我们项目的 SDK(这里指JDK) ,之后点击 Next ,之后会提示我们要不要使用模板,这里我们不需要直接点击 Next

  • 为我们的项目进行命名

之后我们就给我们的项目命个名,这里我使用 Tutorial 作为我们的项目名,路径什么的就让大家自己选择吧!

  • Finish 完成创建

在项目创建好之后我们需要设置一下我们的开发视图
点击 IDEA 上的 View 选项,之后我们选择以下几个

  • Toolbar -> 工具栏
  • Tool Buttons -> 工具按钮
  • Status Bar -> 状态栏
  • Navigation Bar -> 导航条

个人比较喜欢全部打钩,这个视图按自己而定


如何用IDEA创建一个Module

我们点击 File -> New -> Module,之后像之前一样我们对这个 Module 进行命名,然后设置它的路径,这里建议 _Module** 的名字要与 **Project_** 区分开**

之后我们展开我们的项目就能看到我们新建的 Module 了,这里我用 Tutorial1 来做区分


编写第一个插件

导入核心

在编写之前我们要给我们的项目导入服务端核心(jar)
要想导入Jar我们就需要使用 IDEA 里的一个叫 Project Structure 的东西,我们点击 IDEA 里的 File 选项之后点击 Project Structure 之后我们会弹出来这么一个窗口

Bukkit插件开发教程 - 第一个插件_第3张图片
idea_project_structure.png

之后我们点击 Libraries -> 绿色的+号 -> Java, 之后在弹出来的窗口选择器选择好我们测试端的核心 -> OK

Bukkit插件开发教程 - 第一个插件_第4张图片
idea_select_core.png

这一步是为了在以后的开发中避免重复导入相同的jar

之后我们点击 Modules 选择我们刚才创建的 Tutorial1, 然后点击 Dependencies 来设置我们的依赖

Bukkit插件开发教程 - 第一个插件_第5张图片
idea_project_dependencies.png

切换到 Dependencies 的界面之后点击 右边的绿色+号 ,之后选择Library,然后就导入我们刚才设置好的 Project Libraries

编写代码

那么我们导入好了Jar之后就可以来编写我们的代码了
和往常一样我们右键 Tutorial1 创建一个包 这里我建为 "cc.zoyn.tutorial1" 并且我在里面建了一个类叫 Tutorial1

Bukkit插件开发教程 - 第一个插件_第6张图片
idea_create_package_and_class.png

我们再 Tutorial1 这个类里面写入以下代码

import org.bukkit.plugin.java.JavaPlugin;

public final class Tutorial1 extends JavaPlugin {

    /**
     * 当插件被Load(加载)时执行的代码
     * getLogger().info() -> 代表或其控制台Log并且发送一行info信息
     */
    @Override
    public void onLoad() {
        getLogger().info("onLoad has been invoked!");
    }

    /**
     * 当插件被Enable(开启)时执行的代码
     * getLogger().info() -> 代表或其控制台Log并且发送一行info信息
     */
    @Override
    public void onEnable() {
        getLogger().info("onEnable has been invoked!");
    }

    /**
     * 当插件被Disable(关闭)时执行的代码
     * getLogger().info() -> 代表或其控制台Log并且发送一行info信息
     */
    @Override
    public void onDisable() {
        getLogger().info("onDisable has been invoked!");
    }
}

那么我们看到Tutorial1这个类继承了JavaPlugin,那么这个JavaPlugin是什么呢?

划重点

  • JavaPlugin 是一个Java插件的基类,当一个类继承JavaPlugin后 ,它就是插件的主类,不允许其他类继承主类。

所以我这里就给我们的主类加上了 final 修饰符防止误操作继承了Tutorial1类

那么我们可以看到有三个方法

  • onLoad
  • onEnable
  • onDisable

这三个方法的用途我已经写在上方的代码中,这里就不再赘述,所以我们来补充个知识
就是关于服务器加载的一个流程

Bukkit插件开发教程 - 第一个插件_第7张图片
服务器.png

通过上图我们可以得知onLoad() onEnable()这两个方法其实就是在加载流程中的 56这两个阶段中invoke,而onDisable()方法则是在服务器关闭的时候才会被invoke

那么当我们写好代码之后需要添加一个文件 plugin.yml

根据Bukkit插件的开发规范我们有:

  • 插件的Jar根目录必须有一个名为plugin.yml的符合 YAML语法 的文件。
  • plugin.yml内必须按规范填写足够保证插件能运行的信息。下面会详细说明.你可以在这里找到你想要的信息 plugin.yml详解

必填的值

name: Tutorial1 #插件名
main: cc.zoyn.tutorial1.Tutorial #插件主类路径
version: 1.0 #插件版本号

并且我还建议添加这一行

author: Zoyn #作者名

这样我们就很轻松的写好了我们的plugin.yml

导出插件

那么我们的插件写好之后就可以导出了
同样我们打开IDEA里的 Project Structure 我们点击最左边那一栏里的 Artifacts 点击绿色的 + 号之后创建一个JAR类型的Artifacts

Bukkit插件开发教程 - 第一个插件_第8张图片
idea_project_aftifacts.png

之后我们自定义好名字开始设定要往等下的这个jar包丢些什么东西进去


Bukkit插件开发教程 - 第一个插件_第9张图片
idea_project_aftifacts_project.png

这一步是设置我们要把Tutorial1这个模块给输出出去(也就是编译成class之后丢在里面),然后我们丢plugin.yml

我们点击 Tutorial.jar 上方的那个绿色加号 之后点击 File,然后把我们刚才写好的plugin.yml也给丢进去

之后我们就可以OK保存了

之后我们点击工具栏上的 Build 之后点击 Build Artifacts 然后在弹出来的窗口中选中 Build 之后IDEA就会为我们开始构建了...

构建完成之后jar包就会出现在我们项目中的 ./out/artifacts/项目名/刚才构建设置当中的名.jar这里

那么我们丢进服务器里的plugins文件夹里,如果你可以在控制台里面发现

onEnable has been invoked!

的字样,那么恭喜你,你已经写好了你的第一个插件!

你可能感兴趣的:(Bukkit插件开发教程 - 第一个插件)