Add more world generators

This commit is contained in:
Len 2024-01-22 19:00:25 +01:00
parent 6fb2e2769e
commit 087f25b23a
4 changed files with 91 additions and 14 deletions

View File

@ -1,15 +1,28 @@
package com.alttd.cometskyblock; package com.alttd.cometskyblock;
import com.alttd.cometskyblock.configuration.*;
import com.alttd.cometskyblock.listeners.PlayerJoinListener; import com.alttd.cometskyblock.listeners.PlayerJoinListener;
import com.alttd.cometskyblock.worldgenerator.IslandGenerator; import com.alttd.cometskyblock.managers.IslandManager;
import com.alttd.cometskyblock.worldgenerator.MasterWorldGenerator;
import lombok.Getter;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.slf4j.Logger;
import java.nio.file.Path;
public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI { public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI {
private static CometSkyBlockPlugin instance; @Getter private static CometSkyBlockPlugin instance;
@Getter private ConfigurationContainer<PluginConfiguration> pluginConfiguration;
@Getter private ConfigurationContainer<DatabaseConfiguration> databaseConfiguration;
@Getter private ConfigurationContainer<MessageConfiguration> messagesConfiguration;
@Getter private ConfigurationContainer<ChallengesConfiguration> challengesConfiguration;
@Getter private IslandManager islandManager;
@Override @Override
public void onLoad() { public void onLoad() {
@ -19,19 +32,56 @@ public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI
@Override @Override
public void onEnable() { public void onEnable() {
String island = "Island"; // Load configurations
World world = Bukkit.getWorld(island); loadConfiguration();
if (world == null) {
new IslandGenerator(instance).create(island);
}
final PluginManager pm = getServer().getPluginManager(); // Load commands
pm.registerEvents(new PlayerJoinListener(this), this); loadCommands();
// Load event listeners
loadEventListeners();
// load data from storage
// run cleanup tasks
// CleanupAndDeleteOldIslands and playerdata
// 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 @Override
public void onDisable() { public void onDisable() {
// Cancel all running tasks
getServer().getScheduler().cancelTasks(this);
// close data connection
}
public void loadConfiguration() {
Path path = this.getDataFolder().toPath();
Logger logger = this.getSLF4JLogger();
pluginConfiguration = ConfigurationContainer.load(logger, path, PluginConfiguration.class, "config");
databaseConfiguration = ConfigurationContainer.load(logger, path, DatabaseConfiguration.class, "database");
messagesConfiguration = ConfigurationContainer.load(logger, path, MessageConfiguration.class, "messages");
challengesConfiguration = ConfigurationContainer.load(logger, path, ChallengesConfiguration.class, "challenges");
}
public void loadCommands() {
} }
public void loadEventListeners() {
// TODO - Use reflection to load all of these
final PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new PlayerJoinListener(this), this);
}
} }

View File

@ -0,0 +1,17 @@
package com.alttd.cometskyblock.worldgenerator;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class CometNetherGenerator extends CometVoidGenerator {
@Override
public @NotNull List<BlockPopulator> getDefaultPopulators(World world) {
List<BlockPopulator> populators = new ArrayList<>(1);
populators.add(new NetherIslandGenerator());
return populators;
}
}

View File

@ -9,7 +9,6 @@ import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
public class CometVoidGenerator extends ChunkGenerator { public class CometVoidGenerator extends ChunkGenerator {
@ -18,10 +17,6 @@ public class CometVoidGenerator extends ChunkGenerator {
return new ArrayList<>(); return new ArrayList<>();
} }
@Override
public void generateSurface(@NotNull WorldInfo info, @NotNull Random random, int x, int z, @NotNull ChunkData data) {
}
@Override @Override
public BiomeProvider getDefaultBiomeProvider(WorldInfo worldInfo) { public BiomeProvider getDefaultBiomeProvider(WorldInfo worldInfo) {
return worldInfo.vanillaBiomeProvider(); return worldInfo.vanillaBiomeProvider();

View File

@ -0,0 +1,15 @@
package com.alttd.cometskyblock.worldgenerator;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.LimitedRegion;
import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import java.util.Random;
public class NetherIslandGenerator extends BlockPopulator {
@Override
public void populate(@NotNull WorldInfo worldInfo, @NotNull Random random, int x, int z, @NotNull LimitedRegion limitedRegion) {
}
}