Bukkit插件教程篇-文档

开始

doc,中文译名为文档。它是开发者为其他开发者留下的一本“字典”。以便于告诉其他开发者自己的模板都能做什么,应该怎样使用。我们阅读JavaDoc和BukkitDoc就能知道Java和Bukkit作者为我们留下了什么方便使用的代码。

**↑不来一首BGM吗?**

本章要求

  • 学会翻阅doc

认识doc

问:有哪两件事是程序猿不喜欢的?
答:1.给自己的代码写文档
2.别人的代码不写文档

这是一个幽默而又现实的笑话。

doc是为了让别人能能容易理解我们的代码而写给别人看的。bukkitdoc是bukkit作者写给我们看的,bukkit中有很多类,如果这些代码能够直接被我们利用,写插件就会方便很多。
学过上一章(第一个插件)的同学应该还记得,bukkit里的一个JavaPlugin类,在那篇教程里我告知各位JavaPlugin类里有onEnable方法onDisable方法onLoad方法需要我们重写,getLogger方法可以获取插件的Logger,Logger类里又有一个info方法可以用于在控制台输出一行信息,Logger类里还有一个方法warning()可以用于在控制台输出一行警告。
那么问题来了,仓鼠是怎么知道JavaPlugin的这么多信息的?
当然是看过BukkitDoc之后才知道的啦=-=
那么你应该如何了解他们呢?一个一个听老师讲然后用笔记记下来?当然不是!bukkit上千个类文件,这样做你我都会累死的!古人云:授人以鱼不如授人以渔。你应该学会自己翻阅bukkit作者给我们留下的doc。

找到文档

spigotdoc这是spigot的doc。
(spigotdoc和bukkitdoc是通用的)
Javadoc这是JavaDoc。
虽然Javadoc和spigotdoc都有不完全汉化版,但是我更推荐同学们直接去翻阅英文版。一是因为汉化版可能有些错误的地方误导人。二是为了提高自己的阅读能力,从庞大的数据中找到自己想要的信息。

在翻阅这个文档之前,请你不要被全篇的英文吓到,我们不需要每一个字都看完!找到自己想要的东西就行了
那么现在让我来教你如何翻阅doc吧,打开这个网页后,我们会在左侧看到All Classes,下面大概有八百多行,我们应该如何找到我们需要的内容呢?下面以JavaPlugin类为例。
假设我们现在想要翻阅JavaPlugin类里的一些方法,我推荐的有两种方法:

通过包搜索

在Eclipse为我们自动添加的导入代码中:import org.bukkit.plugin.java.JavaPlugin;我们可以知道,这个JavaPlugin类在org.bukkit.plugin.java包里,于是我们在中间这个版块里寻找这个包
通过包寻找doc
鼠标左键单击它,我们进入这个包里
通过包找到doc
可以看到,我们成功找到了这个类

通过All Classes搜索

在doc主页面,我们按下Ctrl + F打开搜索功能
然后我们在搜索框里输入:JavaPlugin
![通过All Classes搜索](/Bukkit插件教程/通过All Classes搜索.png)
单击它,我们就进入了这个类
(这个方法适用于类名与其他类名重复不多的情况,想知道为什么请自己搜索一下Player类或者Block类)

翻阅文档

现在我们成功找到了这个类,我们可以在主框图中看到这个类中的方法,具体请看图
doc
点击方法名称,可以查看方法的详细介绍,如我们这里点击onLoad方法则自动跳至onLoad方法的详细介绍了。
onLoad详细介绍
我们可以看到,他写着这个方法将在onEnable方法之前调用(我之前以为before是在…之后的意思,导致一个插件写了三天,reload时总是报错)

我们点击方法的返回值,则可以跳转至返回值所在的类的doc,例如我们这里点击getConfig()方法的返回值FileConfiguration,则自动跳转至FileConfiguration类的doc页面
跳转至FileConfiguration
图片里只用中文标注了一些常有用的信息,读者应自己学会翻阅doc,找到自己需要的信息!

练习

Player类

请通过spigotdoc找到Player类的相关信息,回答以下问题:

  • 该类在哪一个包里?
  • 该类的chat(String msg)方法有何作用?
  • 该类的updateInventory()方法返回什么?

BlockBreakEvent类

请通过spigotdoc找到BlockBreakEvent类的相关信息,回答以下问题:

  • 该类的继承关系(包括父类的继承关系)
  • 该类实现的接口
  • 这个event在何时被访问?
  • 这个类的getPlayer()返回一个什么值?
  • getPlayer()的方法描述

本章练习不提供答案

本章完

点我返回目录

感谢各位的阅读!

人生不易,仓鼠断气