Bukkit插件開發(fā)教程 - 序章

序章

歷史:

以下歷史也許會出現(xiàn)錯誤,可以當做故事來看,與教程無太大關(guān)系

眾所周知在 Minecraft 早期時的多人游戲是只有一個 minecraft_server.jar 的端的,而它并不能滿足服主們的需求,只有少數(shù)服主可以通過第三方修改,因為它是被混淆
并且這個端的內(nèi)部代碼寫得并不是很好,因為它是由 Notch 一個人完成的

那么既然服主有需求那就有了"市場"所以在早期的Minecraft社區(qū)就出現(xiàn)了幾次較大的"變革"


hMod(Mod向):

hMod是由一個叫 hey0 的大佬制作出來的,也就是那時候所說的hey0端
hMod的原理呢其實就是反混淆,將混淆過的代碼,反混淆成可讀的代碼,所以在服務(wù)器加入自己的原創(chuàng)內(nèi)容,就沒有這么困難了...

這里我們可以把hMod理解為一個Wrapper,將我們的代碼"翻譯"成官方端的代碼

hMod.png

但事情永不可能這么順心如意,不久之后hey0就棄坑了


Bukkit:

既然hey0棄坑了就有第二人接坑,而這個人就是現(xiàn)在被Mojang"收購"的大佬 —— Dinnerbone,并且叫上了幾個志同道合的朋友推翻重做,將其反混淆(人工),并且做出了一個叫做BukkitAPI的東西,這一重做就是我們現(xiàn)在熟知的Bukkit,但是雖然是反混淆,但是還是有部分的字段,方法沒有反混淆,還是a,b,c...之類的類名 —— 來源 Bukkit About Us
我們來了解一下Bukkit給我們都做了些什么

Bukkit.png

Bukkit制作當中出現(xiàn)的一些問題(2012-2013)

Bukkit 時代看似輝煌啤誊,但實際上有不少隱患出現(xiàn):

  • Bukkit 本身的衰落。
    2012 年 2 月,Bukkit 的開發(fā)團隊(Dinnerbone,EvilSeph,Grum缆巧,Tahg)收到來自 Mojang 的 offer虱朵,于是欣然應(yīng)邀加盟 Mojang莉炉;作為條件,他們不能再開發(fā) Bukkit碴犬,而是負責開發(fā)新版本的 SMP(多人聯(lián)機) 和其他與 Minecraft 有關(guān)的工作絮宁,比如編寫 Plugin API。
    Dinnerbone 和 Grum 這兩位可以說是對整個 Bukkit 計劃貢獻最大的人服协,反編譯和反混淆由 Grum 全權(quán)負責绍昂,然后 Dinnerbone 則接過代碼坐在電腦桌前除了上廁所外不停歇地碼上二三十個小時,為的就是以最快的速度將新版本的 Bukkit API 和 CraftBukkit 呈現(xiàn)在大眾面前偿荷。如今他們走了窘游,雖然有人接班,但是他們都沒有了 DinnerboneGrum 的那份旁人難以理解的激情跳纳,更新對他們來說更像是一份義務(wù)而不是責任忍饰。這也不能怪他們,但伴之而來的就是 CraftBukkit 的更新越來越慢寺庄,當初兩天就能更新完艾蓝,現(xiàn)在要花上兩個月;而Bukkit 在 1.5 后鮮有再加入新的 API斗塘,意思就是上文提到的“翻譯”活越來越少人肯去做赢织,導致許多 SMP(多人聯(lián)機) 的新功能都無法單純地利用 Bukkit API 實現(xiàn),必須還得配合之前提到的那種直接修改源代碼的蛋疼方法...

  • 收費泛濫
    服務(wù)器們收費的方式推陳出新馍盟,以 Hypixel 為例敌厘,VIP 出完了出 VIP+ 之后又推出 MVP...

  • 版權(quán)問題
    CraftBukkit 內(nèi)置了 Minecraft 反編譯過后的源代碼,無形中已經(jīng)侵犯了 Mojang 的版權(quán)朽合;而 Bukkit 采用的是 GPL 協(xié)議...

