类org.bukkit.event.inventory.InventoryClickEvent源码实例Demo

下面列出了怎么用org.bukkit.event.inventory.InventoryClickEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: AACAdditionPro   文件: DataUpdaterEvents.java
@EventHandler(priority = EventPriority.LOW)
public void onInventoryClick(final InventoryClickEvent event)
{
    final User user = UserManager.getUser(event.getWhoClicked().getUniqueId());

    if (user != null &&
        // Quickbar actions can be performed outside the inventory.
        event.getSlotType() != InventoryType.SlotType.QUICKBAR)
    {
        // Only update if the inventory is currently closed to not interfere with opening time checks.
        if (!user.hasOpenInventory()) {
            user.getTimestampMap().updateTimeStamp(TimestampKey.INVENTORY_OPENED);
        }

        user.getTimestampMap().updateTimeStamp(TimestampKey.LAST_INVENTORY_CLICK);
        if (event.getCurrentItem() != null) {
            user.getTimestampMap().updateTimeStamp(TimestampKey.LAST_INVENTORY_CLICK_ON_ITEM);
        }

        user.getDataMap().setValue(DataKey.LAST_RAW_SLOT_CLICKED, event.getRawSlot());
        user.getDataMap().setValue(DataKey.LAST_MATERIAL_CLICKED, event.getCurrentItem() == null ?
                                                                  Material.AIR :
                                                                  event.getCurrentItem().getType());
    }
}
 
源代码2 项目: AACAdditionPro   文件: SprintingPattern.java
@Override
protected int process(User user, InventoryClickEvent event)
{
    // Flight may trigger this
    if (!user.getPlayer().getAllowFlight() &&
        // Not using an Elytra
        !EntityUtil.isFlyingWithElytra(user.getPlayer()) &&
        // Sprinting and Sneaking as detection
        (user.getPlayer().isSprinting() || user.getPlayer().isSneaking()) &&
        // The player opened the inventory at least a quarter second ago
        user.notRecentlyOpenedInventory(250) &&
        // Is the player moving
        user.hasMovedRecently(TimestampKey.LAST_HEAD_OR_OTHER_MOVEMENT, 1000))
    {
        message = "Inventory-Verbose | Player: " + user.getPlayer().getName() + " interacted with an inventory while sprinting or sneaking.";
        return 20;
    }
    return 0;
}
 
源代码3 项目: Slimefun4   文件: VanillaMachinesListener.java
@EventHandler(ignoreCancelled = true)
public void onGrindstone(InventoryClickEvent e) {
    // The Grindstone was only ever added in MC 1.14
    MinecraftVersion minecraftVersion = SlimefunPlugin.getMinecraftVersion();
    if (!minecraftVersion.isAtLeast(MinecraftVersion.MINECRAFT_1_14)) {
        return;
    }

    if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.GRINDSTONE) {
        ItemStack item1 = e.getInventory().getContents()[0];
        ItemStack item2 = e.getInventory().getContents()[1];

        if (checkForUnallowedItems(item1, item2)) {
            e.setResult(Result.DENY);
        }
    }

}
 
源代码4 项目: EliteMobs   文件: AdventurersGuildGUI.java
@EventHandler
public void onMainMenuClick(InventoryClickEvent event) {

    if (!(event.getWhoClicked() instanceof Player)) return;
    if (!event.getInventory().getName().equalsIgnoreCase("Adventurer's guild")) return;
    if (event.getCurrentItem() == null || event.getCurrentItem().getType().equals(Material.AIR)) return;
    if (event.getCurrentItem().equals(difficulty))
        difficultyMenu((Player) event.getWhoClicked());
    if (event.getCurrentItem().equals(quest)) {
        event.getWhoClicked().closeInventory();
        event.getWhoClicked().sendMessage("Coming soon!");
    }

    event.setCancelled(true);

}
 
源代码5 项目: UHC   文件: IconInventory.java
@EventHandler(ignoreCancelled = true)
public void on(InventoryClickEvent event) {
    final Inventory inventory = event.getInventory();
    if (!inventory.getTitle().equals(title)) return;

    event.setCancelled(true);

    final int slot = event.getRawSlot();

    if (slot < 0 || slot >= inventory.getSize() || slot >= icons.size()) return;

    // call event
    final IconStack icon = icons.get(slot);

    if (icon != null) {
        icon.onClick((Player) event.getWhoClicked());
    }
}
 
