org.bukkit.event.inventory.InventoryClickEvent#setCancelled ( )源码实例Demo

下面列出了org.bukkit.event.inventory.InventoryClickEvent#setCancelled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: NyaaUtils   文件: ExhibitionListener.java
@EventHandler(priority = HIGHEST, ignoreCancelled = true)
public void onPlayerFetchItem(InventoryClickEvent ev) {
    if (!(ev.getWhoClicked() instanceof Player)) return;
    if (ExhibitionFrame.isFrameInnerItem(ev.getCursor())) {
        plugin.getLogger().warning(
                String.format("Illegal Exhibition Item use: {player: %s, location: %s, item: %s}",
                        ev.getWhoClicked().getName(), ev.getWhoClicked().getLocation().toString(),
                        ev.getCursor().toString()));
        ev.setCancelled(true);
        ev.getView().setCursor(new ItemStack(Material.AIR));
    }
    if (ExhibitionFrame.isFrameInnerItem(ev.getCurrentItem())) {
        plugin.getLogger().warning(
                String.format("Illegal Exhibition Item use: {player: %s, location: %s, item: %s}",
                        ev.getWhoClicked().getName(), ev.getWhoClicked().getLocation().toString(),
                        ev.getCursor().toString()));
        ev.setCancelled(true);
        ev.setCurrentItem(new ItemStack(Material.AIR));
    }
}
 
源代码2 项目: Slimefun4   文件: BackpackListener.java
@EventHandler(ignoreCancelled = true)
public void onClick(InventoryClickEvent e) {
    ItemStack item = backpacks.get(e.getWhoClicked().getUniqueId());

    if (item != null) {
        SlimefunItem backpack = SlimefunItem.getByItem(item);

        if (backpack instanceof SlimefunBackpack) {
            if (e.getClick() == ClickType.NUMBER_KEY) {
                if (e.getClickedInventory().getType() != InventoryType.PLAYER) {
                    ItemStack hotbarItem = e.getWhoClicked().getInventory().getItem(e.getHotbarButton());

                    if (!isAllowed((SlimefunBackpack) backpack, hotbarItem)) {
                        e.setCancelled(true);
                    }
                }
            }
            else if (!isAllowed((SlimefunBackpack) backpack, e.getCurrentItem())) {
                e.setCancelled(true);
            }
        }
    }
}
 
源代码3 项目: NBTEditor   文件: InventoryForVillagerOffers.java
@Override
protected void inventoryClick(InventoryClickEvent event) {
	super.inventoryClick(event);
	int slot = event.getRawSlot();
	if (slot >= 27 && slot < getInventory().getSize()) {
		event.setCancelled(true);
	}
	if (slot >= 27 && slot < 36) {
		changeSelected(slot - 27);
	} else if (slot == 43) {
		// xp reward
		_rewardExp[_selected] = !_rewardExp[_selected];
		updateBottleButton();
		updateWoolButton();
	} else if (slot == 44) {
		// previous page
		changeIndex(event.getWhoClicked(), -9);
	} else if (slot == 53) {
		// next page
		changeIndex(event.getWhoClicked(), +9);
	} else {
		handlePaperButtons(_uses, 36, slot);
		handlePaperButtons(_maxUses, 45, slot);
	}
}
 
源代码4 项目: IridiumSkyblock   文件: BorderColorGUI.java
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
    if (e.getInventory().equals(getInventory())) {
        e.setCancelled(true);
        if (e.getClickedInventory() == null || !e.getClickedInventory().equals(getInventory())) return;
        if (e.getCurrentItem() != null) {
            if (e.getCurrentItem().equals(blue))
                IridiumSkyblock.getIslandManager().getIslandViaId(islandID).setBorderColor(Color.Blue);
            if (e.getCurrentItem().equals(red))
                IridiumSkyblock.getIslandManager().getIslandViaId(islandID).setBorderColor(Color.Red);
            if (e.getCurrentItem().equals(green))
                IridiumSkyblock.getIslandManager().getIslandViaId(islandID).setBorderColor(Color.Green);
            if (e.getCurrentItem().equals(off))
                IridiumSkyblock.getIslandManager().getIslandViaId(islandID).setBorderColor(Color.Off);
            IridiumSkyblock.getIslandManager().getIslandViaId(islandID).sendBorder();
        }
    }
}
 
