001package com.ericlam.mc.eldgui.component; 002 003import org.bukkit.Material; 004import org.bukkit.inventory.ItemStack; 005 006/** 007 * 基礎組件工廠,所有組件工廠必須繼承此類 008 * @param <Factory> 組件工廠 009 */ 010public interface ComponentFactory<Factory extends ComponentFactory<Factory>> { 011 012 /** 013 * 014 * @param material 圖示 015 * @return this 016 */ 017 Factory icon(Material material); 018 019 /** 020 * 021 * @param amount 數量 022 * @return this 023 */ 024 Factory number(int amount); 025 026 /** 027 * 以該物品為組件外觀原型。注意此舉將會覆蓋之前的所有設定 (包括綁定數值和外觀等) 028 * @param item bukkit 物品 029 * @return this 030 */ 031 Factory mirror(ItemStack item); 032 033 /** 034 * 綁定組件屬性 035 * @param key 鍵 036 * @param value 數值 037 * @return this 038 */ 039 Factory bind(String key, Object value); 040 041 /** 042 * 創建組件 043 * @return this 044 */ 045 Component create(); 046 047}