源代码6 项目: PGM   文件: ObserverToolsMatchModule.java
@EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClick(final InventoryClickEvent event) {
  if (event.getCurrentItem() == null
      || event.getCurrentItem().getItemMeta() == null
      || event.getCurrentItem().getItemMeta().getDisplayName() == null) return;

  if (event.getWhoClicked() instanceof Player) {
    MatchPlayer player = match.getPlayer(event.getWhoClicked());
    if (menu.isViewing(player)) {
      ItemStack clicked = event.getCurrentItem();
      menu.getTools()
          .forEach(
              tool -> {
                if (clicked.getType().equals(tool.getMaterial(player))) {
                  tool.onInventoryClick(menu, player, event.getClick());
                }
              });
    }
  }
}
 
源代码7 项目: UhcCore   文件: CutCleanListener.java
@EventHandler
public void onInventoryClick(InventoryClickEvent e){
    Inventory inv = e.getInventory();
    ItemStack item = e.getCurrentItem();
    if (!unlimitedLapis) return;
    if (inv == null || item == null) return;

    if (inv instanceof EnchantingInventory){

        if (item.getType().equals(lapis.getType())){
            e.setCancelled(true);
        }else {
            e.getInventory().setItem(1, lapis);
        }
    }
}
 
源代码8 项目: civcraft   文件: LoreGuiItemListener.java
@EventHandler(priority = EventPriority.LOW)
public void OnInventoryClickSecondPhase(InventoryClickEvent event) {
	if (event.isCancelled()) {
		return;
	}
	
	if (event.getRawSlot() < event.getView().getTopInventory().getSize()) {
		if (guiInventories.containsKey(event.getView().getTopInventory().getName())) {
			event.setCancelled(true);
			return;
		}
	} else if (event.isShiftClick()) {
		if (guiInventories.containsKey(event.getView().getTopInventory().getName())) {
			event.setCancelled(true);
			return;
		}			
	}
	
}
 
源代码9 项目: BedWars   文件: PlayerListener.java
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    if (event.isCancelled()) {
        return;
    }

    if (event.getClickedInventory() == null) {
        return;
    }

    if (event.getClickedInventory().getType() == InventoryType.PLAYER) {
        Player p = (Player) event.getWhoClicked();
        if (Main.isPlayerInGame(p)) {
            GamePlayer gPlayer = Main.getPlayerGameProfile(p);
            Game game = gPlayer.getGame();
            if (game.getStatus() == GameStatus.WAITING || gPlayer.isSpectator) {
                event.setCancelled(true);
            }
        }
    }
}
 
源代码10 项目: CratesPlus   文件: BlockListeners.java
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    if (!cratesPlus.getConfigHandler().isDisableKeySwapping() || event.getView().getTitle().equals("Claim Crate Keys"))
        return;
    if (!event.getInventory().getType().toString().contains("PLAYER") && event.getCurrentItem() != null) {
        String title;
        ItemStack item = event.getCurrentItem();
        for (Map.Entry<String, Crate> crate : cratesPlus.getConfigHandler().getCrates().entrySet()) {
            if (!(crate.getValue() instanceof KeyCrate)) {
                continue;
            }
            KeyCrate keyCrate = (KeyCrate) crate.getValue();
            Key key = keyCrate.getKey();
            if (key == null)
                continue;
            title = key.getName();

            if (item.hasItemMeta() && item.getItemMeta().hasDisplayName() && item.getItemMeta().getDisplayName().contains(title)) {
                // Send message?
                event.setCancelled(true);
                return;
            }
        }
    }
}
 
源代码11 项目: Shopkeepers   文件: PlayerShopkeeper.java
protected void handleUpdateItemAmountOnClick(InventoryClickEvent event, int minAmount) {
	// cancel event:
	event.setCancelled(true);
	// ignore in certain situations:
	ItemStack clickedItem = event.getCurrentItem();
	if (Utils.isEmpty(clickedItem)) return;

	// get new item amount:
	int currentItemAmount = clickedItem.getAmount();
	if (minAmount <= 0) minAmount = 0;
	int newItemAmount = this.getNewAmountAfterEditorClick(event, currentItemAmount, minAmount, clickedItem.getMaxStackSize());
	assert newItemAmount >= minAmount;
	assert newItemAmount <= clickedItem.getMaxStackSize();

	// update item in inventory:
	if (newItemAmount == 0) {
		// empty item slot:
		event.setCurrentItem(null);
	} else {
		clickedItem.setAmount(newItemAmount);
	}
}
 