源代码5 项目: PGM   文件: Carried.java
@Override
public void onEvent(InventoryClickEvent event) {
  super.onEvent(event);
  if (this.isCarrier(event.getWhoClicked())
      && event.getSlot() == ArmorType.HELMET.inventorySlot()) {
    event.setCancelled(true);
    event.getView().setCursor(null);
    event.setCurrentItem(null);
    this.flag
        .getMatch()
        .getExecutor(MatchScope.RUNNING)
        .execute(
            () -> {
              if (isCurrent()) dropFlag();
            });
  }
}
 
源代码6 项目: AnvilGUI   文件: AnvilGUI.java
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
	if (
		((event.getInventory().equals(inventory)) && (event.getRawSlot() < 3)) ||
		(event.getAction().equals(InventoryAction.MOVE_TO_OTHER_INVENTORY)) ||
		((event.getRawSlot() < 3) && ((event.getAction().equals(InventoryAction.PLACE_ALL)) || (event.getAction().equals(InventoryAction.PLACE_ONE)) || (event.getAction().equals(InventoryAction.PLACE_SOME)) || (event.getCursor() != null)))
	){
		event.setCancelled(true);
		final Player clicker = (Player) event.getWhoClicked();
		if (event.getRawSlot() == Slot.OUTPUT) {
			final ItemStack clicked = inventory.getItem(Slot.OUTPUT);
			if (clicked == null || clicked.getType() == Material.AIR) return;

			final Response response = completeFunction.apply(clicker, clicked.hasItemMeta() ? clicked.getItemMeta().getDisplayName() : "");
			if(response.getText() != null) {
				final ItemMeta meta = clicked.getItemMeta();
				meta.setDisplayName(response.getText());
				clicked.setItemMeta(meta);
				inventory.setItem(Slot.INPUT_LEFT, clicked);
			} else {
				closeInventory();
			}
		}
	}
}
 
源代码7 项目: Shopkeepers   文件: BuyingPlayerShopkeeper.java
@Override
protected void onInventoryClick(InventoryClickEvent event, Player player) {
	event.setCancelled(true);

	int slot = event.getRawSlot();
	if (slot >= 0 && slot <= 7) {
		// modifying cost:
		ItemStack tradedItem = event.getInventory().getItem(slot + 18);
		if (Utils.isEmpty(tradedItem)) return;
		this.handleUpdateTradeCostItemOnClick(event, Settings.createCurrencyItem(1), Settings.createZeroCurrencyItem());
	} else if (slot >= 18 && slot <= 25) {
		// modifying bought item quantity:
		this.handleUpdateItemAmountOnClick(event, 1);
	} else if (slot >= 9 && slot <= 16) {
	} else {
		super.onInventoryClick(event, player);
	}
}
 
源代码8 项目: EnchantmentsEnhance   文件: GUIListener.java
/**
 * Prevents item glitched into menu.
 *
 * @param e
 */
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onInventoryClick(InventoryClickEvent e) {
    if ((e.getInventory().getType() != InventoryType.CRAFTING) && (e.getInventory().getType() != InventoryType.PLAYER)) {
        if ((e.getClick().equals(ClickType.NUMBER_KEY)) && (e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) != null)) {
            Player player = (Player) e.getWhoClicked();
            String playerName = player.getName();
            GUIAbstract gui = GUIManager.getMap().get(playerName);
            if (gui != null && gui.getInventory().equals(e.getInventory())) {
                e.setCancelled(true);
            }
        }
    }
}
 
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onInventoryClick(final InventoryClickEvent event) {
    if(event instanceof InventoryCreativeEvent) return;;

    // Ensure the player is clicking in their own inventory
    // TODO: should we allow items to be locked into other types of inventories?
    if(!Objects.equals(event.getWhoClicked(), event.getInventory().getHolder())) return;

    // Break out of the switch if the action will move a locked item, otherwise return
    switch(event.getAction()) {
        case HOTBAR_SWAP:
        case HOTBAR_MOVE_AND_READD:
            // These actions can move up to two stacks. Check the hotbar stack,
            // and then fall through to check the stack under the cursor.
            if(isLocked(Slot.Hotbar.forPosition(event.getHotbarButton())
                                   .getItem(event.getWhoClicked().getInventory()))) break;
            // fall through

        case PICKUP_ALL:
        case PICKUP_HALF:
        case PICKUP_SOME:
        case PICKUP_ONE:
        case SWAP_WITH_CURSOR:
        case MOVE_TO_OTHER_INVENTORY:
        case DROP_ONE_SLOT:
        case DROP_ALL_SLOT:
        case COLLECT_TO_CURSOR:
            // All these actions move only a single stack, except COLLECT_TO_CURSOR,
            // which can only move items that are stackable with the one under the cursor,
            // and locked items are only stackable with other locked items.
            if(isLocked(event.getCurrentItem())) break;

            // fall through

        default: return;
    }

    event.setCancelled(true);
    sendLockWarning(event.getWhoClicked());
}
 