Spigot!

自從原開發(fā)團隊離去后俱两,先不提越來越慢的更新和越來越落后的 BukkitAPICraftBukkit 的性能也飽受詬病曹步。許多人都自己私下制作了 CraftBukkit 的優(yōu)化版本宪彩,當時最出名的是 CraftBukkit++,著重優(yōu)化了農(nóng)作物生長的部分讲婚,能顯著提高 TPS ,但是每個優(yōu)化版本都只是優(yōu)化了一小部分尿孔,這個優(yōu)化通訊,這個優(yōu)化實體,這個優(yōu)化 AI活合,這個優(yōu)化地圖加載...

那么有沒有一款包含所有優(yōu)化的 CraftBukkit 呢? 有!
就是由

md_5_64px.png

md_5 開發(fā)的 Spigot

Spigot 是個"強化版"的 CraftBukkit雏婶,只要換上它你的服務(wù)器立刻流暢幾倍,提供的 API 和配置文件都更豐富白指,并且完全開源免費留晚。


開發(fā)前的準備:

那我們有了一個初步的概念之后我們就來講講關(guān)于Java的東西吧
眾所周知Minecraft是用Java語言進行開發(fā)的,并且BukkitAPI也是用Java語言來開發(fā)的,所以在學習之前你需要了解以下Java知識

  • Java基礎(chǔ)語法,與部分基礎(chǔ)知識 如if,基本數(shù)據(jù)類型,try catch等…
  • 面向?qū)ο笏枷?/li>
  • YAML語法
  • JSON語法 (非必須)
  • 集合類的使用(Collection類和Map類等)
  • 反射(非必須)
  • SQL語法(非必須)

服務(wù)端的選擇

這里我列舉一些常見的服務(wù)端,它們各有各的好處,在這里我就不一一列舉了

單服服務(wù)端

  • minecraft_server
  • craftbukkit
  • spigot (Recommended)
  • PaperSpigot
  • TacoSpigot
  • TorchSpigot
  • GlowStone

Bungee服務(wù)端

  • BungeeCord
  • WaterFall (Recommended)
  • FlexPipe

本文開發(fā)環(huán)境

本文的開發(fā)環(huán)境如下

  • spigot-1.10.2-R1.jar
  • jdk-1.8.0_77

本書為了面向廣大開發(fā)者決定使用以下兩種IDE進行開發(fā)

  • IntelliJ IDEA
  • Eclipse (可能要涼)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市告嘲,隨后出現(xiàn)的幾起案子错维,更是在濱河造成了極大的恐慌,老刑警劉巖橄唬,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赋焕,死亡現(xiàn)場離奇詭異,居然都是意外死亡仰楚,警方通過查閱死者的電腦和手機隆判,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僧界,“玉大人侨嘀,你說我怎么就攤上這事∩有海” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵埋哟,是天一觀的道長笆豁。 經(jīng)常有香客問我,道長赤赊,這世上最難降的妖魔是什么闯狱? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮抛计,結(jié)果婚禮上哄孤,老公的妹妹穿的比我還像新娘。我一直安慰自己吹截,他們只是感情好瘦陈,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布遍尺。 她就那樣靜靜地躺著俐载,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捷绒。 梳的紋絲不亂的頭發(fā)上懦铺,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天捉貌,我揣著相機與錄音,去河邊找鬼。 笑死趁窃,一個胖子當著我的面吹牛牧挣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播醒陆,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼瀑构,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了统求?” 一聲冷哼從身側(cè)響起检碗,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎码邻,沒想到半個月后折剃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡像屋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年怕犁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片己莺。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡奏甫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凌受,到底是詐尸還是另有隱情阵子,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布胜蛉,位于F島的核電站挠进,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏誊册。R本人自食惡果不足惜领突,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望案怯。 院中可真熱鬧君旦,春花似錦、人聲如沸嘲碱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽麦锯。三九已至捞魁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間离咐,已是汗流浹背谱俭。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工奉件, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昆著。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓县貌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凑懂。 傳聞我的和親對象是個殘疾皇子煤痕,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容