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

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

源代码1 项目: NovaGuilds   文件: ChestGUIListener.java
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
	Inventory inventory = CompatibilityUtils.getClickedInventory(event);
	if(inventory == null
			|| event.getCurrentItem() == null
			|| (!inventory.equals(event.getView().getTopInventory()) && event.getClick() != ClickType.SHIFT_LEFT && event.getClick() != ClickType.SHIFT_RIGHT)) {
		return;
	}

	Player player = (Player) event.getWhoClicked();
	NovaPlayer nPlayer = PlayerManager.getPlayer(player);
	GUIInventory guiInventory = nPlayer.getGuiInventory();

	if(guiInventory != null) {
		event.setCancelled(true);

		if(event.getSlot() == inventory.getSize() - 1 && event.getCurrentItem().equals(Message.INVENTORY_GUI_BACK.getItemStack())) {
			player.closeInventory();
			return;
		}

		if(event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR) {
			guiInventory.onClick(event);
		}
	}
}
 
源代码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 项目: IridiumSkyblock   文件: VisitGUI.java
@EventHandler
@Override
public void onInventoryClick(InventoryClickEvent e) {
    if (e.getInventory().equals(getInventory())) {
        e.setCancelled(true);
        if (e.getClickedInventory() == null || !e.getClickedInventory().equals(getInventory())) return;
        if (islands.containsKey(e.getSlot())) {
            Island island = IridiumSkyblock.getIslandManager().getIslandViaId(islands.get(e.getSlot()));
            User u = User.getUser((OfflinePlayer) e.getWhoClicked());
            if (island.isVisit() || u.bypassing) {
                if (e.getClick() == ClickType.RIGHT) {
                    if (island.hasVoted(u)) {
                        island.removeVote(u);
                    } else {
                        island.addVote(u);
                    }
                } else {
                    e.getWhoClicked().closeInventory();
                    island.teleportHome((Player) e.getWhoClicked());
                }
            } else {
                e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().playersIslandIsPrivate.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            }
        } else if (e.getSlot() == getInventory().getSize() - 7) {
            if (IridiumSkyblock.visitGUI.containsKey(page - 1))
                e.getWhoClicked().openInventory(IridiumSkyblock.visitGUI.get(page - 1).getInventory());
        } else if (e.getSlot() == getInventory().getSize() - 3) {
            if (IridiumSkyblock.visitGUI.containsKey(page + 1))
                e.getWhoClicked().openInventory(IridiumSkyblock.visitGUI.get(page + 1).getInventory());
        }
    }
}
 
源代码4 项目: TabooLib   文件: Servers.java
public static List<ItemStack> getAffectItemInClickEvent(InventoryClickEvent e) {
    List<ItemStack> list = Lists.newArrayList();
    if (e.getClick() == ClickType.NUMBER_KEY) {
        Optional.ofNullable(e.getWhoClicked().getInventory().getItem(e.getHotbarButton())).ifPresent(list::add);
    }
    Optional.ofNullable(e.getCurrentItem()).ifPresent(list::add);
    return list;
}
 
源代码5 项目: Transport-Pipes   文件: DuctSettingsInventory.java
@EventHandler
public void onInvClick(InventoryClickEvent e) {
    if (e.getInventory() != null && e.getInventory().equals(inv) && e.getWhoClicked() instanceof Player) {
        if (itemService.isItemWildcardOrBarrier(e.getCurrentItem())) {
            e.setCancelled(true);
            return;
        }
        //don't call click method when double clicked, because before a double click, left click was already registered twice
        if (e.getClick() != ClickType.DOUBLE_CLICK && click((Player) e.getWhoClicked(), e.getRawSlot(), e.getClick())) {
            e.setCancelled(true);
        } else if (e.getClick() == ClickType.DOUBLE_CLICK && e.getAction() == InventoryAction.COLLECT_TO_CURSOR && collect_to_cursor((Player) e.getWhoClicked(), e.getCursor(), e.getRawSlot())) {
            e.setCancelled(true);
        }
    }
}
 