源代码10 项目: IridiumSkyblock   文件: MissionsGUI.java
@EventHandler
@Override
public void onInventoryClick(InventoryClickEvent e) {
    if (e.getInventory().equals(getInventory())) {
        e.setCancelled(true);
    }
}
 
源代码11 项目: EnchantmentsEnhance   文件: MenuHandler.java
@EventHandler(ignoreCancelled = false, priority = EventPriority.HIGHEST)
public void onClick(InventoryClickEvent e) {
    // Handles invalid clicks.
    if (e.getSlot() < 0) {
        return;
    }
    // Handles invalid entity.
    if (!(e.getWhoClicked() instanceof Player)) {
        return;
    }
    // Handles empty slot.
    if (e.getCurrentItem() != null && e.getCurrentItem().getType() == (Material.AIR)) {
        return;
    }
    Player player = (Player) e.getWhoClicked();
    String playerName = player.getName();
    GUIAbstract gui = GUIManager.getMap().get(playerName);
    if (gui != null && gui.getInventory().equals(e.getInventory())) {
        e.setCancelled(true);
        if (!MainMenu.itemOnEnhancingSlot.containsKey(playerName) && MainMenu.enhancingMode.containsKey(playerName)) {
            if (MainMenu.enhancingMode.get(playerName).equals(MainMenu.gear)) {
                if (Enhance.getValidationOfItem(e.getCurrentItem()) && e.getRawSlot() >= 54) {
                    MainMenu.itemOnEnhancingSlot.put(playerName, e.getCurrentItem());
                    gui.update();
                }
            } else if (MainMenu.enhancingMode.get(playerName).equals(MainMenu.tool)) {
                if (Enhance.getValidationOfToolItem(e.getCurrentItem()) && e.getRawSlot() >= 54) {
                    MainMenu.itemOnEnhancingSlot.put(playerName, e.getCurrentItem());
                    gui.update();
                }
            }
        }
    }
}
 
源代码12 项目: NBTEditor   文件: InventoryForItemStorage.java
@Override
protected void inventoryClick(InventoryClickEvent event) {
	Inventory inventory = event.getClickedInventory();
	if (inventory != null) {
		InventoryAction action = event.getAction();
		if (action == InventoryAction.COLLECT_TO_CURSOR) {
			event.setCancelled(true);
		} else if (inventory.getType() == InventoryType.PLAYER) {
			if (action == InventoryAction.MOVE_TO_OTHER_INVENTORY) {
				event.setCancelled(true);
			}
		} else {
			event.setCancelled(true);
			int slot = event.getSlot();
			if (slot < ITEMS_PER_PAGE) {
				if (event.getCursor().getType() == Material.AIR && _originaItems[slot] != null) {
					event.getView().setCursor(_originaItems[slot]);
				}
			} else if (slot == 52) {
				// previous page
				changePage(-1);
			} else if (slot == 53) {
				// next page
				changePage(1);
			}
		}
	}
	
}
 
源代码13 项目: IF   文件: Label.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    event.setCancelled(true);

    return super.click(gui, event, paneOffsetX, paneOffsetY, maxLength, maxHeight);
}
 
源代码14 项目: AmpMenus   文件: MenuListener.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onInventoryClick(InventoryClickEvent event) {
    if (event.getWhoClicked() instanceof Player && event.getInventory().getHolder() instanceof MenuHolder) {
        event.setCancelled(true);
        ((MenuHolder) event.getInventory().getHolder()).getMenu().onInventoryClick(event);
    }
}
 
