/** * Closes the inventory view. */ public final void close() { getPlayer().closeInventory(); }
/** * Create an inventory view for this player looking at a given top inventory. * * @param player The player. * @param topInventory The top inventory. */ public GlowInventoryView(HumanEntity player, Inventory topInventory) { this(player, topInventory.getType(), topInventory, player.getInventory()); }
@Override public void openInventory(InventoryView view) { session.send(new CloseWindowMessage(invMonitor.getId())); super.openInventory(view); invMonitor = new InventoryMonitor(getOpenInventory()); int viewId = invMonitor.getId(); if (viewId != 0) { InventoryOpenEvent event = EventFactory.getInstance().callEvent( new InventoryOpenEvent(view)); if (event.isCancelled()) { // close the inventory but don't fire the InventoryCloseEvent resetInventoryView(); return; } String title = view.getTitle(); boolean defaultTitle = Objects.equals(view.getType().getDefaultTitle(), title); if (view.getTopInventory() instanceof PlayerInventory && defaultTitle) { title = ((PlayerInventory) view.getTopInventory()).getHolder().getName(); } Message open = new OpenWindowMessage(viewId, invMonitor .getType(), title, ((GlowInventory) view.getTopInventory()).getRawSlots()); session.send(open); } updateInventory(); }
/** * Consumes 1 copy of the given item, which must be held by the given player, unless that player * is in Creative mode. * * @param player the player holding the item * @param item the item to consume */ public static void consumeHeldItem(HumanEntity player, ItemStack item) { if (player.getGameMode() == GameMode.CREATIVE) { return; } if (item.getAmount() > 1) { item.setAmount(item.getAmount() - 1); } else { player.getInventory().clear(player.getInventory().getHeldItemSlot()); } } }
/** * Sets one item in this inventory view by its raw slot ID. * <p> * Note: If slot ID -999 is chosen, it may be expected that the item is * dropped on the ground. This is not required behaviour, however. * * @param slot The ID as returned by InventoryClickEvent.getRawSlot() * @param item The new item to put in the slot, or null to clear it. */ public void setItem(int slot, ItemStack item) { if (slot != OUTSIDE) { if (slot < getTopInventory().getSize()) { getTopInventory().setItem(convertSlot(slot),item); } else { getBottomInventory().setItem(convertSlot(slot),item); } } else { getPlayer().getWorld().dropItemNaturally(getPlayer().getLocation(), item); } }
if (ct == ClickType.SHIFT_LEFT || ct == ClickType.SHIFT_RIGHT) { HumanEntity he = event.getWhoClicked(); if (he.getInventory().firstEmpty() < 0) { he.closeInventory(); he.getWorld().dropItem(he.getEyeLocation(), result); break; he.getInventory().addItem(result); break; event.getWhoClicked().setItemOnCursor(result); break;
private World getGameWorld(CommandSender sender) { if (sender instanceof HumanEntity) { World world = ((HumanEntity) sender).getWorld(); if (world != null) { return world; } } else if (sender instanceof BlockCommandSender) { return ((BlockCommandSender) sender).getBlock().getWorld(); } return Bukkit.getWorlds().get(0); }
/** * Creates a new profile instance * * @param player the player to create a profile for * @return the profile */ @Nonnull static Profile create(HumanEntity player) { return new SimpleProfile(player.getUniqueId(), player.getName()); }
@EventHandler public void onClick(InventoryClickEvent e) { if (Variables.backpack.containsKey(e.getWhoClicked().getUniqueId())) { ItemStack item = Variables.backpack.get(e.getWhoClicked().getUniqueId()); if (e.getClick() == ClickType.NUMBER_KEY) { ItemStack hotbarItem = e.getWhoClicked().getInventory().getItem(e.getHotbarButton()); SlimefunItem sfItem = SlimefunItem.getByItem(hotbarItem); if (hotbarItem != null && hotbarItem.getType().toString().contains("SHULKER_BOX")) e.setCancelled(true); else if (sfItem instanceof SlimefunBackpack) e.setCancelled(true); } else { SlimefunItem sfItem = SlimefunItem.getByItem(e.getCurrentItem()); if (SlimefunManager.isItemSimiliar(item, SlimefunItem.getItem("COOLER"), false)) { if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR)); else if (!(sfItem instanceof Juice)) e.setCancelled(true); } else if (e.getCurrentItem() != null && e.getCurrentItem().getType().toString().contains("SHULKER_BOX")) e.setCancelled(true); else if (sfItem instanceof SlimefunBackpack) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_SMALL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_MEDIUM, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_BIG, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.VOIDBAG_LARGE, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), SlimefunItems.BOUND_VOIDBAG, false)) e.setCancelled(true); } } }
@EventHandler public void onClose(InventoryCloseEvent e) { if (Variables.enchanting.containsKey(e.getPlayer().getUniqueId())) Variables.enchanting.remove(e.getPlayer().getUniqueId()); if (Variables.backpack.containsKey(e.getPlayer().getUniqueId())) { ((Player) e.getPlayer()).playSound(e.getPlayer().getLocation(), Sound.ENTITY_HORSE_ARMOR, 1F, 1F); Backpacks.saveBackpack(e.getInventory(), Variables.backpack.get(e.getPlayer().getUniqueId())); Variables.backpack.remove(e.getPlayer().getUniqueId()); } }
@EventHandler(priority = EventPriority.LOWEST) public void onInventoryClose(InventoryCloseEvent event) { if (openPanels.containsKey(event.getPlayer().getUniqueId())) { // Run any close inventory methods openPanels.get(event.getPlayer().getUniqueId()).getListener().ifPresent(l -> l.onInventoryClose(event)); openPanels.remove(event.getPlayer().getUniqueId()); } }
Inventory inventory = humanTarget.getInventory(); showPlayer.openInventory(inventory); } else { Inventory enderInventory = humanTarget.getEnderChest(); showPlayer.openInventory(enderInventory);
String inv_name = inv.getTitle(); if (inv_name.equals(ChatColor.DARK_RED + "TARDIS saves")) { UUID uuid = event.getPlayer().getUniqueId(); event.getPlayer().setItemOnCursor(new ItemStack(Material.AIR)); plugin.getTrackerKeeper().getArrangers().remove(uuid);
/** * Converts a raw slot ID into its local slot ID into whichever of the two * inventories the slot points to. * <p> * If the raw slot refers to the upper inventory, it will be returned * unchanged and thus be suitable for getTopInventory().getItem(); if it * refers to the lower inventory, the output will differ from the input * and be suitable for getBottomInventory().getItem(). * * @param rawSlot The raw slot ID. * @return The converted slot ID. */ public final int convertSlot(int rawSlot) { int numInTop = getTopInventory().getSize(); if (rawSlot < numInTop) { return rawSlot; } int slot = rawSlot - numInTop; if (getPlayer().getGameMode() == GameMode.CREATIVE && getType() == InventoryType.PLAYER) { return slot; } if (getType() == InventoryType.CRAFTING) { if(slot < 4) return 39 - slot; else slot -= 4; } if (slot >= 27) slot -= 27; else slot += 9; return slot; }
@EventHandler public void onInventoryClose(InventoryCloseEvent e) { if (recipeWindows.containsKey(e.getPlayer().getName())) { int id = recipeWindows.remove(e.getPlayer().getName()); RPGItem item = ItemManager.getItem(id).orElse(null); if (item == null) return; if (item.getRecipe() == null) { item.setRecipe(new ArrayList<>()); } item.getRecipe().clear(); for (int y = 0; y < 3; y++) { for (int x = 0; x < 3; x++) { int i = x + y * 9; ItemStack it = e.getInventory().getItem(i); item.getRecipe().add(it); } } item.setHasRecipe(true); item.resetRecipe(true); ItemManager.save(); e.getPlayer().sendMessage(ChatColor.AQUA + "Recipe set for " + item.getName()); } }
@Override public void run() { if ((event.getPlayer().getOpenInventory().getTopInventory() == null || !event.getPlayer().getOpenInventory().getTopInventory().getTitle().startsWith("Buycraft: ")) && settingUpSigns.remove(event.getPlayer().getUniqueId()) != null && event.getPlayer() instanceof Player) { ((Player) event.getPlayer()).sendMessage(ChatColor.RED + "Buy sign set up cancelled."); } } }, 3);
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onCraftItem(CraftItemEvent event) { /* WORLD BLACKLIST CHECK */ if(WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld())) return; final HumanEntity whoClicked = event.getWhoClicked(); if (!whoClicked.hasMetadata(mcMMO.playerDataKey)) { return; } ItemStack result = event.getRecipe().getResult(); if (!ItemUtils.isMcMMOItem(result)) { return; } Player player = (Player) whoClicked; /* WORLD GUARD MAIN FLAG CHECK */ if(WorldGuardUtils.isWorldGuardLoaded()) { if(!WorldGuardManager.getInstance().hasMainFlag(player)) return; } new PlayerUpdateInventoryTask((Player) whoClicked).runTaskLater(plugin, 0); }
/** * Sets the item on the cursor of one of the viewing players. * * @param item The item to put on the cursor, or null to remove the item * on their cursor. */ public final void setCursor(ItemStack item) { getPlayer().setItemOnCursor(item); }
@EventHandler public void inventoryClick(InventoryClickEvent e) { if (e.getInventory().getHolder() instanceof SoundLibraryHolder) { e.setCancelled(true); if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR) || e.getRawSlot() >= e.getInventory().getSize()) { return; } SoundLibraryHolder soundLibraryHolder = ((SoundLibraryHolder) e.getInventory().getHolder()); int i = e.getRawSlot(); if (i == 47) { openInventory((Player) e.getWhoClicked(), soundLibraryHolder.PAGE - 1, soundLibraryHolder.SEARCH); } else if (i == 51) { openInventory((Player) e.getWhoClicked(), soundLibraryHolder.PAGE + 1, soundLibraryHolder.SEARCH); } else { Sound sound = soundLibraryHolder.SOUNDS_DATA.get(e.getRawSlot()); if (e.getClick().isKeyboardClick()) { ((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 0f); } else if (e.getClick().isLeftClick()) { ((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 1f); } else if (e.getClick().isRightClick()) { ((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 2f); } else if (e.getClick().isCreativeAction()) { TLocale.sendTo(e.getWhoClicked(), "COMMANDS.TABOOLIB.SOUNDS.RESULT.COPY", sound.name()); } } } }
public static void replaceInventory(Inventory oldInv, Inventory newInv) { // getViewers() is updated as we remove players, so we need to make a copy for (HumanEntity entity : ImmutableList.copyOf(oldInv.getViewers())) { entity.openInventory(newInv); } }