源代码12 项目: MineableSpawners   文件: AnvilRenameListener.java
@EventHandler (ignoreCancelled = true)
public void onAnvilRename(InventoryClickEvent e) {
  if (e.getInventory() == null || e.getInventory().getType() == null) {
    return;
  }

  if (e.getCurrentItem() == null || e.getCurrentItem().getType() == null) {
    return;
  }

  if (e.getInventory().getType() != InventoryType.ANVIL || e.getCurrentItem().getType() != XMaterial.SPAWNER.parseMaterial()) {
    return;
  }

  if (!plugin.getConfigurationHandler().getBoolean("anvil", "prevent-anvil")) {
    return;
  }

  Player player = (Player) e.getWhoClicked();
  e.setCancelled(true);
  player.sendMessage(plugin.getConfigurationHandler().getMessage("anvil", "prevented"));
}
 
源代码13 项目: Civs   文件: CivilianTests.java
@Test(expected = SuccessException.class)
    @Ignore
    public void inventoryClickOnUnownedCivItemShouldBeCancelled() {
        InventoryClickEvent event = mock(InventoryClickEvent.class);
        ItemStack is = TestUtil.createUniqueItemStack(Material.CHEST, "Civs Cobble");
        when(event.getCurrentItem()).thenReturn(is);
        Inventory inventory = mock(Inventory.class);
        when(event.getClickedInventory()).thenReturn(inventory);
        Player player = mock(Player.class);
        UUID uuid = new UUID(1,8);
        when(player.getUniqueId()).thenReturn(uuid);
        when(event.getWhoClicked()).thenReturn(player);
        doThrow(new SuccessException()).when(event).setCancelled(true);

        CivilianListener civilianListener = new CivilianListener();
//        civilianListener.onInventoryMoveEvent(event);
        fail("set cancelled not called");
    }
 
源代码14 项目: HubBasics   文件: ItemListener.java
@EventHandler(ignoreCancelled = true)
public void onItemMove(InventoryClickEvent event) {
    ItemStack currentItem = event.getCurrentItem();
    if (currentItem == null || currentItem.getType() == Material.AIR) return;
    NBTItem nbtItem = new NBTItem(currentItem);
    if (!nbtItem.hasKey("HubBasics")) return;

    CustomItem item = HubBasics.getInstance().getItemManager().get(nbtItem.getString("HubBasics"));
    if (item == null) {
        currentItem.setType(Material.AIR); // Destroy old item
        return;
    }
    if (item.getRunOnInventory()) {
        item.onCommand((Player) event.getWhoClicked());
    }
    if (!item.getAllowMove())
        event.setCancelled(true); // Call setCancelled only when needed to not conflict with other plugins
}
 
源代码15 项目: AnnihilationPro   文件: KitLoading.java
@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void StopClicking(InventoryClickEvent event)
{
    HumanEntity entity = event.getWhoClicked();
    ItemStack stack = event.getCurrentItem();
    InventoryType top = event.getView().getTopInventory().getType();
    
    if (stack != null && (entity instanceof Player)) 
    {
    	if (top == InventoryType.PLAYER || top == InventoryType.WORKBENCH || top == InventoryType.CRAFTING) 
    		return;

    	if(KitUtils.isSoulbound(stack))
          event.setCancelled(true); 
    }
 }
 
源代码16 项目: 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();
			}
		}
	}
}
 