源代码15 项目: CardinalPGM   文件: FlagObjective.java
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    if (isPicker(event.getWhoClicked()) && event.getSlot() == ArmorType.HELMET.getSlot()) {
        event.setCancelled(true);
        event.setCurrentItem(null);
        spawnFlag();
    }
}
 
源代码16 项目: IridiumSkyblock   文件: BoosterGUI.java
@EventHandler
@Override
public void onInventoryClick(InventoryClickEvent e) {
    if (e.getInventory().equals(getInventory())) {
        Player p = (Player) e.getWhoClicked();
        Island island = IridiumSkyblock.getIslandManager().islands.get(islandID);
        e.setCancelled(true);
        if (e.getClickedInventory() == null || !e.getClickedInventory().equals(getInventory())) return;
        if (e.getSlot() == IridiumSkyblock.getBoosters().spawnerBooster.slot && IridiumSkyblock.getBoosters().spawnerBooster.enabled) {
            if (getIsland().getSpawnerBooster() == 0) {
                if (Utils.canBuy(p, IridiumSkyblock.getBoosters().spawnerBooster.vaultCost, IridiumSkyblock.getBoosters().spawnerBooster.crystalsCost)) {
                    getIsland().setSpawnerBooster(IridiumSkyblock.getBoosters().spawnerBooster.time);
                } else {
                    e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                }
            } else {
                e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().spawnerBoosterActive.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            }
        }
        if (e.getSlot() == IridiumSkyblock.getBoosters().farmingBooster.slot && IridiumSkyblock.getBoosters().farmingBooster.enabled) {
            if (getIsland().getFarmingBooster() == 0) {
                if (Utils.canBuy(p, IridiumSkyblock.getBoosters().farmingBooster.vaultCost, IridiumSkyblock.getBoosters().farmingBooster.crystalsCost)) {
                    getIsland().setFarmingBooster(IridiumSkyblock.getBoosters().farmingBooster.time);
                } else {
                    e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                }
            } else {
                e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().farmingBoosterActive.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            }
        }
        if (e.getSlot() == IridiumSkyblock.getBoosters().experianceBooster.slot && IridiumSkyblock.getBoosters().experianceBooster.enabled) {
            if (getIsland().getExpBooster() == 0) {
                if (Utils.canBuy(p, IridiumSkyblock.getBoosters().experianceBooster.vaultCost, IridiumSkyblock.getBoosters().experianceBooster.crystalsCost)) {
                    getIsland().setExpBooster(IridiumSkyblock.getBoosters().experianceBooster.time);
                } else {
                    e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                }
            } else {
                e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().expBoosterActive.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            }
        }
        if (e.getSlot() == IridiumSkyblock.getBoosters().flightBooster.slot && IridiumSkyblock.getBoosters().flightBooster.enabled) {
            if (getIsland().getFlightBooster() == 0) {
                if (Utils.canBuy(p, IridiumSkyblock.getBoosters().flightBooster.vaultCost, IridiumSkyblock.getBoosters().flightBooster.crystalsCost)) {
                    getIsland().setFlightBooster(IridiumSkyblock.getBoosters().flightBooster.time);
                } else {
                    e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                }
            } else {
                e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().flightBoosterActive.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            }
        }
    }
}
 
