mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2025-02-07 07:51:41 +01:00
Merge remote-tracking branch 'origin/separate_world_gens' into develop
This commit is contained in:
commit
692f506261
@ -21,12 +21,30 @@ public class MultiverseCoreHook extends Hook {
|
||||
super("Multiverse-Core", Material.COMPASS);
|
||||
}
|
||||
|
||||
public void registerWorld(World world) {
|
||||
String cmd1 = MULTIVERSE_IMPORT + world.getName() + " " + world.getEnvironment().name().toLowerCase() + " -g " + BentoBox.getInstance().getName();
|
||||
/**
|
||||
* Register the world with Multiverse
|
||||
* @param world - world to register
|
||||
* @param islandWorld - if true, then this is an island world
|
||||
*/
|
||||
public void registerWorld(World world, boolean islandWorld) {
|
||||
if (islandWorld) {
|
||||
// Only register generator if one is defined in the addon (is not null)
|
||||
String generator = BentoBox.getInstance().getIWM().getAddon(world).map(gm -> gm.getDefaultWorldGenerator(world.getName(), "") != null).orElse(false) ? " -g " + BentoBox.getInstance().getName() : "";
|
||||
String cmd1 = MULTIVERSE_IMPORT + world.getName() + " " + world.getEnvironment().name().toLowerCase() + generator;
|
||||
String cmd2 = MULTIVERSE_SET_GENERATOR + BentoBox.getInstance().getName() + " " + world.getName();
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd1);
|
||||
if (!generator.isEmpty()) {
|
||||
// Register the generator
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd2);
|
||||
}
|
||||
} else {
|
||||
// Set the generator to null - this will remove any previous registration
|
||||
String cmd1 = MULTIVERSE_IMPORT + world.getName() + " " + world.getEnvironment().name().toLowerCase();
|
||||
String cmd2 = MULTIVERSE_SET_GENERATOR + "null " + world.getName();
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd1);
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hook() {
|
||||
|
@ -47,12 +47,12 @@ public class IslandWorldManager {
|
||||
|
||||
public void registerWorldsToMultiverse() {
|
||||
gameModes.values().stream().distinct().forEach(gm -> {
|
||||
registerToMultiverse(gm.getOverWorld());
|
||||
if (gm.getWorldSettings().isNetherGenerate() && gm.getWorldSettings().isNetherIslands()) {
|
||||
registerToMultiverse(gm.getNetherWorld());
|
||||
registerToMultiverse(gm.getOverWorld(), true);
|
||||
if (gm.getWorldSettings().isNetherGenerate()) {
|
||||
registerToMultiverse(gm.getNetherWorld(), gm.getWorldSettings().isNetherIslands());
|
||||
}
|
||||
if (gm.getWorldSettings().isEndGenerate() && gm.getWorldSettings().isEndIslands()) {
|
||||
registerToMultiverse(gm.getEndWorld());
|
||||
if (gm.getWorldSettings().isEndGenerate()) {
|
||||
registerToMultiverse(gm.getEndWorld(), gm.getWorldSettings().isEndIslands());
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -61,14 +61,15 @@ public class IslandWorldManager {
|
||||
* Registers a world with Multiverse if Multiverse is available.
|
||||
*
|
||||
* @param world the World to register
|
||||
* @param islandWorld true if this is an island world
|
||||
*/
|
||||
private void registerToMultiverse(@NonNull World world) {
|
||||
private void registerToMultiverse(@NonNull World world, boolean islandWorld) {
|
||||
if (plugin.getHooks() != null) {
|
||||
plugin.getHooks().getHook("Multiverse-Core").ifPresent(hook -> {
|
||||
if (Bukkit.isPrimaryThread()) {
|
||||
((MultiverseCoreHook) hook).registerWorld(world);
|
||||
((MultiverseCoreHook) hook).registerWorld(world, islandWorld);
|
||||
} else {
|
||||
Bukkit.getScheduler().runTask(plugin, () -> ((MultiverseCoreHook) hook).registerWorld(world));
|
||||
Bukkit.getScheduler().runTask(plugin, () -> ((MultiverseCoreHook) hook).registerWorld(world, islandWorld));
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -151,7 +152,7 @@ public class IslandWorldManager {
|
||||
// Add worlds to map
|
||||
gameModes.put(world, gameMode);
|
||||
// Call Multiverse
|
||||
registerToMultiverse(world);
|
||||
registerToMultiverse(world, true);
|
||||
if (settings.isNetherGenerate()) {
|
||||
if (!Bukkit.getAllowNether()) {
|
||||
// Warn the users that players might not be able to teleport to these worlds later on
|
||||
@ -162,7 +163,7 @@ public class IslandWorldManager {
|
||||
|
||||
gameModes.put(gameMode.getNetherWorld(), gameMode);
|
||||
if (settings.isNetherIslands()) {
|
||||
registerToMultiverse(gameMode.getNetherWorld());
|
||||
registerToMultiverse(gameMode.getNetherWorld(), true);
|
||||
}
|
||||
}
|
||||
if (settings.isEndGenerate()) {
|
||||
@ -174,8 +175,8 @@ public class IslandWorldManager {
|
||||
}
|
||||
|
||||
gameModes.put(gameMode.getEndWorld(), gameMode);
|
||||
if (settings.isEndGenerate()) {
|
||||
registerToMultiverse(gameMode.getEndWorld());
|
||||
if (settings.isEndIslands()) {
|
||||
registerToMultiverse(gameMode.getEndWorld(), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user