# 写在前面

也许你已经有了雄心壮志, 准备开发一个插件出来了! 但是等一下. 开发插件也需要一定的基础知识!

# 一切的基础

有些东西, 在实际开发插件之前, 你必须要具备!

# 了解Minecraft

我们假定你已经对Minecraft有充分了解.
例如, 我们认为诸如区块(Chunk)是什么这种问题是您早已明白的内容, 不会过分提及.

# 思维

编程的思维在实际编写一个项目当中尤为关键.

在本教程中, 我们能做的只是告诉你“有什么”, 而无法解决你的插件“怎么写”的问题.
例如, 我们告诉你“事件”, 但是如何利用“事件”真正的写出来一个“登录插件”、“商店插件”等各种插件出来, 这需要你自己思考!

希望你在实际开发中能够“脑洞大开”, 想出别人想不到的内容, 想出能打本文作者脸的好办法、新思路!

# 尝试

插件开发离不开调试.
请你在提出问题之前、编写插件的过程中, 不要忘记不断调试, 这样你才能知道你的插件是否真的可以用, 别人说的不如自己试的, 自己想的不如实际干的.

# 认识BukkitAPI

在很早以前, Minecraft只有官方服务端.

因为官方服务端开启的服务器无法安装插件, 无法拓展游戏功能. 因此, 一个团队创造出了Bukkit服务端. Bukkit服务端本质是修改了官方服务端的代码, 实现了插件系统.

然而Bukkit服务端涉及了诸多法律问题. 最后Bukkit服务端停止更新.

后续SpigotMC社区的大神MD_5延续并接手BukkitAPI的维护工作, 他在BukkitAPI的基础上做出Spigot服务端. 此后有许多衍生服务端都在Spigot的基础之上被研发出来.

由此而看, BukkitAPI并不是只有Bukkit服务端才能用, 其衍生出的Spigot等诸多衍生服务端都能用.

# 常见问题

本教程的Java部分只能起到简单介绍Java的作用, 很多内容并没有提及, 因为插件开发不常用或根本不用.

下面想在这里回答一些常见的问题:

为什么篇幅这么长?
因为我想说的东西很多. 我想把所有我能想到的东西都提到.
我也不希望读者跳跃阅读.

跳过Java教程, 直接看插件开发教程可以吗?
首先明确回答这个问题, 可以, 你很有可能东拼西凑把插件拼出来. 因为插件开发所要求的Java基础内容, 说白了并不多.
但是你会为自己不会Java付出代价的. 不会就是不会.

在MCBBS上现存的一些零基础插件开发教程为什么篇幅远小于本教程?
讲的少. 某些教程根本就不能算是讲了Java, 根本就没办法实现从零开始.
比如Java面向对象的概念是必须要知道的, 而据我观察, 部分教程根本没有提及, 试问在这种情况下, 你的教程说的内容真的对吗?