@Override public void handle(GlowSession session, HeldItemMessage message) { int slot = message.getSlot(); if (slot < 0 || slot > 8) { // sanity check return; } GlowPlayer player = session.getPlayer(); int oldSlot = player.getInventory().getHeldItemSlot(); if (slot == oldSlot) { // ignore return; } PlayerItemHeldEvent event = new PlayerItemHeldEvent(player, oldSlot, slot); EventFactory.getInstance().callEvent(event); if (!event.isCancelled()) { player.getInventory().setRawHeldItemSlot(slot); } else { // sends a packet to switch back to the previous held slot player.getInventory().setHeldItemSlot(oldSlot); } } }
@EventHandler public void onPlayerInv(PlayerItemHeldEvent event) { ItemStack item = event.getPlayer().getInventory().getItem(event.getNewSlot()); initMap(item); }
Player player = event.getPlayer(); PlayerInventory inventory = player.getInventory(); ItemStack next = inventory.getItem(event.getNewSlot()); inventory.setItem(event.getNewSlot(), null); mage.checkWand(); return; inventory.setItem(event.getNewSlot(), replacement); mage.checkWand(); return; event.setCancelled(true); return; activeWand.cast(spell); event.setCancelled(true); return; int previousSlot = event.getPreviousSlot(); ItemStack previous = inventory.getItem(previousSlot); if (previous != null && previous.equals(activeWand.getItem())) { event.setCancelled(true); } else if (isWand || activeWand != null) {
@EventHandler(priority = EventPriority.MONITOR) public void onItemHeldChange(final PlayerItemHeldEvent event) { final Player player = event.getPlayer(); final IPlayerData pData = DataManager.getPlayerData(player); final InventoryData data = pData.getGenericInstance(InventoryData.class); if (pData.isDebugActive(checkType) && data.instantEatFood != null) { debug(player, "PlayerItemHeldEvent, reset fastconsume (legacy: instanteat)."); } data.instantBowInteract = 0; data.instantEatInteract = 0; data.instantEatFood = null; // Illegal enchantments hotfix check. final PlayerInventory inv = player.getInventory(); Items.checkIllegalEnchantments(player, inv.getItem(event.getNewSlot()), pData); Items.checkIllegalEnchantments(player, inv.getItem(event.getPreviousSlot()), pData); }
@Override public MCPlayer getPlayer() { return new BukkitMCPlayer(ih.getPlayer()); }
@Override public int getNewSlot() { return ih.getNewSlot(); }
@Override public int getPreviousSlot() { return ih.getPreviousSlot(); } }
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onPlayerSlotChange(final PlayerItemHeldEvent event) { final Player player = event.getPlayer(); final int slot = event.getNewSlot() + 1; GeneralMethods.displayMovePreview(player, slot); if (!ConfigManager.defaultConfig.get().getBoolean("Properties.BendingPreview")) { final WaterArms waterArms = CoreAbility.getAbility(player, WaterArms.class); if (waterArms != null) { waterArms.displayBoundMsg(event.getNewSlot() + 1); return; } } }
@EventHandler(ignoreCancelled = false, priority = EventPriority.MONITOR) public void onItemHeld(final PlayerItemHeldEvent event) { // Reset clicked block. // TODO: Not for 1.5.2 and before? final Player player = event.getPlayer(); final BlockBreakData data = DataManager.getPlayerData(player).getGenericInstance(BlockBreakData.class); if (data.toolChanged(player.getInventory().getItem(event.getNewSlot()))) { data.resetClickedBlock(); } }
/** * Drops the ball on Slot change. * * @param event event */ @EventHandler public void onSlotChange(PlayerItemHeldEvent event) { this.dropBall(event.getPlayer()); }
@EventHandler(ignoreCancelled = true) public void onItemHeldChange(PlayerItemHeldEvent event) { Player player = event.getPlayer(); //if he's switching to the golden shovel int newSlot = event.getNewSlot(); ItemStack newItemStack = player.getInventory().getItem(newSlot); if(newItemStack != null && newItemStack.getType() == GriefPrevention.instance.config_claims_modificationTool) { //give the player his available claim blocks count and claiming instructions, but only if he keeps the shovel equipped for a minimum time, to avoid mouse wheel spam if(GriefPrevention.instance.claimsEnabledForWorld(player.getWorld())) { EquipShovelProcessingTask task = new EquipShovelProcessingTask(player); GriefPrevention.instance.getServer().getScheduler().scheduleSyncDelayedTask(GriefPrevention.instance, task, 15L); //15L is approx. 3/4 of a second } } }
@EventHandler(ignoreCancelled = false, priority = EventPriority.MONITOR) public void onItemHeld(final PlayerItemHeldEvent event) { final Player player = event.getPlayer(); final IPlayerData pData = DataManager.getPlayerData(player); final long penalty = pData.getGenericInstance(FightConfig.class).toolChangeAttackPenalty; if (penalty > 0 ) { pData.getGenericInstance(FightData.class).attackPenalty.applyPenalty(penalty); } }
@EventHandler(ignoreCancelled = true) public void onPlayerItemHeld(PlayerItemHeldEvent event) { Player player = event.getPlayer(); Inventory inventory = player.getInventory(); ItemStack item = inventory.getItem(event.getNewSlot()); if (item != null) { ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(player.getWorld())); LocalPlayer localPlayer = getPlugin().wrapPlayer(player); if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(player.getLocation()), createTarget(item)), false, false)) { inventory.setItem(event.getNewSlot(), null); } } }
@EventHandler(priority = EventPriority.HIGH) public void onItemHeldChange(PlayerItemHeldEvent event) { Player player = event.getPlayer(); ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(player.getWorld())); if (wcfg.removeInfiniteStacks && !plugin.hasPermission(player, "worldguard.override.infinite-stack")) { int newSlot = event.getNewSlot(); ItemStack heldItem = player.getInventory().getItem(newSlot); if (heldItem != null && heldItem.getAmount() < 0) { player.getInventory().setItem(newSlot, null); player.sendMessage(ChatColor.RED + "Infinite stack removed."); } } }
@EventHandler public void onTryToSelectWatch(PlayerItemHeldEvent event) { Player player = event.getPlayer(); if (!plugin.getTrackerKeeper().getJohnSmith().containsKey(player.getUniqueId())) { return; } if (plugin.getTrackerKeeper().getJohnSmith().get(player.getUniqueId()).getTime() <= System.currentTimeMillis()) { return; } int slot = event.getNewSlot(); PlayerInventory inv = player.getInventory(); ItemStack is = inv.getItem(slot); if (is == null || !is.getType().equals(Material.CLOCK) || !is.hasItemMeta()) { return; } ItemMeta im = is.getItemMeta(); if (!im.hasDisplayName() || !im.getDisplayName().equals("Fob Watch")) { return; } // move the fob watch int empty = inv.firstEmpty(); inv.setItem(slot, null); inv.setItem(empty, is); player.updateInventory(); } }
/** * @param event */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent event) { if (event == null) { return; } Player player = event.getPlayer(); Field field = plugin.getForceFieldManager().getEnabledSourceField(player.getLocation(), FieldFlag.UNUSABLE_ITEMS); if (field != null) { if (FieldFlag.UNUSABLE_ITEMS.applies(field, player)) { PlayerInventory inv = player.getInventory(); int slot = event.getNewSlot(); ItemStack item = inv.getItem(slot); if (item != null) { if (field.getSettings().isUnusableItem(item.getTypeId(), item.getData().getData())) { StackHelper.unHoldItem(player, slot); ChatHelper.send(player, "cannotUseItemMoved"); } } } } }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onSelectLocator(PlayerItemHeldEvent event) { Player player = event.getPlayer(); PlayerInventory inv = player.getInventory(); ItemStack is = inv.getItem(event.getNewSlot()); if (is != null && is.getType().equals(Material.COMPASS)) { if (is.hasItemMeta() && is.getItemMeta().hasDisplayName() && is.getItemMeta().getDisplayName().equals("TARDIS Locator")) {