![JAR search and dependency download from the Maven repository](/logo.png)
ru.cwcode.tkach.refreshmenu.inventory.view.drawer.ArtExtendedViewDrawer Maven / Gradle / Ivy
package ru.cwcode.tkach.refreshmenu.inventory.view.drawer;
import org.bukkit.inventory.ItemStack;
import ru.cwcode.tkach.refreshmenu.MenuContext;
import ru.cwcode.tkach.refreshmenu.inventory.ingredient.ArtIngredient;
import ru.cwcode.tkach.refreshmenu.inventory.ingredient.Ingredient;
import ru.cwcode.tkach.refreshmenu.inventory.view.ArtExtendedView;
import java.util.HashMap;
import java.util.Set;
public class ArtExtendedViewDrawer extends ExtendedViewDrawer {
ArtExtendedView extends Ingredient, ? extends ArtIngredient> view;
HashMap artDraws = new HashMap<>();
@Override
public synchronized void draw(MenuContext context) {
if (!(context.view() instanceof ArtExtendedView extends Ingredient, ? extends ArtIngredient> artExtendedView))
throw new IllegalArgumentException("ArtExtendedViewDrawer can only be used with extends ArtExtendedView>");
view = artExtendedView;
super.draw(context);
}
@Override
public synchronized void drawChars(MenuContext context, Set characters) {
if (!(context.view() instanceof ArtExtendedView extends Ingredient, ? extends ArtIngredient> artExtendedView))
throw new IllegalArgumentException("ArtExtendedViewDrawer can only be used with extends ArtExtendedView>");
view = artExtendedView;
super.drawChars(context, characters);
}
@Override
protected ItemStack findItem(MenuContext context, int slot, char shapeChar) {
ItemStack item = super.findItem(context, slot, shapeChar);
if (item != null && !item.getType().isAir()) return item;
ArtIngredient art = view.getArts().get(shapeChar);
if(art == null) return null;
int draws = artDraws.getOrDefault(shapeChar, 0);
if (art.getMaxDraws() > -1 && draws > art.getMaxDraws()) return null;
artDraws.put(shapeChar, draws + 1);
return view.getArts().get(shapeChar).getItem(context);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy