快速開始
本頁將教你如何創建你的第一個使用 ELD framework 框架開發的插件。
若果你使用 Maven, 你可以依照下列的 文本 掛接 ELDependenci 框架。
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/ELDependenci/eldependenci</url>
</repository><dependency>
<groupId>org.eldependenci</groupId>
<artifactId>eldependenci-bukkit</artifactId>
<version>{最新版本}</version>
<scope>provided</scope>
</dependency><dependency>
<groupId>org.eldependenci</groupId>
<artifactId>eldependenci-bungee</artifactId>
<version>{最新版本}</version>
<scope>provided</scope>
</dependency>首先你需要創建兩個 classes, 第一個是 Registry,用於註冊監聽器與指令。
public class TesterRegistry implements ComponentsRegistry {
@Override
public void registerCommand(CommandRegistry<CommandSender> commandRegistry) { //註冊指令
}
@Override
public void registerListeners(ListenerRegistry<Listener> listenerRegistry) { //註冊監聽器
}
}第二個是 LifeCycle, 用於插件的生命週期執行。
LifeCycle 類 和 Registry 類 必須為無參數構造器。
開始創建你的 Main Class。
最後,設置好 plugin.yml, 把 main 指向至 繼承 ELDBukkitPlugin 的 class (ELDTester.java) , 你的第一個ELD插件就完成了。
創建指令
以下範例將編寫分支指令。
最後,在 Registry class 定義關係。
事件監聽器
在註冊事件監聽器中,你可以直接註冊原版的事件監聽器來使其可以進行依賴注入。
Yaml 文件配置
此框架採用 ORM 設計進行 Yaml 文件配置。假設你有如下文件配置:
文件映射物件需設計如下。
假若你的文件配置如下,則可使用 Map 裝載。
你也可以裝載任何繼承了 ConfigurationSerializable 的 Bukkit Object 類型,例如 ItemStack 或 Location 等等。
最後在你的 Main class 中,註冊 映射物件。
註冊後,你可把文件映射物件當作可注入實例使用。
注入實例
注入文件映射物件
以分支指令為例。
以事件監聽器為例
注入自定義單例 (Singleton)
註冊單例
使用: 以生命週期為例
@Inject 除了使用在 instance field 之外,你也可以使用於 constructor (建構子/構造器) 之中。
你無法使用 @Inject 於 不可注入的實例之中,否則會報錯。
注入服務 (Service)
服務與單例性質基本相同,但其分別在於服務是使用 interface 作為媒介,而 單例 則使用 實例 。 使用 interface 作為媒介的好處在於避免出現高耦合的問題,通常適用於作為插件對外接口(API), 或是出現不同的實作方式時。
你可以在任何可進行依賴注入的實例中注入可注入實例。
可注入實例包括如下
文件映射物件
服務 (Service)
單例 (Singleton)
插件主類 (Plugin)
可進行依賴注入的實例包括如下
指令 (繼承 CommandNode 的 class)
監聽器 (繼承 Listener 或 ELDListener 的 class)
已註冊實例 (使用 ServiceCollection 註冊的單例 [Singleton])
已註冊服務 (使用 ServiceCollection 註冊的服務 [Service])
生命週期 (繼承 ELDLifeCycle 的 class)
最后更新于