All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.cwcode.tkach.refreshmenu.inventory.view.ArtExtendedView Maven / Gradle / Ivy

package ru.cwcode.tkach.refreshmenu.inventory.view;

import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import ru.cwcode.tkach.refreshmenu.inventory.ingredient.ArtIngredient;
import ru.cwcode.tkach.refreshmenu.inventory.ingredient.Ingredient;
import ru.cwcode.tkach.refreshmenu.inventory.view.drawer.ArtExtendedViewDrawer;
import ru.cwcode.tkach.refreshmenu.inventory.view.drawer.PagedViewDrawer;

import java.util.Collection;
import java.util.HashMap;
import java.util.Optional;
import java.util.function.Consumer;

public class ArtExtendedView extends ExtendedView {
  private final HashMap arts = new HashMap<>();
  
  public void setArts(Collection arts) {
    this.arts.clear();
    for (ART art : arts) {
      this.arts.put(art.getChar(), art);
    }
  }
  
  public void bindArts(ClickType clickType, Runnable runnable) {
    for (ArtIngredient art : this.arts.values()) {
      this.getBehavior().bind(art.getChar(), clickType, runnable);
    }
  }
  
  public void bindArts(ClickType clickType, Consumer consumer) {
    for (ArtIngredient art : this.arts.values()) {
      this.getBehavior().bind(art.getChar(), clickType, consumer);
    }
  }
  
  public HashMap getArts() {
    return arts;
  }
  
  @Override
  protected void initializeDrawer() {
    drawer = new ArtExtendedViewDrawer();
  }
  
  @Override
  public ArtExtendedViewDrawer getDrawer() {
    return (ArtExtendedViewDrawer) drawer;
  }
  
  protected Optional getArt(int slot) {
    return shape.findCharAtIndex(slot).map(this.arts::get);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy