|
|
@ -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,6 +1104,11 @@ 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()); |
|
|
|