源代码17 项目: NBTEditor   文件: InventoryForPassengers.java
@Override
protected void inventoryClick(InventoryClickEvent event) {
	super.inventoryClick(event);
	ItemStack item = event.getCurrentItem();
	if (item != null && item.getType() != Material.AIR) {
		Player player = (Player) event.getWhoClicked();
		if (item.equals(((EntityNBT) _wrapper)._bos.getBook())) {
			event.setCancelled(true);
		} else if (!BookOfSouls.isValidBook(item)) {
			event.setCancelled(true);
			player.sendMessage("§cYou can only put Books of Souls.");
		} else {
			EntityNBT entityNbt = BookOfSouls.bookToEntityNBT(item);
			if (entityNbt == null) {
				player.sendMessage("§cThat Book of Souls is corrupted!");
				event.setCancelled(true);
			}
		}
	}
}
 
源代码18 项目: Minepacks   文件: ItemFilter.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemClick(InventoryClickEvent event)
{
	if(!(event.getWhoClicked() instanceof Player)) return;
	if(event.getInventory().getHolder() instanceof Backpack)
	{
		Player player = (Player) event.getWhoClicked();
		if(event.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY && checkIsBlockedAndShowMessage(player, event.getCurrentItem()))
		{
			event.setCancelled(true);
		}
		else if((event.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD || event.getAction() == InventoryAction.HOTBAR_SWAP) && event.getHotbarButton() != -1)
		{
			ItemStack item = event.getWhoClicked().getInventory().getItem(event.getHotbarButton());
			if(checkIsBlockedAndShowMessage(player, item))
			{
				event.setCancelled(true);
			}
		}
		else if(!player.getInventory().equals(event.getClickedInventory()) && checkIsBlockedAndShowMessage(player, event.getCursor()))
		{
			event.setCancelled(true);
		}
	}
}
 
源代码19 项目: civcraft   文件: BuildStructureList.java
@Override
	public void performAction(InventoryClickEvent event, ItemStack stack) {
//		Player player = (Player)event.getWhoClicked();
//		Resident resident = CivGlobal.getResident(player);
//		Inventory guiInventory = Bukkit.getServer().createInventory(player, LoreGuiItem.MAX_INV_SIZE, "Pick Structure To Build");
//		
//		for (ConfigBuildableInfo info : CivSettings.structures.values()) {
//			int type = ItemManager.getId(Material.ANVIL);
//			if (info.itemTypeId != 0) {
//				type = info.itemTypeId;
//			}
//			
//			ItemStack is;
//			if (!resident.hasTown()) {
//				is = LoreGuiItem.build(info.displayName, ItemManager.getId(Material.BEDROCK), 0, CivColor.Rose+"Must belong to a town to build structures.");
//			} else {
//				if (!resident.getCiv().hasTechnology(info.require_tech)) {
//					ConfigTech tech = CivSettings.techs.get(info.require_tech);
//					is = LoreGuiItem.build(info.displayName, ItemManager.getId(Material.BEDROCK), 0, CivColor.Rose+"Requires: "+tech.name);
//				} else {
//					is = LoreGuiItem.build(info.displayName, type, info.itemData, CivColor.Gold+"<Click To Build>");
//					is = LoreGuiItem.setAction(is, "BuildChooseTemplate");
//					is = LoreGuiItem.setActionData(is, "info", info.id);
//				}
//			}
//			
//			guiInventory.addItem(is);
//		}
//		
//		
//		LoreGuiItemListener.guiInventories.put(guiInventory.getName(), guiInventory);		
//		TaskMaster.syncTask(new OpenInventoryTask(player, guiInventory));
	}
 
源代码20 项目: uSkyBlock   文件: SkyBlockMenu.java
private void onClickPartyMenu(InventoryClickEvent event, ItemStack currentItem, Player p, ItemMeta meta, SkullMeta skull, int slotIndex) {
    event.setCancelled(true);
    if (slotIndex < 0 || slotIndex > 35) {
        return;
    }
    if (meta == null || currentItem.getType() == SIGN_MATERIAL) {
        p.closeInventory();
        p.performCommand("island");
    } else if (skull != null && plugin.getIslandInfo(p).isLeader(p)) {
        p.closeInventory();
        p.openInventory(displayPartyPlayerGUI(p, skull.getOwner()));
    }
}
 
源代码21 项目: uSkyBlock   文件: MenuEventsTest.java
@Test
public void testOnGuiClick_regularMenu() {
    UltimateHolder holder = new UltimateHolder(getFakePlayer(), "Island GUI menu", MenuType.DEFAULT);
    InventoryClickEvent event = getEvent(holder);

    menuEvents.guiClick(event);
    verify(fakeConfigMenu, times(0)).onClick(any());
    verify(fakeMenu).onClick(event);
}
 
