Java 类org.bukkit.event.inventory.ClickType 实例源码

项目:Banmanager    文件:UserInterface.java   
@EventHandler
public final void __handleInvClick(InventoryClickEvent e) {
    Inventory clickedInventory = e.getClickedInventory();
    ClickType clickType = e.getClick();
    Player player = (Player) e.getWhoClicked();
    ItemStack clicked = e.getCurrentItem();

    if (clickedInventory == null)
        return;

    if (clickedInventory == inventory) {
        e.setCancelled(true);

        if (clicked != null) {
            BiConsumer<Player, ClickType> b;

            if ((b = clicks.get(e.getRawSlot())) != null) {
                b.accept(player, clickType);

                if (updateOnClick && ! destroyed)
                    update();
            }
        }
    }
}
项目:HCFCore    文件:KitsCommand.java   
@EventHandler
public void onInteract(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();

    if(!ChatColor.stripColor(e.getClickedInventory().getTitle()).equalsIgnoreCase("HCRiots Donator Kits")) {
        return;
    }

    if(e.getInventory().getSize() != 45) {
        return;
    }

    if(e.getClick() != ClickType.LEFT) {
        return;
    }

    if(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName()).equalsIgnoreCase("Titanium Kit")) {
        this.giveTitaniumKit(player);
    }
}
项目:HCFCore    文件:FactionManagerArgument.java   
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    Player player = (Player) event.getWhoClicked();
    ItemStack clicked = event.getCurrentItem();
    Inventory inventory = event.getInventory();

    if (inventory.getName().equals("Faction Management")) {

        if (clicked.getType() == Material.SKULL_ITEM) {
            if (event.getClick() == ClickType.LEFT) {
                Bukkit.dispatchCommand(player, "f promote " + clicked.getItemMeta().getDisplayName());
                event.setCancelled(true);
            }
            if (event.getClick() == ClickType.MIDDLE){
                Bukkit.dispatchCommand(player, "f leader " + clicked.getItemMeta().getDisplayName());
                event.setCancelled(true);
            }
            if (event.getClick() == ClickType.RIGHT) {
                Bukkit.dispatchCommand(player, "f demote " + clicked.getItemMeta().getDisplayName());
                event.setCancelled(true);
            }
        }
    }
}
项目:ProjectAres    文件:EventFilterMatchModule.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void onInteract(final PlayerInteractEvent event) {
    if(cancelUnlessInteracting(event, event.getPlayer())) {
        // Allow the how-to book to be read
        if(event.getMaterial() == Material.WRITTEN_BOOK) {
            event.setUseItemInHand(Event.Result.ALLOW);
        } else {
            event.setUseItemInHand(Event.Result.DENY);
            event.setUseInteractedBlock(Event.Result.DENY);
        }

        MatchPlayer player = getMatch().getPlayer(event.getPlayer());
        if(player == null) return;

        if(!player.isSpawned()) {
            ClickType clickType = convertClick(event.getAction(), event.getPlayer());
            if(clickType == null) return;

            getMatch().callEvent(new ObserverInteractEvent(player, clickType, event.getClickedBlock(), null, event.getItem()));
        }

        // Right-clicking armor will put it on unless we do this
        event.getPlayer().updateInventory();
    }
}
项目:ProjectAres    文件:PickerMatchModule.java   
@EventHandler
public void rightClickIcon(final ObserverInteractEvent event) {
    if(event.getClickType() != ClickType.RIGHT) return;

    MatchPlayer player = event.getPlayer();
    if(!canUse(player)) return;

    ItemStack hand = event.getClickedItem();
    if(ItemUtils.isNothing(hand)) return;

    String displayName = hand.getItemMeta().getDisplayName();
    if(displayName == null) return;

    if(hand.getType() == Button.JOIN.material) {
        event.setCancelled(true);
        if(canOpenWindow(player)) {
            showWindow(player);
        } else {
            // If there is nothing to pick, just join immediately
            jmm.requestJoin(player, JoinRequest.user());
        }
    } else if(hand.getType() == Button.LEAVE.material) {
        event.setCancelled(true);
        jmm.requestObserve(player);
    }
}
项目:ProjectAres    文件:ViewInventoryMatchModule.java   
@EventHandler(ignoreCancelled = true)
public void showInventories(final ObserverInteractEvent event) {
    if(event.getClickType() != ClickType.RIGHT) return;
    if(event.getPlayer().isDead()) return;

    if(event.getClickedParticipant() != null) {
        event.setCancelled(true);
        if(canPreviewInventory(event.getPlayer(), event.getClickedParticipant())) {
            this.previewPlayerInventory(event.getPlayer().getBukkit(), event.getClickedParticipant().getInventory());
        }
    } else if(event.getClickedEntity() instanceof InventoryHolder && !(event.getClickedEntity() instanceof Player)) {
        event.setCancelled(true);
        this.previewInventory(event.getPlayer().getBukkit(), ((InventoryHolder) event.getClickedEntity()).getInventory());
    } else if(event.getClickedBlockState() instanceof InventoryHolder) {
        event.setCancelled(true);
        this.previewInventory(event.getPlayer().getBukkit(), ((InventoryHolder) event.getClickedBlockState()).getInventory());
    }
}
项目:ProjectAres    文件:ButtonManager.java   
@EventHandler(priority = EventPriority.LOW)
public void onInteract(PlayerInteractEvent event) {
    if(!event.hasItem()) return;

    final ClickType click;
    switch(event.getAction()) {
        case LEFT_CLICK_AIR:
        case LEFT_CLICK_BLOCK:
            click = ClickType.LEFT;
            break;

        case RIGHT_CLICK_AIR:
        case RIGHT_CLICK_BLOCK:
            click = ClickType.RIGHT;
            break;

        default:
            return;
    }

    if(onButtonClick(event.getItem(), event.getActor(), click, event)) {
        event.setUseItemInHand(Event.Result.DENY);
        event.setUseInteractedBlock(Event.Result.DENY);
    }
}
项目:Hub    文件:GuiWell.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.equals("craft"))
    {
        if (SamaGamesAPI.get().getPlayerManager().getPlayerData(player.getUniqueId()).getPowders() >= 64)
        {
            this.hub.getGuiManager().openGui(player, new GuiWellCraft(this.hub, this.parent));
        }
        else
        {
            player.sendMessage(Well.TAG + ChatColor.RED + "Vous n'avez pas assez de poussières d'\u272F !");
        }
    }
    else if (action.equals("back"))
    {
        this.hub.getGuiManager().closeGui(player);
        this.parent.stop(player);
    }
}
项目:Hub    文件:JukeboxManager.java   
@Override
public void enableCosmetic(Player player, JukeboxDiskCosmetic cosmetic, ClickType clickType, boolean login)
{
    if (cosmetic.isOwned(player))
    {
        if (cosmetic.getAccessibility().canAccess(player))
        {
            this.play(cosmetic, player);

            AbstractGui gui = (AbstractGui) this.hub.getGuiManager().getPlayerGui(player);

            if (gui != null)
                gui.update(player);
        }
        else
        {
            player.sendMessage(PlayerManager.COSMETICS_TAG + ChatColor.RED + "Vous n'avez pas le grade nécessaire pour utiliser cette cosmétique.");
        }
    }
    else
    {
        player.sendMessage(PlayerManager.COSMETICS_TAG + ChatColor.RED + "Vous ne possédez pas ce cosmétique. Tentez de le débloquer auprès de Graou !");
    }
}
项目:Hub    文件:ParticleManager.java   
@Override
public void enableCosmetic(Player player, ParticleCosmetic cosmetic, ClickType clickType, boolean login, NullType useless)
{
    try
    {
        Effect particleEffectObject = cosmetic.getParticleEffect().getConstructor(EffectManager.class).newInstance(this.effectManager);
        particleEffectObject.setEntity(player);
        particleEffectObject.infinite();
        particleEffectObject.start();

        this.playersParticleEffect.put(player.getUniqueId(), particleEffectObject);

        if (!login)
            player.sendMessage(PlayerManager.COSMETICS_TAG + ChatColor.GREEN + "Vous voilà noyé sous les particules...");
    }
    catch (ReflectiveOperationException e)
    {
        this.hub.getCosmeticManager().log(Level.SEVERE, "Can't create EntityEffect object to " + player.getName() + "'s particle effect!");
    }
}
项目:HCFCore    文件:FactionManagerArgument.java   
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    Player player = (Player) event.getWhoClicked();
    ItemStack clicked = event.getCurrentItem();
    Inventory inventory = event.getInventory();

    if (inventory.getName().equals("Faction Management")) {

        if (clicked.getType() == Material.SKULL_ITEM) {
            if (event.getClick() == ClickType.LEFT) {
                Bukkit.dispatchCommand(player, "f promote " + clicked.getItemMeta().getDisplayName());
                event.setCancelled(true);
            }
            if (event.getClick() == ClickType.MIDDLE){
                Bukkit.dispatchCommand(player, "f leader " + clicked.getItemMeta().getDisplayName());
                event.setCancelled(true);
            }
            if (event.getClick() == ClickType.RIGHT) {
                Bukkit.dispatchCommand(player, "f demote " + clicked.getItemMeta().getDisplayName());
                event.setCancelled(true);
            }
        }
    }
}
项目:Hub    文件:GuiCosmeticsCategory.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.startsWith("cosmetic_"))
    {
        int cosmetic = Integer.parseInt(action.split("_")[1]);
        this.manager.enableCosmetic(player, this.manager.getRegistry().getElementByStorageId(cosmetic), clickType, false);
    }
    else if (action.equals("delete"))
    {
        this.manager.disableCosmetics(player, false, false);
    }
    else if (action.equals("back"))
    {
        this.hub.getGuiManager().openGui(player, new GuiCosmetics(this.hub));
    }
}
项目:Hub    文件:GuiClothingSet.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.startsWith("cosmetic_"))
    {
        int cosmetic = Integer.parseInt(action.split("_")[1]);
        this.hub.getCosmeticManager().getClothManager().enableCosmetic(player, this.hub.getCosmeticManager().getClothManager().getRegistry().getElementByStorageId(cosmetic), clickType, false);
    }
    else if (action.equals("delete"))
    {
        this.hub.getCosmeticManager().getClothManager().disableCosmetics(player, false, false);
    }
    else if (action.equals("back"))
    {
        this.hub.getGuiManager().openGui(player, new GuiClothingSets(this.hub));
    }
}
项目:Hub    文件:GuiClothingSets.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.startsWith("set_"))
    {
        int setStorageId = Integer.parseInt(action.split("_")[1]);
        this.hub.getGuiManager().openGui(player, new GuiClothingSet(this.hub, ((ClothRegistry) this.hub.getCosmeticManager().getClothManager().getRegistry()).getClothingSetByStorageId(setStorageId)));
    }
    else if (action.equals("delete"))
    {
        this.hub.getCosmeticManager().getClothManager().disableCosmetics(player, false, false);
    }
    else if (action.equals("back"))
    {
        this.hub.getGuiManager().openGui(player, new GuiCosmetics(this.hub));
    }
}
项目:Hub    文件:GuiShopCategory.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.equals("back"))
    {
        if (this.before != null)
            this.hub.getGuiManager().openGui(player, this.before);
        else
            this.hub.getGuiManager().closeGui(player);
    }
    else if (!action.equals("none"))
    {
        String iconAction = action.split("_")[1];
        ShopIcon shopIcon = this.category.getIconByAction(iconAction);
        shopIcon.execute(player, clickType);
    }
}
项目:InventoryAPI    文件:GUICounter.java   
public GUICounter() {
    label = new GUILabel( "§a" + count, Material.REDSTONE );
    label.setPosition( position );
    label.setAmount( count );
    addEvent( new GUIEvent() {
        @Override
        public void onClick( ComponentClickEvent event ) {
            if ( event.getClick() == ClickType.LEFT ) {
                count += steps;
                if ( count < 64 ) {
                    label.setAmount( count );
                    label.setTitle( "§a" + GUICounter.this.count );
                    label.draw();
                }
            }
            else if ( event.getClick() == ClickType.RIGHT ) {
                count -= steps;
                if ( count > 0 ) {
                    label.setAmount( count );
                    label.setTitle( "§a" + GUICounter.this.count );
                    label.draw();
                }
            }
        }
    } );
}
项目:FactionsXL    文件:IdeaMenu.java   
private void onIdeasClick(InventoryClickEvent event) {
    event.setCancelled(true);
    PageGUI.playSound(event);
    ItemStack button = event.getCurrentItem();
    if (button == null) {
        return;
    }

    HumanEntity player = event.getWhoClicked();
    if (button.equals(BACK)) {
        openGroups(player);
        return;
    } else if (!faction.isPrivileged(player)) {
        return;
    }

    Idea idea = IdeaGroup.getIdeaByIcon(button);
    if (faction.getIdeaGroups().contains(idea.getGroup()) && !faction.getIdeas().contains(idea) && event.getClick() == ClickType.SHIFT_LEFT) {
        boolean purchased = idea.purchase(faction);
        MessageUtil.sendMessage(player, (purchased ? FMessage.MISC_PURCHASE_SUCCESS : FMessage.MISC_PURCHASE_FAIL).getMessage(idea.getName()));
    }
    openIdeas(player, idea.getGroup());
}
项目:helper    文件:SimpleSlot.java   
/**
 * Clears all bindings on this slot for a given click type.
 *
 * @return this slot
 */
