Minecraft 1.7.2 基于BukkitAPI的插件编写教程《一》

基于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的参数

没有更多推荐了,返回首页