源代码22 项目: 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);
        }
    }
}
 
源代码23 项目: SkyWarsReloaded   文件: PlayerInteractListener.java
@EventHandler
public void onInventoryClick(final InventoryClickEvent event) {
	if (event.getWhoClicked() instanceof Player) {
    	GameMap gMap = MatchManager.get().getPlayerMap((Player) event.getWhoClicked());
    	if (gMap == null) {
    		ItemStack item;
    		ItemStack item2;
    		if (event.getClick().equals(ClickType.NUMBER_KEY)) {
    			item = event.getWhoClicked().getInventory().getItem(event.getHotbarButton());
    			item2 = event.getCurrentItem();
    		} else {
    			item = event.getCurrentItem();
    			item2 = event.getCurrentItem();
    		}
    		
    		if (item != null && (item.equals(SkyWarsReloaded.getIM().getItem("optionselect")) 
    				|| item.equals(SkyWarsReloaded.getIM().getItem("joinselect")) 
    				|| item.equals(SkyWarsReloaded.getIM().getItem("spectateselect"))) 
    				|| item2 != null && (item2.equals(SkyWarsReloaded.getIM().getItem("optionselect")) 
            		|| item2.equals(SkyWarsReloaded.getIM().getItem("joinselect")) 
            		|| item2.equals(SkyWarsReloaded.getIM().getItem("spectateselect"))) ) {
    			event.setCancelled(true);
    		}
    	} else {
    		if (gMap.getMatchState().equals(MatchState.WAITINGSTART) || gMap.getMatchState().equals(MatchState.ENDING)) {
    			event.setCancelled(true);
    		}
    	}
	}

}
 
源代码24 项目: NovaGuilds   文件: CompatibilityUtils.java
/**
 * Gets clicked inventory
 * For API older than 1.8
 *
 * @param event inventory click event
 * @return inventory
 */
public static Inventory getClickedInventory(InventoryClickEvent event) {
	int slot = event.getRawSlot();
	InventoryView view = event.getView();

	if(slot < 0) {
		return null;
	}
	else if(view.getTopInventory() != null && slot < view.getTopInventory().getSize()) {
		return view.getTopInventory();
	}
	else {
		return view.getBottomInventory();
	}
}
 
源代码25 项目: factions-top   文件: GuiListener.java
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void registerClick(InventoryClickEvent event) {
    GuiContext context = plugin.getGuiManager().getContext(event.getClickedInventory());
    if (context == null) {
        return;
    }

    event.setCancelled(true);

    if (context.getSlots().size() >= event.getSlot()) {
        context.getSlots().get(event.getSlot()).handleClick(context);
    }
}
 
源代码26 项目: SuperVanish   文件: SilentOpenChest.java
@EventHandler(priority = EventPriority.LOWEST)
public void onSpectatorClick(InventoryClickEvent e) {
    if (!(e.getWhoClicked() instanceof Player))
        return;
    Player p = (Player) e.getWhoClicked();
    if (!plugin.getVanishStateMgr().isVanished(p.getUniqueId())) return;
    if (!playerStateInfoMap.containsKey(p)) return;
    if (p.getGameMode() != GameMode.SURVIVAL && p.getGameMode() != GameMode.ADVENTURE
            && p.getGameMode() != GameMode.CREATIVE) {
        e.setCancelled(false);
    }
}
 