源代码17 项目: askyblock   文件: BiomesPanel.java
@EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClick(InventoryClickEvent event) {
    Player player = (Player) event.getWhoClicked(); // The player that
    // clicked the item
    UUID playerUUID = player.getUniqueId();
    Inventory inventory = event.getInventory(); // The inventory that was
    // clicked in
    int slot = event.getRawSlot();
    // Check this is the right panel
    if (inventory.getName() == null || !inventory.getName().equals(plugin.myLocale().biomePanelTitle)) {
        return;
    }
    if (slot == -999) {
        inventory.clear();
        player.closeInventory();
        event.setCancelled(true);
        return;
    }
    if (event.getClick().equals(ClickType.SHIFT_RIGHT)) {
        event.setCancelled(true);
        inventory.clear();
        player.closeInventory();
        player.updateInventory();
        return;
    }

    // Get the list of items for this player
    List<BiomeItem> thisPanel = biomeItems.get(player.getUniqueId());
    if (thisPanel == null) {
        inventory.clear();
        player.closeInventory();
        event.setCancelled(true);
        return;
    }
    if (slot >= 0 && slot < thisPanel.size()) {
        event.setCancelled(true);
        // plugin.getLogger().info("DEBUG: slot is " + slot);
        // Do something
        // Check this player has an island
        Island island = plugin.getGrid().getIsland(playerUUID);
        if (island == null) {
            Util.sendMessage(player, ChatColor.RED + plugin.myLocale(player.getUniqueId()).errorNoIsland);
            return;
        }
        // Check ownership
        if (!island.getOwner().equals(playerUUID)) {
            Util.sendMessage(player, ChatColor.RED + plugin.myLocale(player.getUniqueId()).levelerrornotYourIsland);
            return; 
        }
        if (!plugin.getGrid().playerIsOnIsland(player)) {
            Util.sendMessage(player, ChatColor.RED + plugin.myLocale(player.getUniqueId()).challengeserrorNotOnIsland);
            return;
        }
        Biome biome = thisPanel.get(slot).getBiome();
        if (biome != null) {
            event.setCancelled(true);
            if (Settings.useEconomy) {
                // Check cost
                double cost = thisPanel.get(slot).getPrice();
                if (cost > 0D) {
                    if (!VaultHelper.econ.has(player, Settings.worldName, cost)) {
                        Util.sendMessage(player, ChatColor.RED + plugin.myLocale(player.getUniqueId()).minishopYouCannotAfford.replace("[description]", VaultHelper.econ.format(cost)));
                        return;
                    } else {
                        VaultHelper.econ.withdrawPlayer(player, Settings.worldName, cost);
                        Util.sendMessage(player, ChatColor.GREEN + plugin.myLocale(player.getUniqueId()).biomeYouBought.replace("[cost]", VaultHelper.econ.format(cost)));
                    }
                }
            }
        }
        inventory.clear();
        player.closeInventory(); // Closes the inventory
        // Actually set the biome
        Util.sendMessage(player, ChatColor.GREEN + plugin.myLocale(player.getUniqueId()).biomePleaseWait);
        new SetBiome(plugin, island, biome, player);
    }
    return;
}
 
源代码18 项目: Guilds   文件: VaultBlacklistListener.java
/**
 * Check if their item is on the vault blacklist
 *
 * @param event the click event
 */
@EventHandler
public void onItemClick(InventoryClickEvent event) {
    // Check if the event was already cancelled before going through this all
    if (event.isCancelled()) {
        return;
    }

    // get the player who is clicking
    Player player = (Player) event.getWhoClicked();

    // check if they are in the list of open vaults
    if (!guildHandler.getOpened().contains(player))
        return;

    // get the item clicked
    ItemStack item = event.getCurrentItem();

    // check if null
    if (item == null)
        return;

    // set cancelled if it contains material name
    event.setCancelled(settingsManager.getProperty(GuildVaultSettings.BLACKLIST_MATERIALS).stream().anyMatch(m ->
            m.equalsIgnoreCase(item.getType().name())));

    // check if event is cancelled, if not, check name
    if (event.isCancelled()) {
        guilds.getCommandManager().getCommandIssuer(player).sendInfo(Messages.VAULTS__BLACKLISTED);
        return;
    }

    // Make sure item has item meta
    if (!item.hasItemMeta())
        return;

    // Check if it has a display name
    if (item.getItemMeta().hasDisplayName()) {
        // set cancelled if contains name
        event.setCancelled(settingsManager.getProperty(GuildVaultSettings.BLACKLIST_NAMES).stream().anyMatch(m ->
                m.equalsIgnoreCase(ACFBukkitUtil.removeColors(item.getItemMeta().getDisplayName()))));
    }

    // check if event is cancelled
    if (event.isCancelled()) {
        guilds.getCommandManager().getCommandIssuer(player).sendInfo(Messages.VAULTS__BLACKLISTED);
        return;
    }

    // check if item has lore
    if (!item.getItemMeta().hasLore())
        return;

    // set cancelled if contains lore
    List<String> lore = item.getItemMeta().getLore().stream()
            .map(ACFBukkitUtil::removeColors).collect(Collectors.toList());

    // loop through string list
    for (String check : settingsManager.getProperty(GuildVaultSettings.BLACKLIST_LORES)) {
        // check if the lore contains it
        if (!check.equalsIgnoreCase("")) {
            if (lore.stream().anyMatch(l -> l.contains(check))) {
                // cancel the event
                event.setCancelled(true);
                break;
            }
        }
    }

    // check if event is cancelled, if not, check name
    if (event.isCancelled()) {
        guilds.getCommandManager().getCommandIssuer(player).sendInfo(Messages.VAULTS__BLACKLISTED);
    }
}
 
