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); }
/** * 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); } }
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); }
@EventHandler(priority = EventPriority.HIGHEST) public void onPrepareItemCraft(PrepareItemCraftEvent e){ if(e.getViewers().size() < 1) return; World world = e.getViewers().get(0).getWorld(); if(!isEnabled(world)) return; CraftingInventory inv = e.getInventory(); ItemStack result = inv.getResult(); if(result != null && denied.contains(result.getType())) inv.setResult(null); } }
@EventHandler public void onFoodLevelChange(FoodLevelChangeEvent event) { World world = event.getEntity().getWorld(); DGameWorld gameWorld = DGameWorld.getByWorld(world); if (gameWorld != null) { if (!gameWorld.isPlaying()) { event.setCancelled(true); } } }
@EventHandler(priority = EventPriority.HIGHEST) public void onDrag(InventoryDragEvent e){ if(!isEnabled(e.getWhoClicked().getWorld())) return; if(e.getOldCursor() == null || (e.getCursor() != null && e.getCursor().getType() != Material.ELYTRA)) return; if(!e.getInventorySlots().contains(38)) return; e.setCancelled(true); }
@EventHandler(priority = EventPriority.HIGHEST) public void onInventoryDrag(InventoryDragEvent e){ if(!isEnabled(e.getWhoClicked().getWorld()) || e.getInventory().getType() != InventoryType.CRAFTING || !e.getInventorySlots().contains(40)) return; if(shouldWeCancel(e.getOldCursor())){ e.setResult(Event.Result.DENY); e.setCancelled(true); } }
@EventHandler public void onInventoryClose(InventoryCloseEvent e){ if(!isEnabled(e.getPlayer().getWorld())) return; Inventory inv = e.getInventory(); if(inv == null || inv.getType() != InventoryType.ENCHANTING || !hasPermission(e.getPlayer())) return; ((EnchantingInventory) inv).setSecondary(new ItemStack(Material.AIR)); }
@EventHandler public void onInventoryOpen(InventoryOpenEvent e){ if(!isEnabled(e.getPlayer().getWorld())) return; Inventory inv = e.getInventory(); if(inv == null || inv.getType() != InventoryType.ENCHANTING || !hasPermission(e.getPlayer())) return; ((EnchantingInventory) inv).setSecondary(getLapis()); }
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onInventoryOpen(InventoryOpenEvent event) { /* WORLD BLACKLIST CHECK */ if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld())) return; Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory()); if (furnaceBlock == null) { return; } HumanEntity player = event.getPlayer(); if (!UserManager.hasPlayerDataKey(player)) { return; } if(!furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey) && furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).size() == 0) furnaceBlock.setMetadata(mcMMO.furnaceMetadataKey, UserManager.getPlayer((Player) player).getPlayerMetadata()); }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onInventoryClose(InventoryCloseEvent event) { /* WORLD BLACKLIST CHECK */ if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld())) return; Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory()); if (furnaceBlock == null || furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey)) { return; } HumanEntity player = event.getPlayer(); if (!UserManager.hasPlayerDataKey(player)) { return; } furnaceBlock.removeMetadata(mcMMO.furnaceMetadataKey, plugin); }
@EventHandler(priority = EventPriority.HIGHEST) public void onInventoryClick(InventoryClickEvent e){ if(!isEnabled(e.getWhoClicked().getWorld()) || e.getInventory().getType() != InventoryType.CRAFTING || //Making sure it's a survival player's inventory e.getSlot() != 40) return; // If they didn't click into the offhand slot, return if(e.getClick().equals(ClickType.NUMBER_KEY) || shouldWeCancel(e.getCursor())){ e.setResult(Event.Result.DENY); e.setCancelled(true); } }
@EventHandler public void onInventoryOpen(InventoryOpenEvent e){ if(!isEnabled(e.getPlayer().getWorld())) return; Inventory inv = e.getInventory(); if(inv == null) return; Location loc = null; try{ loc = inv.getLocation(); } catch(Exception ignored){ } if(loc == null) return; Block block = loc.getBlock(); if(!block.getType().equals(Material.BREWING_STAND)) return; BrewingStand stand = (BrewingStand) block.getState(); stand.setFuelLevel(20); stand.update(); }
@EventHandler public void onInventoryOpen(InventoryOpenEvent event) { if (!(event.getPlayer() instanceof Player)) { return; } InventoryView inventory = event.getView(); DGameWorld gameWorld = DGameWorld.getByWorld(event.getPlayer().getWorld()); if (gameWorld == null) { return; } if (!(inventory.getTopInventory().getHolder() instanceof Chest)) { return; } Chest chest = (Chest) inventory.getTopInventory().getHolder(); for (RewardChest rewardChest : gameWorld.getRewardChests()) { if (!rewardChest.getChest().equals(chest)) { continue; } rewardChest.onOpen((Player) event.getPlayer()); event.setCancelled(true); } if (!plugin.getMainConfig().getOpenInventories() && !DPermission.hasPermission(event.getPlayer(), DPermission.INSECURE)) { World world = event.getPlayer().getWorld(); if (event.getInventory().getType() != InventoryType.CREATIVE && DEditWorld.getByWorld(world) != null) { event.setCancelled(true); } } }
/** * 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); } }
@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); }
@EventHandler(ignoreCancelled = true) public void onInventoryClick(InventoryClickEvent event) { HumanEntity entity = event.getWhoClicked(); Inventory inventory = event.getInventory(); ItemStack item = event.getCurrentItem(); if (item != null && inventory != null && inventory.getHolder() != null && entity instanceof Player) { Player player = (Player) entity; ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(entity.getWorld())); LocalPlayer localPlayer = getPlugin().wrapPlayer(player); if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(entity.getLocation()), createTarget(item)), false, false)) { event.setCancelled(true); if (inventory.getHolder().equals(player)) { event.setCurrentItem(null); } } } }
@EventHandler(priority = EventPriority.HIGH) public void onPrepareItemCraft(PrepareItemCraftEvent e){ if(e.getInventory() == null) return; ItemStack item = e.getInventory().getResult(); if(item == null) return; // This should never ever ever ever run. If it does then you probably screwed something up. if(item.getType() == Material.GOLDEN_APPLE && item.getDurability() == (short) 1){ World world = e.getView().getPlayer().getWorld(); if(isSettingEnabled("no-conflict-mode")) return; if(!isEnabled(world)) e.getInventory().setResult(null); else if(isEnabled(world) && !isSettingEnabled("enchanted-golden-apple-crafting")) e.getInventory().setResult(null); } }
@EventHandler public void onInventoryClick(InventoryClickEvent e){ if(!isEnabled(e.getWhoClicked().getWorld())) return; if(e.getInventory().getType() != InventoryType.ENCHANTING) return; if(!hasPermission(e.getWhoClicked())) return; ItemStack item = e.getCurrentItem(); if(item == null){ return; } if(item.getType() == lapisLazuliMaterial && e.getRawSlot() == 1){ e.setCancelled(true); } else if(e.getCursor() != null && e.getCursor().getType() == lapisLazuliMaterial && e.getClick() == ClickType.DOUBLE_CLICK){ e.setCancelled(true); } }
@EventHandler(ignoreCancelled = true) public void onInventoryCreative(InventoryCreativeEvent event) { HumanEntity entity = event.getWhoClicked(); ItemStack item = event.getCursor(); if (item != null && entity instanceof Player) { Player player = (Player) entity; ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(BukkitAdapter.adapt(entity.getWorld())); LocalPlayer localPlayer = getPlugin().wrapPlayer(player); if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check( new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asBlockVector(entity.getLocation()), createTarget(item)), false, false)) { event.setCancelled(true); event.setCursor(null); } } }