private void newGlobalItem(GroundItem item) {
		    if (item == null) {
			    return;
		    }
		    item = itemExists(item);
		    if (item != null) {
			    item.setGlobal(true);
			    foreach(Player p in Server.getPlayerList()) {
				    if (p == null || (item.getDefinition().isPlayerBound() && !item.getOwner().Equals(p))) {
					    continue;
				    }
				    if (p.getLocation().withinDistance(item.getLocation(), 60)) {
					    if(item.getOwner() != null) {
						    p.getPackets().createGroundItem2(item);
					    } else {
						    p.getPackets().createGroundItem(item);
					    }
				    }
			    }
			    if (!item.getDefinition().isPlayerBound()) {
				    item.setOwner(null);
			    }
			    GroundItem i = item;
			    if (!item.isRespawn()) {
                    Event removeGlobalItemEvent = new Event(60000);
				    removeGlobalItemEvent.setAction(() => {
						clearGlobalItem(i);
						removeGlobalItemEvent.stop();
				    });
                    Server.registerEvent(removeGlobalItemEvent);
			    }
		    }
	    }
	    public void newWorldItem(GroundItem item) {
		    lock(items) {
			    items.Add(item);
		    }
		    item.setOwner(null);
		    newGlobalItem(item);
	    }