SackAbility.java 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. package me.lethunderhawk.custom.item.concrete.ability;
  2. import me.lethunderhawk.custom.item.abstraction.ability.AbilityContext;
  3. import me.lethunderhawk.custom.item.abstraction.handling.AbilityHandler;
  4. import me.lethunderhawk.custom.item.abstraction.handling.ResolvedParams;
  5. import me.lethunderhawk.fluxapi.util.gui.InventoryManager;
  6. import me.lethunderhawk.profile.data.sacks.Sack;
  7. import me.lethunderhawk.profile.data.sacks.SackType;
  8. import me.lethunderhawk.profile.data.sacks.foraging.ForagingSackGUI;
  9. import me.lethunderhawk.profile.data.sacks.mining.MiningSackGUI;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.player.PlayerInteractEvent;
  12. public class SackAbility implements AbilityHandler {
  13. private final SackType type;
  14. public SackAbility(SackType sackType) {
  15. this.type = sackType;
  16. }
  17. @Override
  18. public void execute(AbilityContext context, ResolvedParams params) {
  19. Player p = context.player();
  20. PlayerInteractEvent event = ((PlayerInteractEvent) context.event());
  21. event.setCancelled(true);
  22. if(Sack.getRegisteredType(type) != null){
  23. if(type.equals(SackType.MINING)){
  24. InventoryManager.openFor(p, new MiningSackGUI(p));
  25. }else if(type.equals(SackType.FORAGING)){
  26. InventoryManager.openFor(p, new ForagingSackGUI(p, 0));
  27. }
  28. }
  29. }
  30. }