源代码6 项目: SkyWarsReloaded   文件: IconMenu.java
public void onInventoryClick(InventoryClickEvent event) {       
    int index = invs.lastIndexOf(event.getInventory());
    if (index == -1) {
    	return;
    }

    event.setCancelled(true);

    int slot = event.getRawSlot();
 
    try {
        if (!(slot >= 0 && slot < invs.get(index).getSize())) {
            return;
        }
    } catch (NullPointerException e) {
    	return;
    }

    String name = "uselessName";
    if (event.getInventory().getItem(slot) != null && !event.getInventory().getItem(slot).getType().equals(Material.AIR)) {
        name = SkyWarsReloaded.getNMS().getItemName(event.getCurrentItem());
    }     

    if (!name.equalsIgnoreCase("uselessName")) {
        if (name.equalsIgnoreCase(SkyWarsReloaded.getNMS().getItemName(SkyWarsReloaded.getIM().getItem("prevPageItem")))) {
        	openInventory((Player) event.getWhoClicked(), index - 1);
        	return;
        }
        if (name.equalsIgnoreCase(SkyWarsReloaded.getNMS().getItemName(SkyWarsReloaded.getIM().getItem("nextPageItem"))) && index + 1 < invs.size()) {
        	openInventory((Player) event.getWhoClicked(), index + 1);
        	return;
        }
        OptionClickEvent clickEvent = new OptionClickEvent((Player) event.getWhoClicked(), name, event.getClick(), event.getCurrentItem().clone(), event.getRawSlot());
        handler.onOptionClick(clickEvent);
    }
}
 
源代码7 项目: uSkyBlock   文件: IntegerEditMenu.java
@Override
public boolean onClick(InventoryClickEvent event) {
    if (!(event.getInventory().getHolder() instanceof UltimateHolder) ||
            ((UltimateHolder) event.getInventory().getHolder()).getTitle() == null ||
            !stripFormatting(((UltimateHolder) event.getInventory().getHolder()).getTitle()).contains(stripFormatting(getTitle()))) {
        return false;
    }
    if (event.getSlotType() != InventoryType.SlotType.CONTAINER) {
        return true;
    }
    Player player = (Player) event.getWhoClicked();
    Inventory menu = event.getInventory();
    ItemStack returnItem = menu.getItem(getIndex(5, 0));
    String configName = returnItem.getItemMeta().getLore().get(0);
    String path = returnItem.getItemMeta().getLore().get(1);
    int page = getPage(returnItem.getItemMeta().getLore().get(2));
    int slot = event.getSlot();
    int row = slot / 9;
    int col = slot % 9;
    ItemStack clickedItem = event.getCurrentItem();
    if (slot >= getIndex(3, 0) && slot <= getIndex(3, 8)) {
        // increment buttons
        YmlConfiguration config = FileUtil.getYmlConfiguration(configName);
        int value = config.getInt(path, 0);
        int increment = getDisplayNameAsInt(clickedItem);
        if (event.getClick() == ClickType.LEFT) {
            value += increment;
        } else if (event.getClick() == ClickType.RIGHT) {
            value = increment;
        }
        config.set(path, value);
        config.set("dirty", true);
    }
    if (slot != getIndex(5,0)) {
        player.openInventory(createEditMenu(configName, path, page));
    } else {
        player.openInventory(parent.createEditMenu(configName, path, page));
    }
    return true;
}
 
源代码8 项目: AACAdditionPro   文件: InventoryClick.java
public static InventoryClick fromClickEvent(final InventoryClickEvent event)
{
    return new InventoryClick(event.getInventory(), InventoryUtils.locateSlot(event.getRawSlot(), event.getClickedInventory().getType()), event.getClick());
}
 
