This commit is contained in:
tastybento 2022-12-17 08:39:27 -08:00
parent d730ba725a
commit c7880b355d
4 changed files with 32 additions and 15 deletions

View File

@ -1,11 +1,7 @@
package world.bentobox.boxed;
import java.util.Arrays;
import java.util.Collections;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.ChunkSnapshot;
import org.bukkit.Difficulty;
import org.bukkit.Material;
import org.bukkit.World;
@ -25,16 +21,13 @@ import world.bentobox.bentobox.api.configuration.WorldSettings;
import world.bentobox.bentobox.api.flags.Flag;
import world.bentobox.bentobox.api.flags.Flag.Mode;
import world.bentobox.bentobox.api.flags.Flag.Type;
import world.bentobox.bentobox.blueprints.BlueprintClipboard;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.boxed.generators.BoxedBiomeGenerator;
import world.bentobox.boxed.generators.BoxedBlockPopulator;
import world.bentobox.boxed.generators.BoxedChunkGenerator;
import world.bentobox.boxed.generators.BoxedSeedChunkGenerator;
import world.bentobox.boxed.generators.SeedBiomeGenerator;
import world.bentobox.boxed.listeners.AdvancementListener;
import world.bentobox.boxed.listeners.EnderPearlListener;
import world.bentobox.boxed.listeners.NewAreaListener;
/**
* Main Boxed class - provides a survival game inside a box
@ -64,7 +57,7 @@ public class Boxed extends GameModeAddon {
private BoxedChunkGenerator netherChunkGenerator;
private World seedWorld;
private World seedWorldNether;
private World seedWorldEnd;
//private World seedWorldEnd;
private BiomeProvider boxedBiomeProvider;
private BlockPopulator boxedBlockPopulator;
@ -180,6 +173,24 @@ public class Boxed extends GameModeAddon {
// Make the nether if it does not exist
if (settings.isNetherGenerate()) {
log("Creating Boxed Seed Nether world ...");
// Copy regions
/*
boolean newWorld = Bukkit.getWorld(SEED + NETHER) == null;
if (newWorld) {
// New world
File root = new File(getDataFolder(), "../../../..");
BentoBox.getInstance().logDebug("Absolute path " + root.getAbsolutePath());
this.saveResource("worlds/seed_nether/DIM-1/region/r.18.18.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.18.19.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.18.20.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.19.18.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.19.19.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.19.20.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.20.18.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.20.19.mca", root, false, false);
this.saveResource("worlds/seed_nether/DIM-1/region/r.20.20.mca", root, false, false);
}*/
seedWorldNether = WorldCreator
.name(SEED + NETHER)
.generator(new BoxedSeedChunkGenerator(this, Environment.NETHER))
@ -187,6 +198,10 @@ public class Boxed extends GameModeAddon {
.seed(getSettings().getSeed())
.createWorld();
seedWorldNether.setDifficulty(Difficulty.EASY); // No damage wanted in this world.
copyChunks(seedWorldNether);
if (getServer().getWorld(worldName + NETHER) == null) {
@ -207,7 +222,7 @@ public class Boxed extends GameModeAddon {
/**
* Copies chunks from the seed world so they can be pasted in the game world
* @param seedWorld - souce world
* @param seedWorld - source world
*/
private void copyChunks(World seedWorld) {
BoxedChunkGenerator gen;

View File

@ -28,7 +28,7 @@ import world.bentobox.boxed.Boxed;
* @author tastybento
*
*/
public abstract class AbstractSeendBiomeProvider extends BiomeProvider {
public abstract class AbstractSeedBiomeProvider extends BiomeProvider {
private static final Map<Environment, String> ENV_MAP;
@ -50,7 +50,7 @@ public abstract class AbstractSeendBiomeProvider extends BiomeProvider {
protected final Map<BlockFace, SortedMap<Double, Biome>> quadrants;
protected AbstractSeendBiomeProvider(Boxed boxed, Environment env, Biome defaultBiome) {
protected AbstractSeedBiomeProvider(Boxed boxed, Environment env, Biome defaultBiome) {
this.addon = boxed;
this.defaultBiome = defaultBiome;
dist = addon.getSettings().getIslandDistance();
@ -129,9 +129,10 @@ public abstract class AbstractSeendBiomeProvider extends BiomeProvider {
try {
double d = Double.parseDouble(split[0]);
Biome biome = Enums.getIfPresent(Biome.class, split[1].toUpperCase(Locale.ENGLISH)).orNull();
if (biome == null) {
if (biome == null && !split[1].toUpperCase(Locale.ENGLISH).equalsIgnoreCase("default")) {
addon.logError(split[1].toUpperCase(Locale.ENGLISH) + " is an unknown biome on this server.");
} else {
// A biome of null means that no alternative biome should be applied
result.put(d, biome);
}
} catch(Exception e) {

View File

@ -3,6 +3,7 @@ package world.bentobox.boxed.generators;
import org.bukkit.World.Environment;
import org.bukkit.generator.BiomeProvider;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.WorldInfo;
import world.bentobox.boxed.Boxed;
@ -25,12 +26,12 @@ public class BoxedSeedChunkGenerator extends ChunkGenerator {
this.env = env;
}
/*
@Override
public BiomeProvider getDefaultBiomeProvider(WorldInfo worldInfo) {
return seedBiomeProvider;
}
*/
@Override
public boolean shouldGenerateNoise() {
return true;

View File

@ -9,7 +9,7 @@ import world.bentobox.boxed.Boxed;
* @author tastybento
*
*/
public class SeedBiomeGenerator extends AbstractSeendBiomeProvider {
public class SeedBiomeGenerator extends AbstractSeedBiomeProvider {
public SeedBiomeGenerator(Boxed boxed) {
super(boxed, Environment.NORMAL, Biome.OCEAN);