Class ListElement<T>

java.lang.Object
net.chen.legacyLand.gui.elements.ListElement<T>
All Implemented Interfaces:
GuiElement

public class ListElement<T> extends Object implements GuiElement
列表元素 - 带分页的单选列表 占用整个 Inventory(除底部导航行),每页最多 45 个选项
  • Constructor Details

  • Method Details

    • nameMapper

      public ListElement<T> nameMapper(Function<T,String> mapper)
    • loreMapper

      public ListElement<T> loreMapper(Function<T, List<String>> mapper)
    • materialMapper

      public ListElement<T> materialMapper(Function<T, org.bukkit.Material> mapper)
    • onSelect

      public ListElement<T> onSelect(Consumer<T> callback)
    • validator

      public ListElement<T> validator(Consumer<Object> validator)
    • getId

      public String getId()
      Description copied from interface: GuiElement
      获取元素的唯一标识符
      Specified by:
      getId in interface GuiElement
      Returns:
      元素 ID
    • getDisplayName

      public String getDisplayName()
      Description copied from interface: GuiElement
      获取元素的显示名称
      Specified by:
      getDisplayName in interface GuiElement
      Returns:
      显示名称
    • getSlot

      public int getSlot()
      Description copied from interface: GuiElement
      获取元素的槽位位置
      Specified by:
      getSlot in interface GuiElement
      Returns:
      槽位索引(-1 表示自动分配)
    • setSlot

      public void setSlot(int slot)
      Description copied from interface: GuiElement
      设置元素的槽位位置
      Specified by:
      setSlot in interface GuiElement
      Parameters:
      slot - 槽位索引
    • renderToInventory

      public void renderToInventory(org.bukkit.inventory.Inventory inventory)
      将列表渲染到整个 Inventory(由 GuiForm 调用)
    • handleInventoryClick

      public void handleInventoryClick(org.bukkit.entity.Player player, GuiSession session, int clickedSlot)
      处理 Inventory 点击(由 GuiForm 路由)
    • render

      public org.bukkit.inventory.ItemStack render(GuiSession session)
      Description copied from interface: GuiElement
      渲染元素为物品堆
      Specified by:
      render in interface GuiElement
      Parameters:
      session - 当前会话(包含玩家信息)
      Returns:
      渲染后的物品堆
    • onClick

      public void onClick(org.bukkit.entity.Player player, GuiSession session, org.bukkit.event.inventory.ClickType clickType)
      Description copied from interface: GuiElement
      处理玩家点击事件
      Specified by:
      onClick in interface GuiElement
      Parameters:
      player - 点击的玩家
      session - 当前会话
      clickType - 点击类型
    • validate

      public boolean validate(org.bukkit.entity.Player player)
      Description copied from interface: GuiElement
      验证元素的当前值
      Specified by:
      validate in interface GuiElement
      Parameters:
      player - 目标玩家
      Returns:
      是否通过验证
    • setValue

      public void setValue(Object value)
      Description copied from interface: GuiElement
      设置元素的值
      Specified by:
      setValue in interface GuiElement
      Parameters:
      value - 新值
    • getValue

      public Object getValue()
      Description copied from interface: GuiElement
      获取元素的当前值
      Specified by:
      getValue in interface GuiElement
      Returns:
      当前值
    • getValidator

      public Consumer<Object> getValidator()
      Description copied from interface: GuiElement
      获取元素的验证器
      Specified by:
      getValidator in interface GuiElement
      Returns:
      验证器(可为 null)