@Nonnull
@Override
public Slot clearBindings(ClickType type) {
    handlers.remove(type);
    return this;
}
项目:helper    文件:SimpleSlot.java   
@Nonnull
@Override
public Slot bind(@Nonnull ClickType type, @Nonnull Consumer<InventoryClickEvent> handler) {
    Preconditions.checkNotNull(type, "type");
    Preconditions.checkNotNull(handler, "handler");
    handlers.computeIfAbsent(type, t -> ConcurrentHashMap.newKeySet()).add(handler);
    return this;
}
项目:helper    文件:SimpleSlot.java   
@Nonnull
@Override
public Slot bind(@Nonnull ClickType type, @Nonnull Runnable handler) {
    Preconditions.checkNotNull(type, "type");
    Preconditions.checkNotNull(handler, "handler");
    handlers.computeIfAbsent(type, t -> ConcurrentHashMap.newKeySet()).add(Item.transformRunnable(handler));
    return this;
}
项目:helper    文件:SimpleSlot.java   
@Nonnull
@Override
public Slot bind(@Nonnull Consumer<InventoryClickEvent> handler, @Nonnull ClickType... types) {
    for (ClickType type : types) {
        bind(type, handler);
    }
    return this;
}
项目:helper    文件:SimpleSlot.java   
@Nonnull
@Override
public Slot bind(@Nonnull Runnable handler, @Nonnull ClickType... types) {
    for (ClickType type : types) {
        bind(type, handler);
    }
    return this;
}
项目:helper    文件:Item.java   
@Nonnull
public Builder bind(@Nonnull ClickType type, @Nullable Consumer<InventoryClickEvent> handler) {
    Preconditions.checkNotNull(type, "type");
    if (handler != null) {
        handlers.put(type, handler);
    } else {
        handlers.remove(type);
    }
    return this;
}
项目:helper    文件:Item.java   
@Nonnull
public Builder bind(@Nonnull ClickType type, @Nullable Runnable handler) {
    Preconditions.checkNotNull(type, "type");
    if (handler != null) {
        handlers.put(type, transformRunnable(handler));
    } else {
        handlers.remove(type);
    }
    return this;
}
项目:helper    文件:Item.java   
@Nonnull
public Builder bind(@Nullable Consumer<InventoryClickEvent> handler, @Nonnull ClickType... types) {
    for (ClickType type : types) {
        bind(type, handler);
    }
    return this;
}
项目:helper    文件:Item.java   
@Nonnull
public Builder bind(@Nullable Runnable handler, @Nonnull ClickType... types) {
    for (ClickType type : types) {
        bind(type, handler);
    }
    return this;
}
项目:helper    文件:Item.java   
@Nonnull
public <T extends Runnable> Builder bindAllRunnables(@Nonnull Iterable<Map.Entry<ClickType, T>> handlers) {
    Preconditions.checkNotNull(handlers, "handlers");
    for (Map.Entry<ClickType, T> handler : handlers) {
        bind(handler.getKey(), handler.getValue());
    }
    return this;
}
项目:MenuBuilder    文件:InventoryMenuBuilder.java   
/**
 * Add a {@link InventoryMenuListener} for the specified {@link ClickType}s
 *
 * @param listener the {@link InventoryMenuListener} to add
 * @param actions  the {@link ClickType}s the listener should listen for (you can also use {@link #ALL_CLICK_TYPES} or {@link ClickType#values()}
 * @return the InventoryMenuBuilder
 */
