Now caches the world properties before unloading the world in order to prevent NPE on unload then load. Really fixes #947.
This commit is contained in:
parent
e5537dd8f1
commit
cce1ccc967
|
@ -373,17 +373,6 @@ public class MVWorld implements MultiverseWorld {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This prepares the MVWorld for unloading.
|
|
||||||
*/
|
|
||||||
public void tearDown() {
|
|
||||||
try {
|
|
||||||
this.props.tearDown();
|
|
||||||
} catch (IllegalStateException e) {
|
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes permissions.
|
* Initializes permissions.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -297,7 +297,7 @@ public class WorldProperties extends SerializationConfig {
|
||||||
/**
|
/**
|
||||||
* This prepares the MVWorld for unloading.
|
* This prepares the MVWorld for unloading.
|
||||||
*/
|
*/
|
||||||
public void tearDown() {
|
public void cacheVirtualProperties() {
|
||||||
try {
|
try {
|
||||||
this.buildVPropChanges();
|
this.buildVPropChanges();
|
||||||
} catch (IllegalStateException e) {
|
} catch (IllegalStateException e) {
|
||||||
|
|
|
@ -311,12 +311,10 @@ public class WorldManager implements MVWorldManager {
|
||||||
@Override
|
@Override
|
||||||
public boolean unloadWorld(String name) {
|
public boolean unloadWorld(String name) {
|
||||||
if (this.worlds.containsKey(name)) {
|
if (this.worlds.containsKey(name)) {
|
||||||
|
this.worldsFromTheConfig.get(name).cacheVirtualProperties();
|
||||||
if (this.unloadWorldFromBukkit(name, true)) {
|
if (this.unloadWorldFromBukkit(name, true)) {
|
||||||
this.worlds.remove(name);
|
this.worlds.remove(name);
|
||||||
Logging.info("World '%s' was unloaded from memory.", name);
|
Logging.info("World '%s' was unloaded from memory.", name);
|
||||||
|
|
||||||
this.worldsFromTheConfig.get(name).tearDown();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
Logging.warning("World '%s' could not be unloaded. Is it a default world?", name);
|
Logging.warning("World '%s' could not be unloaded. Is it a default world?", name);
|
||||||
|
|
Loading…
Reference in New Issue