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
|
||||
islandManager = new IslandManager(this);
|
||||
|
||||
//
|
||||
World world = Bukkit.getWorld(MasterWorldGenerator.WORLD_NAME);
|
||||
if (world == null) {
|
||||
MasterWorldGenerator masterWorldGenerator = new MasterWorldGenerator(this);
|
||||
masterWorldGenerator.checkMasterIslandWorld();
|
||||
}
|
||||
}
|
||||
|
||||
@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