我的世界Bukkit插件开发-第三章-搭建基于spigot核心的服务器-了解插件目录并成功开发执行第一个MC插件......

avatar
作者
筋斗云
阅读量:0

文章目录

前言

  • 出这个系列是因为本人在学习插件开发的途中,发现很多资料不易寻找,也没有什么对入门好的理解,故此出此系列来丰富一下个人学习过程,记录开发过程,如果对你有帮助,别忘了点个赞,谢谢
  • 基于Spigot核心的插件开发
  • 本章实现完成流畅使用开发工具进行插件代码编写并在spigot核心服务器上成功运行第一个自己编写的插件
  • 前置开发工具:IDEA
  • JDK环境-JKD-17
  • 构建工具:maven
  • 必备idea插件:Minecraft Development
  • 服务器核心: Spigot-1.20.jar
  • mc客户端
  • 小部分内容来自AI大模型搜索,如需深入,请联系本人或自行了解
  • 作者导语:经过上一章,我们已经在本地成功搭建基于spigot核心的服务并器的插件开发环境,这一章学习插件的基本定义及功能实现,成功在本地私服上运行第一个手写插件…
  • 下期预告:使用插件实现一个自定义事件!
  • 手工码字不易,且看且珍惜,持续更新中…

一、初识MC插件

我们先来看下我们创建的项目文件

1 点开src文件存在Java和resources目录

Java:主要用来存放我们的编写的Java文件,也就是我们的Java代码都在这个目录下
resources:这个目录主要用来存放我们的项目配置文件以及一些能用到的资源文件
在这里插入图片描述

1.1 在java目录中点击McHello.java

这个文件是我们的插件主文件,也就是我们的插件入口,这个类必须要继承JavaPlugin类
我们看JavaPlugin类的导包路径:是来自Bukkit的一个类库,也就是我们上一章说过的pom.xml文件中为我们生成的唯一一个依赖项中的类库
所有的插件类必须继承JavaPlugin类
每个插件只能有一个插件主类,这个需要在plugin.xml中指定配置

package com.shunxin.mchello; import org.bukkit.plugin.java.JavaPlugin; public final class McHello extends JavaPlugin {     @Override     public void onEnable() {         // Plugin startup logic     }     @Override     public void onDisable() {         // Plugin shutdown logic     } }  
1.2自定义插件类重写JavaPlugin类方法

我们看一下这个类继承JavaPlugin类后重写了两个父类方法:

1.2.1 onEnable();

这个方法是指插件开启要做的事情
例如:注册命令,注册事件监听器…

1.2.2 onDisable();

这个方法是指插件关闭要做的事情
例如:关闭资源,处理结束数据…

1.2 在resources目录下点击plugin.yml
1.2.1 配置项介绍

其中是我们的一些插件配置项,这个是比较基础的,后续注册命令等配置也需要在此文件中配置

name: mchello version: '${project.version}' main: com.shunxin.mchello.McHello api-version: '1.20'  

name: 插件名称
version:插件版本,当前是取得项目版本
main:这个是我们McHello.java的全限定类名 唯一用来注册我们的插件主类信息的,插件开启会寻找此类,如果定义错误则插件启动报错,严格区分大小写
api-version:这个是我们pom中spigot的核心jar包的依赖版本
在这里插入图片描述
这些就是项目创建后的基本目录介绍,如需了解更多可评论区留言或自行了解,有这些之后我们就可以开始编写插件代码了

二、编写插件代码

1.插件类编写规范

Java代码请按照Java编程规范编写,不要用中文编写代码

2.功能API参考

Spigot-API: Spigot-API帮助文档

3.插件实现插件启动关闭向控制台发送提示语

我们可以用Bukkit类获取控制台发送对象CommandSender来实现发送信息
我们用CommandSender中的sendMessage(“语句”);方法,来实现输出到控制台
因为在服务器启动时会开始加载插件,加载完插件后会回调插件主类中的onEnable();方法,就会发送我们的自定义语句,结束同理

public final class McHello extends JavaPlugin {     @Override     public void onEnable() {         // 设置插件开启提示         CommandSender sender = Bukkit.getConsoleSender();         sender.sendMessage("McHello 已启动");     }     @Override     public void onDisable() {         // 设置插件关闭提示         CommandSender sender = Bukkit.getConsoleSender();         sender.sendMessage("McHello 已结束");     } } 

第一个插件代码编写完毕,接来就是把插件代码打包并放置在服务器启动

三、插件打包(maven)

我们上一章已经在项目中部署了maven工具,并把项目加入maven管理,我们就可以直接使用maven的打包命令来完成插件打包,不用之前的繁琐打包流程

1.maven打包插件

选择maven工具栏-打开我们的项目mchello-点击Lifecycle版块-双击package即可,maven会自动帮我们处理打包,不用其他操作
在这里插入图片描述

2.target目录

maven打包成功后控制台会输出BUILD SUCCESS 语句并附带打包时间等命令的详细信息,然后在外面的目录下生成target目录
target目录通常用于存放编译输出的文件,我们打的插件包就在这个目录下
在这里插入图片描述

3.打包规则

打包的命名及版本等信息都在我们的pom.xml文件中
在这里插入图片描述

  • groupId:指定项目所属的组织或团队的唯一标识符,通常使用反向域名表示,例如com.shunxin。
  • artifactId:指定项目的名称,例如mchello。
  • version:指定项目的版本号,例如1.0.1。
  • packaging:指定项目的打包方式,这里使用的是jar,表示将项目打包成JAR文件
  • 我们可以自定义jar的版本等信息

四、服务器目录基本介绍

1.服务器根目录

打完的包我们要放置在服务器中运行,具体怎么处理,我们看一下服务器的目录,打开我们的服务器所在根目录
在这里插入图片描述
我们需要把插件放置在plugins目录

2.plugins目录

plugins目录也就是我们的插件目录,后续我们把插件包放置在此目录下,启动服务器的时候会自动加载我们的插件包
把mchello的jar包从idea中复制到plugins目录下然后返回根目录直接启动即可
在这里插入图片描述

3.插件被成功加载并实现代码功能

启动服务器后我们看到控制台输出了我们在启动方法代码中写的 myPlugin已启动
在这里插入图片描述
此时我们结束命令,使用Ctrl+C,此时我们在插件结束定义的代码也成功执行
在这里插入图片描述
自此你已经成功部署了基于spigot核心的本地服务器,并成功连接mc客户端,在idea中搭建完成插件开发环境,也成功运行了你写的第一个插件,后面开始讲mc的事件监听和命令注册方向,会实现一些更有意思的代码

本章完


总结

提示:本章小结:持续更新中......
本章成功部署了自己的世界私服,搭建了插件开发环境,手动写完属于自己的第一个插件,并成功运行,代码一点自己敲,加深印象
如果对您有帮助,别忘了收藏点赞评论留言,有问题评论区回答,后续继续更新插件相关文章

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!