| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -41,6 +41,7 @@ import java.util.HashSet; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.Iterator; | 
					 | 
					 | 
					 | 
					import java.util.Iterator; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.concurrent.ConcurrentHashMap; | 
					 | 
					 | 
					 | 
					import java.util.concurrent.ConcurrentHashMap; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.concurrent.ThreadLocalRandom; | 
					 | 
					 | 
					 | 
					import java.util.concurrent.ThreadLocalRandom; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import java.util.concurrent.atomic.AtomicBoolean; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.concurrent.locks.ReentrantReadWriteLock; | 
					 | 
					 | 
					 | 
					import java.util.concurrent.locks.ReentrantReadWriteLock; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					public class City extends AbstractWorldObject { | 
					 | 
					 | 
					 | 
					public class City extends AbstractWorldObject { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -80,6 +81,7 @@ public class City extends AbstractWorldObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private String hash; | 
					 | 
					 | 
					 | 
					    private String hash; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public Warehouse warehouse; | 
					 | 
					 | 
					 | 
					    public Warehouse warehouse; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public Realm realm; | 
					 | 
					 | 
					 | 
					    public Realm realm; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    public AtomicBoolean isDestroyed = new AtomicBoolean(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /** | 
					 | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * ResultSet Constructor | 
					 | 
					 | 
					 | 
					     * ResultSet Constructor | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1102,9 +1104,14 @@ public class City extends AbstractWorldObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public final void destroy() { | 
					 | 
					 | 
					 | 
					    public final void destroy() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (this.isDestroyed.compareAndSet(false, true) == false) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            Logger.error("Attempt to destroy tol twice"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        Thread destroyCityThread = new Thread(new DestroyCityThread(this)); | 
					 | 
					 | 
					 | 
					        Thread destroyCityThread = new Thread(new DestroyCityThread(this)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        destroyCityThread.setName("destroyCity:" + this.getName()); | 
					 | 
					 | 
					 | 
					        destroyCityThread.setName("destroyCity: " + this.getName()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        destroyCityThread.start(); | 
					 | 
					 | 
					 | 
					        destroyCityThread.start(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |