mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2024-11-28 13:36:21 +01:00
Remove ability to unload default worlds.
This commit is contained in:
parent
e843b0711d
commit
92951739fb
@ -219,6 +219,38 @@ public interface MVWorldManager {
|
|||||||
*/
|
*/
|
||||||
boolean isMVWorld(World world);
|
boolean isMVWorld(World world);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a world name is the servers default world.
|
||||||
|
*
|
||||||
|
* Generally, default world is defined in level-name of server properties file along with
|
||||||
|
* it's 2 dimensions: [world]_nether, [world]_the_end.
|
||||||
|
*
|
||||||
|
* @param world The world to check.
|
||||||
|
* @return True if world name is a default world, else false.
|
||||||
|
*/
|
||||||
|
boolean isDefaultWorld(MultiverseWorld world);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a world name is the servers default world.
|
||||||
|
*
|
||||||
|
* Generally, default world is defined in level-name of server properties file along with
|
||||||
|
* it's 2 dimensions: [world]_nether, [world]_the_end.
|
||||||
|
*
|
||||||
|
* @param worldName The name of the world to check.
|
||||||
|
* @return True if world name is a default world, else false.
|
||||||
|
*/
|
||||||
|
boolean isDefaultWorld(String worldName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets all the default world names of the server.
|
||||||
|
*
|
||||||
|
* Generally, default world is defined in level-name of server properties file along with
|
||||||
|
* it's 2 dimensions: [world]_nether, [world]_the_end.
|
||||||
|
*
|
||||||
|
* @return Collection of default world names.
|
||||||
|
*/
|
||||||
|
Collection<String> getDefaultWorldNames();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the Worlds & Settings from the configuration file.
|
* Load the Worlds & Settings from the configuration file.
|
||||||
*
|
*
|
||||||
|
@ -40,6 +40,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@ -59,6 +60,7 @@ public class WorldManager implements MVWorldManager {
|
|||||||
private final WorldPurger worldPurger;
|
private final WorldPurger worldPurger;
|
||||||
private final Map<String, MultiverseWorld> worlds;
|
private final Map<String, MultiverseWorld> worlds;
|
||||||
private Map<String, WorldProperties> worldsFromTheConfig;
|
private Map<String, WorldProperties> worldsFromTheConfig;
|
||||||
|
private Set<String> defaultWorldNames;
|
||||||
private FileConfiguration configWorlds = null;
|
private FileConfiguration configWorlds = null;
|
||||||
private Map<String, String> defaultGens;
|
private Map<String, String> defaultGens;
|
||||||
private String firstSpawn;
|
private String firstSpawn;
|
||||||
@ -383,6 +385,11 @@ public class WorldManager implements MVWorldManager {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean unloadWorld(String name, boolean unloadBukkit) {
|
public boolean unloadWorld(String name, boolean unloadBukkit) {
|
||||||
|
if (this.isDefaultWorld(name)) {
|
||||||
|
Logging.warning("You cannot unload the default worlds.");
|
||||||
|
Logging.warning("Default worlds on your server are: %s", this.defaultWorldNames);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (this.worlds.containsKey(name)) {
|
if (this.worlds.containsKey(name)) {
|
||||||
this.worldsFromTheConfig.get(name).cacheVirtualProperties();
|
this.worldsFromTheConfig.get(name).cacheVirtualProperties();
|
||||||
if (unloadBukkit && this.unloadWorldFromBukkit(name, true)) {
|
if (unloadBukkit && this.unloadWorldFromBukkit(name, true)) {
|
||||||
@ -707,6 +714,7 @@ public class WorldManager implements MVWorldManager {
|
|||||||
public void loadDefaultWorlds() {
|
public void loadDefaultWorlds() {
|
||||||
this.ensureConfigIsPrepared();
|
this.ensureConfigIsPrepared();
|
||||||
List<World> myWorlds = this.plugin.getServer().getWorlds();
|
List<World> myWorlds = this.plugin.getServer().getWorlds();
|
||||||
|
this.defaultWorldNames = new HashSet<>(myWorlds.size());
|
||||||
for (World w : myWorlds) {
|
for (World w : myWorlds) {
|
||||||
String name = w.getName();
|
String name = w.getName();
|
||||||
if (!worldsFromTheConfig.containsKey(name)) {
|
if (!worldsFromTheConfig.containsKey(name)) {
|
||||||
@ -714,9 +722,15 @@ public class WorldManager implements MVWorldManager {
|
|||||||
if (this.defaultGens.containsKey(name)) {
|
if (this.defaultGens.containsKey(name)) {
|
||||||
generator = this.defaultGens.get(name);
|
generator = this.defaultGens.get(name);
|
||||||
}
|
}
|
||||||
this.addWorld(name, w.getEnvironment(), String.valueOf(w.getSeed()), w.getWorldType(), w.canGenerateStructures(), generator);
|
if (!this.addWorld(name, w.getEnvironment(), String.valueOf(w.getSeed()), w.getWorldType(), w.canGenerateStructures(), generator)) {
|
||||||
|
Logging.warning("Error loading default world '%s'!", w.getName());
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.defaultWorldNames.add(name);
|
||||||
|
}
|
||||||
|
this.defaultWorldNames = Collections.unmodifiableSet(this.defaultWorldNames);
|
||||||
|
Logging.fine("Loaded default worlds: %s", this.defaultWorldNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ensureConfigIsPrepared() {
|
private void ensureConfigIsPrepared() {
|
||||||
@ -726,6 +740,21 @@ public class WorldManager implements MVWorldManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDefaultWorld(MultiverseWorld world) {
|
||||||
|
return world != null && this.isDefaultWorld(world.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDefaultWorld(String worldName) {
|
||||||
|
return this.defaultWorldNames != null && this.defaultWorldNames.contains(worldName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<String> getDefaultWorldNames() {
|
||||||
|
return this.defaultWorldNames;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user