package me.lethunderhawk.custom.item.concrete.ability; import me.lethunderhawk.custom.item.abstraction.ability.AbilityContext; import me.lethunderhawk.custom.item.abstraction.handling.AbilityHandler; import me.lethunderhawk.custom.item.abstraction.handling.ResolvedParams; import me.lethunderhawk.fluxapi.util.gui.InventoryManager; import me.lethunderhawk.profile.data.sacks.Sack; import me.lethunderhawk.profile.data.sacks.SackType; import me.lethunderhawk.profile.data.sacks.foraging.ForagingSackGUI; import me.lethunderhawk.profile.data.sacks.mining.MiningSackGUI; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerInteractEvent; public class SackAbility implements AbilityHandler { private final SackType type; public SackAbility(SackType sackType) { this.type = sackType; } @Override public void execute(AbilityContext context, ResolvedParams params) { Player p = context.player(); PlayerInteractEvent event = ((PlayerInteractEvent) context.event()); event.setCancelled(true); if(Sack.getRegisteredType(type) != null){ if(type.equals(SackType.MINING)){ InventoryManager.openFor(p, new MiningSackGUI(p)); }else if(type.equals(SackType.FORAGING)){ InventoryManager.openFor(p, new ForagingSackGUI(p, 0)); } } } }