public InventoryMenuBuilder onInteract(InventoryMenuListener listener, ClickType... actions) {
    if (actions == null || (actions != null && actions.length == 0)) {
        throw new IllegalArgumentException("must specify at least one action");
    }
    try {
        MenuBuilderPlugin.instance.inventoryListener.registerListener(this, listener, actions);
    } catch (IllegalArgumentException e) {
        throw e;
    }
    return this;
}
项目:ArmorPlus    文件:GUIEvent.java   
@EventHandler
public void onClick(InventoryClickEvent e) {
    if (ChatColor.stripColor(e.getInventory().getTitle()).equals("장신구 장착")) {
        if (e.getSlotType() != InventoryType.SlotType.OUTSIDE) {
            if ((e.getClick() == ClickType.RIGHT) || (e.getClick() == ClickType.LEFT)) {
                if ((e.getRawSlot() == 20) || (e.getRawSlot() == 21) || (e.getRawSlot() == 22) || (e.getRawSlot() == 23) || (e.getRawSlot() == 24)) {

                } else if (e.getRawSlot() <= e.getInventory().getSize()) {
                    e.setCancelled(true);
                }

            } else e.setCancelled(true);
        }
    }
}
项目:SparseBukkitAPI    文件:ExampleMenu.java   
public ExampleMenu()
{
    super("Test Menu", 4);

    setItem(0, 0, new MenuItem()
    {
        public ItemStack getItem()
        {
            return new ItemBuilder(Material.PAPER).colorName("&a0,0").enchantEffect().build();
        }

        public boolean shouldUpdateItem()
        {
            return false;
        }

        public boolean onClick(Player player, ClickType clickType, InventoryAction action)
        {
            Bukkit.broadcastMessage(player.getName()+" clicked");
            return false;
        }
    });

    setItem(1,1, new BasicItem(
            new ItemBuilder(Material.PAPER).colorName("&a1,1").enchantEffect().build(),
            (player, clickType, action) ->
            {
                Bukkit.broadcastMessage(player.getName() + " clicked BasicItem");
                return false;
            })
    );
}
项目:MenuBuilder    文件:InventoryListener.java   
public void registerListener(InventoryMenuBuilder builder, InventoryMenuListener listener, ClickType[] actions) {
    Map<ClickType, List<InventoryMenuListener>> map = listenerMap.get(builder.getInventory());
    if (map == null) { map = new HashMap<>(); }
    for (ClickType action : actions) {
        List<InventoryMenuListener> list = map.get(action);
        if (list == null) { list = new ArrayList<>(); }
        if (list.contains(listener)) { throw new IllegalArgumentException("listener already registered"); }
        list.add(listener);

        map.put(action, list);
    }

    listenerMap.put(builder.getInventory(), map);
}
项目:ProjectAres    文件:EventFilterMatchModule.java   
@Nullable ClickType convertClick(Action action, Player player) {
    switch(action) {
        case LEFT_CLICK_BLOCK:
        case LEFT_CLICK_AIR:
            return ClickType.LEFT;

        case RIGHT_CLICK_BLOCK:
        case RIGHT_CLICK_AIR:
            return convertClick(ClickType.RIGHT, player);

        default:
            return null;
    }
}
项目:ProjectAres    文件:EventFilterMatchModule.java   
void callObserverInteractEvent(PlayerInteractEntityEvent event) {
    MatchPlayer player = getMatch().getPlayer(event.getPlayer());
    if(player == null || player.isSpawned()) return;

    getMatch().callEvent(new ObserverInteractEvent(player,
                                                   convertClick(ClickType.RIGHT, event.getPlayer()),
                                                   null,
                                                   event.getRightClicked(),
                                                   event.getPlayer().getInventory().getItem(event.getHand())));
}
项目:ProjectAres    文件:EventFilterMatchModule.java   
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onAttack(final PlayerAttackEntityEvent event) {
    if(cancelUnlessInteracting(event, event.getPlayer())) {
        final MatchPlayer attacker = getMatch().getPlayer(event.getPlayer());
        if(attacker == null || attacker.isSpawned()) return;
        getMatch().callEvent(new ObserverInteractEvent(attacker, ClickType.LEFT, null, event.getLeftClicked(), event.getPlayer().getInventory().getItemInMainHand()));
    }
}
项目:ProjectAres    文件:ObserverInteractEvent.java   
public ObserverInteractEvent(MatchPlayer player, ClickType clickType, @Nullable Block clickedBlock, @Nullable Entity clickedEntity, @Nullable ItemStack clickedItem) {
    super(player);
    this.clickType = checkNotNull(clickType);
    this.clickedBlock = clickedBlock;
    this.clickedEntity = clickedEntity;
    this.clickedItem = clickedItem;
}
项目:ProjectAres    文件:ButtonManager.java   
private boolean onButtonClick(ItemStack button, Player clicker, ClickType click, Event event) {
    if(!TAG.has(button)) return false;
    final String id = TAG.get(button);

    final ButtonListener listener = listeners.get(id);
    if(listener == null) return false;

    return listener.buttonClicked(button, clicker, click, event);
}
项目:ProjectAres    文件:WindowListener.java   
/**
 * Called when an open window is clicked.
 */