源代码19 项目: BedwarsRel   文件: NewItemShop.java
private void handleCategoryInventoryClick(InventoryClickEvent ice, Game game, Player player) {

    int catSize = this.getCategoriesSize(player);
    int sizeCategories = this.getInventorySize(catSize) + 9;
    int rawSlot = ice.getRawSlot();

    if (rawSlot >= this.getInventorySize(catSize) && rawSlot < sizeCategories) {
      ice.setCancelled(true);
      if (ice.getCurrentItem().getType() == Material.SLIME_BALL) {
        this.changeToOldShop(game, player);
        return;
      }

      if (ice.getCurrentItem().getType() == Material.BUCKET) {
        game.getPlayerSettings(player).setOneStackPerShift(false);
        player.playSound(player.getLocation(), SoundMachine.get("CLICK", "UI_BUTTON_CLICK"),
            Float.valueOf("1.0"), Float.valueOf("1.0"));
        this.openCategoryInventory(player);
        return;
      } else if (ice.getCurrentItem().getType() == Material.LAVA_BUCKET) {
        game.getPlayerSettings(player).setOneStackPerShift(true);
        player.playSound(player.getLocation(), SoundMachine.get("CLICK", "UI_BUTTON_CLICK"),
            Float.valueOf("1.0"), Float.valueOf("1.0"));
        this.openCategoryInventory(player);
        return;
      }

    }

    if (rawSlot >= sizeCategories) {
      if (ice.isShiftClick()) {
        ice.setCancelled(true);
        return;
      }

      ice.setCancelled(false);
      return;
    }

    MerchantCategory clickedCategory = this.getCategoryByMaterial(ice.getCurrentItem().getType());
    if (clickedCategory == null) {
      if (ice.isShiftClick()) {
        ice.setCancelled(true);
        return;
      }

      ice.setCancelled(false);
      return;
    }

    this.openBuyInventory(clickedCategory, player, game);
  }
 
源代码20 项目: EliteMobs   文件: LootGUI.java
@EventHandler
public void onClick(InventoryClickEvent event) {

    if (event.getInventory().getName().equalsIgnoreCase(shopName)) {

        if (event.getCurrentItem() == null || event.getCurrentItem().getType().equals(Material.AIR)) {

            event.setCancelled(true);
            return;

        }

        String itemDisplayName = event.getCurrentItem().getItemMeta().getDisplayName();
        Player player = (Player) event.getWhoClicked();

        if (itemDisplayName != null) {

            if (itemDisplayName.equals("Next Loot Page")) {

                currentLootPage++;
                lootGUI(player);

            } else if (itemDisplayName.equals("Previous Loot Page")) {

                if (currentLootPage > 1) {

                    currentLootPage--;
                    lootGUI(player);

                }

            } else if (itemDisplayName.equals("Next Item Ranks")) {

                currentHeaderPage++;
                lootGUI(player);

            } else if (itemDisplayName.equals("Previous Item Ranks")) {

                if (currentHeaderPage > 1) {

                    currentHeaderPage--;
                    lootGUI(player);

                }

            } else if (itemDisplayName.equals("EliteMobs by MagmaGuy")) {

                filter = false;
                currentLootPage = 1;
                lootGUI(player);

            } else if (event.getCurrentItem().getItemMeta().getLore().get(0).equals("Filter by items of this rank.")) {

                filter = true;
                String[] lore = itemDisplayName.split("\\s");
                filterRank = Integer.valueOf(lore[1]);
                currentLootPage = 1;
                lootGUI(player);

            }

        }

        if (lootSlots.contains(event.getSlot())) {

            player.getInventory().addItem(event.getCurrentItem());

        }

        event.setCancelled(true);

    }

}