源代码9 项目: ArmorStandTools   文件: ArmorStandGUI.java
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    if(!event.getInventory().equals(i)) return;
    Player p = (Player) event.getWhoClicked();
    if(event.getClick() == ClickType.SHIFT_LEFT || event.getClick() == ClickType.SHIFT_RIGHT || event.getClick() == ClickType.NUMBER_KEY) {
        event.setCancelled(true);
        return;
    }
    int slot = event.getRawSlot();
    if(slot > i.getSize()) return;
    if(invSlots.contains(slot)) {
        if(plugin.checkBlockPermission(p, as.getLocation().getBlock())) {
            updateInventory();
        } else {
            event.setCancelled(true);
            p.sendMessage(ChatColor.RED + Config.wgNoPerm);
        }
        return;
    }
    event.setCancelled(true);
    if(!(event.getWhoClicked() instanceof Player)) return;
    ArmorStandTool t = ArmorStandTool.get(event.getCurrentItem());
    if(t == null) return;
    if (!plugin.playerHasPermission(p, as.getLocation().getBlock(), t)) {
        p.sendMessage(ChatColor.RED + Config.generalNoPerm);
        return;
    }
    switch (t) {
        case INVIS:
            as.setVisible(!as.isVisible());
            Utils.actionBarMsg(p, Config.asVisible + ": " + (as.isVisible() ? Config.isTrue : Config.isFalse));
            break;
        case CLONE:
            p.closeInventory();
            plugin.pickUpArmorStand(Main.nms.clone(as), p, true);
            Utils.actionBarMsg(p, Config.carrying);
            break;
        case SAVE:
            if(Config.requireCreative && p.getGameMode() != GameMode.CREATIVE) {
                p.sendMessage(ChatColor.RED + Config.creativeRequired);
            } else {
                Main.nms.generateCmdBlock(p.getLocation(), as);
                Utils.actionBarMsg(p, Config.cbCreated);
            }
            break;
        case SIZE:
            as.setSmall(!as.isSmall());
            Utils.actionBarMsg(p, Config.size + ": " + (as.isSmall() ? Config.small : Config.normal));
            break;
        case BASE:
            as.setBasePlate(!as.hasBasePlate());
            Utils.actionBarMsg(p, Config.basePlate + ": " + (as.hasBasePlate() ? Config.isOn : Config.isOff));
            break;
        case GRAV:
            as.setGravity(!as.hasGravity());
            Utils.actionBarMsg(p, Config.gravity + ": " + (as.hasGravity() ? Config.isOn : Config.isOff));
            break;
        case ARMS:
            as.setArms(!as.hasArms());
            Utils.actionBarMsg(p, Config.arms + ": " + (as.hasArms() ? Config.isOn : Config.isOff));
            break;
        case NAME:
            p.closeInventory();
            plugin.setName(p, as);
            break;
        case PHEAD:
            p.closeInventory();
            plugin.setPlayerSkull(p, as);
            break;
        case INVUL:
            Utils.actionBarMsg(p, Config.invul + ": " + (Utils.toggleInvulnerability(as) ? Config.isOn : Config.isOff));
            break;
        case SLOTS:
            Utils.actionBarMsg(p, Config.equip + ": " + (Main.nms.toggleSlotsDisabled(as) ? Config.locked : Config.unLocked));
            break;
        case MOVE:
            p.closeInventory();
            UUID uuid = p.getUniqueId();
            if(plugin.carryingArmorStand.containsKey(uuid)) {
                plugin.carryingArmorStand.remove(uuid);
                Utils.actionBarMsg(p, Config.asDropped);
            } else {
                plugin.pickUpArmorStand(as, p, false);
                Utils.actionBarMsg(p, Config.carrying);
            }
            break;
        case GLOW:
            Utils.actionBarMsg(p, Config.glow + ": " + (Utils.toggleGlow(as) ? Config.isOn : Config.isOff));
            break;
        default:
            return;
    }
    i.setItem(t.getSlot(), updateLore(t));
}