Class GemManager

java.lang.Object
me.qscbm.inlayx.gem.GemManager

public class GemManager extends Object
宝石管理.
  • Constructor Details

    • GemManager

      public GemManager(InlayX plugin)
  • Method Details

    • loadGems

      public void loadGems()
    • getGems

      public Map<String,Gem> getGems()
    • getAllGems

      public Collection<Gem> getAllGems()
    • getGem

      public Gem getGem(String id)
    • getDropGem

      public Gem getDropGem(String source, int mobLevel)
      按掉落来源与怪物等级随机选取一颗掉落的宝石.

      各宝石的最终掉落率 = drop.chance + mobLevel * drop.per_level_rate (限制在 [0, 1]). 总掉落率 = min(各宝石最终掉落率之和, 1.0), 命中后按最终掉落率加权选择一颗宝石.

    • registerGem

      public void registerGem(Gem gem)
      注册一个宝石(供外部 API 使用), 重复 ID 时覆盖旧定义, 并刷新掉落索引.
    • unregisterGem

      public Gem unregisterGem(String gemId)
      注销一个宝石, 返回被移除的宝石定义, 并刷新掉落索引.
    • isGem

      public boolean isGem(org.bukkit.inventory.ItemStack item)
    • getGemId

      public String getGemId(org.bukkit.inventory.ItemStack item)
    • createGemItem

      public org.bukkit.inventory.ItemStack createGemItem(String gemId)
    • loreHasEmptySocket

      public boolean loreHasEmptySocket(org.bukkit.inventory.meta.ItemMeta meta)
    • canSocketGem

      public boolean canSocketGem(org.bukkit.inventory.ItemStack item)
    • canSocketGem

      public boolean canSocketGem(org.bukkit.inventory.meta.ItemMeta meta)
    • canSocketGemType

      public boolean canSocketGemType(org.bukkit.inventory.ItemStack equipment, String gemId)
    • hasSocketedGems

      public boolean hasSocketedGems(org.bukkit.inventory.ItemStack item)
    • getSocketedGems

      public List<String> getSocketedGems(org.bukkit.inventory.ItemStack item)
    • getSocketSlots

      public List<SocketSlot> getSocketSlots(org.bukkit.inventory.ItemStack item)
    • getSocketCount

      public int getSocketCount(org.bukkit.inventory.ItemStack item)
    • getSocketCount

      public int getSocketCount(org.bukkit.inventory.meta.ItemMeta meta)
    • hasSocketLore

      public boolean hasSocketLore(org.bukkit.inventory.ItemStack item)
    • addSlotToItem

      public org.bukkit.inventory.ItemStack addSlotToItem(org.bukkit.inventory.ItemStack item, int sockets, GemType socketType)
    • removeSlotFromItem

      public org.bukkit.inventory.ItemStack removeSlotFromItem(org.bukkit.inventory.ItemStack item, int sockets, GemType socketType)
    • socketGem

      public SocketResult socketGem(org.bukkit.inventory.ItemStack equipment, org.bukkit.inventory.ItemStack gemItem)
    • socketGem

      public SocketResult socketGem(@Nullable org.bukkit.entity.Player actor, org.bukkit.inventory.ItemStack equipment, org.bukkit.inventory.ItemStack gemItem)
    • addGem

      public SocketResult addGem(org.bukkit.inventory.ItemStack equipment, String gemId)
    • addGem

      public SocketResult addGem(@Nullable org.bukkit.entity.Player actor, org.bukkit.inventory.ItemStack equipment, String gemId)
    • extractGem

      public ExtractResult extractGem(org.bukkit.inventory.ItemStack item, String gemId)
    • extractGem

      public ExtractResult extractGem(@Nullable org.bukkit.entity.Player actor, org.bukkit.inventory.ItemStack item, String gemId)
    • removeGem

      public boolean removeGem(org.bukkit.inventory.ItemStack item, String gemId)
    • createSocketGUI

      public org.bukkit.inventory.Inventory createSocketGUI()