源代码27 项目: IridiumSkyblock   文件: WarpGUI.java
@EventHandler
@Override
public void onInventoryClick(InventoryClickEvent e) {
    if (e.getInventory().equals(getInventory())) {
        Player p = (Player) e.getWhoClicked();
        User u = User.getUser(p);
        e.setCancelled(true);
        if (e.getClickedInventory() == null || !e.getClickedInventory().equals(getInventory())) return;
        if (warps.containsKey(e.getSlot())) {
            Island.Warp warp = warps.get(e.getSlot());
            if (e.getClick().equals(ClickType.RIGHT)) {
                u.getIsland().removeWarp(warps.get(e.getSlot()));
                getInventory().clear();
                addContent();
            } else {
                if (warp.getPassword().isEmpty()) {
                    p.teleport(warp.getLocation());
                    p.sendMessage(Utils.color(IridiumSkyblock.getMessages().teleporting.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                } else {
                    p.sendMessage(Utils.color(IridiumSkyblock.getMessages().enterPassword.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                    u.warp = warp;
                }
            }
            p.closeInventory();
        }
    }
}
 
源代码28 项目: uSkyBlock   文件: SkyBlockMenu.java
private void onClickPermissionMenu(InventoryClickEvent event, ItemStack currentItem, Player p, String inventoryName, int slotIndex) {
    event.setCancelled(true);
    if (slotIndex < 0 || slotIndex > 35) {
        return;
    }
    IslandInfo islandInfo = plugin.getIslandInfo(p);
    if (!plugin.getIslandInfo(p).isLeader(p)) {
        p.closeInventory();
        p.openInventory(displayPartyGUI(p));
    }
    String[] playerPerm = inventoryName.split(" ");
    String pname = playerPerm[0];
    ItemStack skullItem = event.getInventory().getItem(1);
    if (skullItem != null && skullItem.getType().equals(Material.PLAYER_HEAD)) {
        ItemMeta meta = skullItem.getItemMeta();
        if (meta instanceof SkullMeta) {
            pname = ((SkullMeta) meta).getOwner();
        }
    }
    for (PartyPermissionMenuItem item : permissionMenuItems) {
        if (currentItem.getType() == item.getIcon().getType()) {
            p.closeInventory();
            islandInfo.togglePerm(pname, item.getPerm());
            p.openInventory(displayPartyPlayerGUI(p, pname));
            return;
        }
    }
    if (currentItem.getType() == SIGN_MATERIAL) {
        p.closeInventory();
        p.openInventory(displayPartyGUI(p));
    } else {
        p.closeInventory();
        p.openInventory(displayPartyPlayerGUI(p, pname));
    }
}
 
源代码29 项目: GriefDefender   文件: PlayerEventHandler.java
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerInteractInventoryClick(InventoryClickEvent event) {
    final HumanEntity player = event.getWhoClicked();
    GDCauseStackManager.getInstance().pushCause(player);
    if (!GDFlags.INTERACT_INVENTORY_CLICK || event.getClickedInventory() == null || !GriefDefenderPlugin.getInstance().claimsEnabledForWorld(player.getWorld().getUID())) {
        return;
    }

    GDTimings.PLAYER_INTERACT_INVENTORY_CLICK_EVENT.startTiming();
    final Location location = player.getLocation();
    final GDClaim claim = this.dataStore.getClaimAt(location);
    final ItemStack cursorItem = event.getCursor();
    final Inventory source = event.getInventory();
    final ItemStack target = event.getCurrentItem();

    if (GriefDefenderPlugin.isTargetIdBlacklisted(Flags.INTERACT_INVENTORY_CLICK.getName(), target, player.getWorld().getUID())) {
        GDTimings.PLAYER_INTERACT_INVENTORY_CLICK_EVENT.stopTiming();
        return;
    }

    final GDPermissionUser user = PermissionHolderCache.getInstance().getOrCreateUser(player.getUniqueId());
    final Tristate result = GDPermissionManager.getInstance().getFinalPermission(event, location, claim, Flags.INTERACT_INVENTORY_CLICK, source, target, user, TrustTypes.CONTAINER, true);
    if (result == Tristate.FALSE) {
        final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.PERMISSION_INTERACT_ITEM,
                ImmutableMap.of(
                "player", claim.getOwnerDisplayName(),
                "item", ItemTypeRegistryModule.getInstance().getNMSKey(target)));
        GriefDefenderPlugin.sendClaimDenyMessage(claim, player, message);
        event.setCancelled(true);
    }
    GDTimings.PLAYER_INTERACT_INVENTORY_CLICK_EVENT.stopTiming();
}
 
源代码30 项目: PGM   文件: SpawnMatchModule.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onInventoryClick(final InventoryClickEvent event) {
  MatchPlayer player = match.getPlayer(event.getWhoClicked());
  if (player != null) {
    State state = states.get(player);
    if (state != null) state.onEvent(event);
  }
}
 
 类所在包
 同包方法