切換
舊版
前往
大廳
主題

第三節 『空』插件

此間半開一盞茶 | 2020-06-07 20:51:15 | 巴幣 2 | 人氣 105


第三節 『空』插件


基本上如字面上的意思,我們做出一個可以讓伺服器執行,但是又沒有任何實際上作為的插件,每次寫完代碼我們都要進行一次檢查,但是,由於寫出來的插件無法自行運行,因此進行封裝後使用伺服器運行插件便是例行性的工作。

main.class
1
2
3
4
5
6
7
8
9
10
package tw.org.anikaba.legendrecords;

import org.bukkit.plugin.java.JavaPlugin;

/**

* 插件主類別,用於註冊與資料庫寄存
* @author AniKaBa
*/
public class LegendRecords extends JavaPlugin {
}

class:類別


我們編輯的文檔為*.java經過封裝後為*.class,基本上在coding會需要一個主類別(main.class),我們的主類別就是主要的執行/啟動檔案。

package:套件


你可發現所謂的套件跟Linux套件是完全不一樣的,這裡的套件你可以解釋為路徑,基本上套件分2種區域,前面的tw.org.anikaba類似於網域或是作者的簽名,後面則緊接著項目名稱與其各小分類。

畢竟我們再做分類時不可避免的使用到相同的名稱,或者使用相同的項目名,相同的套件而且在不同的項目同時作用的話會發生衝突。像我自己的筆名比較少見所以我只使用3節點,而後續的插件都會這樣使用因此說像是自己的簽名也不為過。

public:公用的


你可以常常發現類似的修飾詞用在各個物件上面,也用在類別上,這是權限修飾詞,代表所有類別都可以使用這個類別或物件。

Access Level Modifier:權限修飾詞


權限表
修飾詞 同類別
同套件
不同套件的繼承類別
不同套件的非繼承類別
public/公用的




protected/保護的




default/預設的




private/私有的





這裡要注意一下,default/預設的是沒有修飾詞,也就是保持空白。

extends:繼承


生物分類
人科
猩猩屬 大猩猩屬 黑猩猩屬 人屬

在這裡我們回顧一下生物學,人科下有分類四屬,這代表各屬間有部份特性相同。

coding下這些特性我們寫入同一個Hominidae.class,而Pongo.class、Gorilla.classPan.class、Homo.class都繼承Hominidae,繼承的好處就是可以使用Hominidae除了private以外的所有物件方法等,所以我可以說Homo歸類於Hominidae,甚至於是Hominidae

但是Homo.class是一個獨立的類別所以也會有自己的物件與方法,因此我們不能說Hominidae是Homo

import:導入


java裡有許多物件,不少名稱上會有重複,因此為了辨別你我需要寫入完整路徑。

public class LegendRecords extends org.bukkit.plugin.java.JavaPlugin {



如果只有一個還好,問題是當物件使用頻率很高時就會顯得特別雜亂,使用import便可增加其可讀性,不需要編輯中打太多字也方便於後續的維護。

不過有時不可避免用兩種不同類別但是名稱相同時該如何處理呢?這時要先看一下使用度較高的就使用import,而使用少的就只能Key入包含package的全名稱了。

/**:文件註解


註解有分3種,常用範例如下:

單行註解『//』&『/*』
// GameRule資料庫存檔
private
File file = new File("./plugins/data/Rule.yml");
/* FakeMining資料庫存檔 */
private File file = new File("./plugins/data/Fake.yml");

區塊註解『/*』
/*
*
GameRule資料庫存檔
* 讓伺服器世界參數設定,可以直接修改文件,而不需要啟動伺服器才能修改
*/
private
File file = new File("./plugins/data/Rule.yml");


以及文件註解
『/**』
/**
* 插件主類別,用於註冊與資料庫寄存
* @author AniKaBa
*/
public class LegendRecords extends JavaPlugin {

以上註解在封裝後都不會寫入class檔案內。

但是文件註解有個功用,在製作javadoc可以加入說明等,詳細的方法還需要多了解之後在後續作補充。

javadoc後的顯示成果

最後,程式碼封裝後進行執行階段
[20:36:37] [Server thread/INFO]: [傳奇事記] Enabling LegendRecords v1.0.0
[20:36:37] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[20:36:37] [Server thread/INFO]: Done (44.302s)! For help, type "help"

執行後跑到Enabling就可以鬆一口氣,沒有技術上的錯誤。
送禮物贊助創作者 !
0
留言

創作回應

更多創作