default boolean windowClicked(InventoryView window,
                              Inventory inventory,
                              ClickType clickType,
                              InventoryType.SlotType slotType,
                              int slotIndex,
                              @Nullable ItemStack item) {
    return false;
}
项目:ProjectAres    文件:NavigatorInterface.java   
@Override
public boolean buttonClicked(ItemStack stack, Player clicker, ClickType clickType, Event event) {
    if(connector.isConnectable()) {
        windowManager.closeWindow(clicker);
        connector.teleport(clicker);
    }
    return true;
}
项目:Hub    文件:GuiGraou.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.startsWith("pearl_"))
    {
        Pearl pearl = this.pearls.get(UUID.fromString(action.split("_")[1]));

        if (pearl.getStars() == 4 && !SamaGamesAPI.get().getPermissionsManager().hasPermission(player, "network.vip"))
        {
            player.sendMessage(Graou.TAG + ChatColor.GREEN + "Vous n'avez pas le grade nécéssaire pour échanger cette perle ! (" + ChatColor.GREEN + "VIP" + ChatColor.RED + ")");
            return;
        }
        else if (pearl.getStars() == 5 && !SamaGamesAPI.get().getPermissionsManager().hasPermission(player, "network.vipplus"))
        {
            player.sendMessage(Graou.TAG + ChatColor.GREEN + "Vous n'avez pas le grade nécéssaire pour échanger cette perle ! (" + ChatColor.AQUA + "VIP" + ChatColor.LIGHT_PURPLE + "+" + ChatColor.RED + ")");
            return;
        }

        this.parent.openBox(player, this.pearls.get(UUID.fromString(action.split("_")[1])));
        this.hub.getGuiManager().closeGui(player);
    }
    else if (action.equals("back"))
    {
        this.hub.getGuiManager().closeGui(player);
        this.parent.stop(player);
    }
}
项目:Hub    文件:GuiWellCraft.java   
@Override
public void onClick(Player player, ItemStack stack, String action, ClickType clickType)
{
    if (action.startsWith("slot_"))
    {
        int slot = Integer.parseInt(action.split("_")[1]);

        if (clickType == ClickType.LEFT && this.getRemainingPowders() > 0)
        {
            this.numbers[slot]++;
        }
        else if (clickType == ClickType.RIGHT && this.numbers[slot] > 0)
        {
            this.numbers[slot]--;
        }

        this.update(player);
    }
    else if (action.equals("confirm"))
    {
        if (this.getRemainingPowders() == 0)
        {
            this.hub.getInteractionManager().getWellManager().startPearlCrafting(player, this.numbers);
            this.hub.getGuiManager().openGui(player, new GuiWell(this.hub, this.parent));
        }
        else
        {
            player.sendMessage(Well.TAG + ChatColor.RED + "Vous devez placer l'intégralité des poussières d'\u272F !");
        }
    }
    else if (action.equals("reset"))
    {
        System.arraycopy(new int[] {0, 0, 0, 0}, 0, this.numbers, 0, 4);
        this.update(player);
    }
    else if (action.equals("back"))
    {
        this.hub.getGuiManager().openGui(player, new GuiWell(this.hub, this.parent));
    }
}