public void pickupItem(Player p, int id, Location location) { GroundItem item = itemExists(location, id); if (item != null && p.getSprites().getPrimarySprite() == -1 && p.getSprites().getSecondarySprite() == -1) { if (item.getDefinition().isPlayerBound() && !item.getOwner().Equals(p)) { return; } if (!p.getInventory().addItem(item.getItemId(), item.getItemAmount())) { return; } clearGlobalItem(item); if (item.isRespawn()) { GroundItem i = item; Event itemRespawnEvent = new Event(60000); itemRespawnEvent.setAction(() => { GroundItem respawn = new GroundItem(i.getItemId(), i.getItemAmount(), i.getLocation(), null); respawn.setRespawn(true); respawn.setGlobal(true); newGlobalItem(respawn); itemRespawnEvent.stop(); }); } } }