Add worldgenerator

This commit is contained in:
Len 2024-01-24 16:21:18 +01:00
parent 3c2763d53c
commit fdd5c3d58a
2 changed files with 56 additions and 7 deletions

View File

@ -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

View File

@ -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);
}
}