Add worldgenerator
This commit is contained in:
parent
3c2763d53c
commit
fdd5c3d58a
|
|
@ -48,13 +48,6 @@ public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI
|
||||||
|
|
||||||
// load worlds & manager
|
// load worlds & manager
|
||||||
islandManager = new IslandManager(this);
|
islandManager = new IslandManager(this);
|
||||||
|
|
||||||
//
|
|
||||||
World world = Bukkit.getWorld(MasterWorldGenerator.WORLD_NAME);
|
|
||||||
if (world == null) {
|
|
||||||
MasterWorldGenerator masterWorldGenerator = new MasterWorldGenerator(this);
|
|
||||||
masterWorldGenerator.checkMasterIslandWorld();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.alttd.cometskyblock.worldgenerator;
|
||||||
|
|
||||||
|
import com.alttd.cometskyblock.CometSkyBlockPlugin;
|
||||||
|
import com.alttd.cometskyblock.configuration.PluginConfiguration;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.WorldCreator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the main island that will be used to create all the following islands for players.
|
||||||
|
*/
|
||||||
|
public class MasterWorldGenerator {
|
||||||
|
|
||||||
|
CometSkyBlockPlugin plugin;
|
||||||
|
public static final String WORLD_NAME = "CometSkyBlockMasterWorld";
|
||||||
|
|
||||||
|
public MasterWorldGenerator(CometSkyBlockPlugin plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkMasterIslandWorld() {
|
||||||
|
if (plugin.getServer().getWorld(WORLD_NAME) == null) {
|
||||||
|
createMasterIslandWorld(result -> {
|
||||||
|
plugin.getLogger().info(WORLD_NAME + " has been created");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void createMasterIslandWorld(Callback callback) {
|
||||||
|
plugin.getServer().getScheduler().runTask(plugin, () -> {
|
||||||
|
WorldCreator worldCreator = new WorldCreator(WORLD_NAME);
|
||||||
|
worldCreator.generator(new CometIslandGenerator());
|
||||||
|
worldCreator.environment(World.Environment.NORMAL);
|
||||||
|
worldCreator.generateStructures(true);
|
||||||
|
|
||||||
|
World world = worldCreator.createWorld();
|
||||||
|
if (world == null) {
|
||||||
|
plugin.getLogger().warning("Could not create CometSkyBlock MasterIslandWorld! Does the world(" + WORLD_NAME + ") already exist?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PluginConfiguration pluginConfiguration = plugin.getPluginConfiguration().get();
|
||||||
|
world.getWorldBorder().setCenter(pluginConfiguration.getMasterWorldGenerator().getCenterX(), pluginConfiguration.getMasterWorldGenerator().getCenterZ());
|
||||||
|
world.getWorldBorder().setSize(pluginConfiguration.getMasterWorldGenerator().getSize());
|
||||||
|
world.setAutoSave(true);
|
||||||
|
world.setSpawnLocation(pluginConfiguration.getMasterWorldGenerator().getSpawnX(), pluginConfiguration.getMasterWorldGenerator().getSpawnY(), pluginConfiguration.getMasterWorldGenerator().getSpawnz()); // TODO
|
||||||
|
|
||||||
|
// TODO Load a schematic into this world?
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTask(plugin, () -> callback.onQueryDone(WORLD_NAME));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Callback {
|
||||||
|
void onQueryDone(String result);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user