热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Minecraft1.7.2基于BukkitAPI的插件编写教程《一》

基于BukkitAPI的插件编写教程在教程开始之前,请确保你有一定的编程基础.如果你对编程属于一无所知,那么请你先去阅读Java编程基础.准备工作首先
基于Bukkit API的插件编写教程
在教程开始之前,请确保你有一定的编程基础.如果你对编程属于一无所知,那么请你先去阅读Java编程基础.

准备工作

首先你要准备一个IDE和一个JDK
JDK我推荐你使用JDK 7 虽然Java 8已经发布,但是我还是推荐你使用Java 7 
下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
IDE方面有很多的选择 比如IDEA Eclipse NetBeans
这里我们使用Eclipse
下载地址: http://www.eclipse.org/downloads/

这里提供的Eclipse和JDK都存在32bit 和64bit的选择,请根据自己的系统来选择

当你下载完Eclipse和JDK后我们就可以开始安装了

关于JDK的安装 你还需要进行环境变量配置
关于JDK的环境配置 网络上有很多
http://blog.csdn.net/tianshuai1111/article/details/7367700
http://jingyan.baidu.com/article/c85b7a6414f2ee003bac95d5.html

关于Eclipse的安装 只需要解压到一个目录 然后运行他即可.第一次运行会让你选择工作目录,不过这无关紧要.
请按照自己的习惯设置相关的目录

其次你需要对你即将要编写的插件有一个明确的计划
现在请你思考一下这些问题
  1. 你要做什么类型的插件
  2. 这个插件是拿来做什么
  3. 插件的实现方式
当你思考完后,我相信你有一个明确的方案了.
不过我相信你对于第三点 插件的实现方式  一定会存在疑问(群众 :废话你都没说 我咋知道

写一个主类

至此 我们正式进入了插件的编写环节
首先 我们新建一个Java 项目 如图:

选择新建>Java项目后,会出现 如图所示


项目名:这是作为Java项目的名称 属于一种代号 方便你能找到他
位置:Java项目存储在本地磁盘的位置 当你勾选使用默认位置的时候 Java项目所在的位置总是在{workspace}/{project} 
最后 笔者编辑后的 如图所示:

接下来 请不要点击完成 我们还需要为该Java项目添加依赖
点击下一步 选择库>添加外部JAR 如图所示

图中我们选定的bukkit-1.7.2-R0.2.jar正是本教程所使用的Bukkit API  插件的编写 全部依赖于这个jar文件
下载地址:http://pan.baidu.com/s/1mgyszMC<百度云> 
当我们添加完成后 就可以点击完成了
当你完成这步后 你可以清晰的看到你的包资源浏览器中出现了一个叫做SimplePlugin的空项目


到此为止 我们已经完成了Bukkit 插件编写的第一步 项目的建立 当然如果你的插件中出现了中文 请设置项目的编码为UTF-8

接下来 这个项目我们就要为其添加源码
右击这个项目 选择新建>类 

这里笔者 已经填写好了相关的信息
包:关于包的概念 这里我引用了http://blog.sina.com.cn/s/blog_4cd9865b010009h1.html这篇博文
在Java的编写中 你有一些命名规则需要去了解 这只是作为一个潜规则存在
参考地址:http://wenku.baidu.com/view/2e56f51a964bcf84b9d57b18.html

名称:类的名称 具体命名规则 请参考上方的参考资料
超类:这个类继承的父类 在Bukkit 插件编写中 指定的主类你必须要继承JavaPlugin这个类 当然你也可以实现JavaPlugin这个类中所实现的接口

当你新建好类 IDE会根据你的这些设置 自动帮你补全代码

这时你的插件还需要对其重载 加载和关闭的方法
他们看起来是这样的
    @Override
    public void onEnable()
    {
        
    }
    @Override
    public void onDisable()
    {
        
    }
@Override 是JDK提供的一个高级注释 用于表示重载
当你完成对onEnable()和onDisable()的重载时 你的主类也就完成了 虽然并没有什么功能

为了让插件看起来cool  我们准备在这两个方法中加入点什么

JavaPlugin 作为Bukkit API 提供的一个类 当你继承他时 会提供一些已经实现的功能给与作为插件编写者的你 
this 是Java中的关键词 用以表明当前实例
getLogger() 是JavaPlugin提供的一个方法 用于获取插件的Logger
这样我们 华而不实 的主类就完成了。

对于Bukkit的编写我们还缺少一步 那就是为Bukkit指明插件的文件
这个文件就是plugin.yml
在Bukkit的插件加载机制中 plugin.yml是至关重要的标识 如果没有plugin.yml 插件也就不会被载入

我们选中项目 右击选择 新建>文件
文件名为plugin.yml
当我们建立完成后 IDE为我们默认打开plugin.yml文件

如图所示 这是我完成的plugin.yml
对于Bukkit的插件加载机制来说 你必须填写的三个项目
name:插件的名字
version: 插件的版本
main: 插件的主类 请注意是<主类所在的包>.<主类>
(如果 你在plugin.yml 使用了中文 请使用转码工具转换为UTF-8 无Bom)
关于plugin.yml更加详细的说明 请参考官方的Wiki http://wiki.bukkit.org/Plugin_YAML

插件的打包

当你为你的插件写好主类和plugin.yml 这个时候就需要打包插件来实现测试
在你的Eclipse中选中项目 然后右击>导出>Java-JAR文件
如图所示进行设置

如果IDE提示导出失败 请再进行导出一次 因为失败的原因 很可能是资源并没有同步.

测试你的插件

把你打包完成的插件放到你找好的服务端中的plugins文件夹


然后我们运行我们的服务端 就可以从图片中看到 插件被正确的运行了

至此 一个仅有控制台通告功能的插件我们就完成了

Tips:
      Bukkit的组成成分:主类,自制事件,监听器,命令执行器,资源文件,信息文件

课后作业

了解Plugin.yml的参数

推荐阅读
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
author-avatar
因为梦想2013
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有