Package org.bukkit

# Class WorldCreator

java.lang.Object
org.bukkit.WorldCreator

public class WorldCreator extends Object
Represents various types of options that may be used to create a world.

## Constructor Summary

Constructors
Constructor
Description
`WorldCreator(@NotNull String name)`
Creates an empty WorldCreationOptions for the given world name
`WorldCreator(@NotNull String levelName, @NotNull NamespacedKey worldKey)`
Creates an empty WorldCreator for the given world name and key
`WorldCreator(@NotNull NamespacedKey worldKey)`
Creates an empty WorldCreator for the given key.

## Method Summary

Modifier and Type
Method
Description
`@Nullable BiomeProvider`
`biomeProvider()`
Gets the biome provider that will be used to create or load the world.
`@NotNull WorldCreator`
`biomeProvider(@Nullable String biomeProvider)`
Sets the biome provider that will be used to create or load the world.
`@NotNull WorldCreator`
`biomeProvider(@Nullable String biomeProvider, @Nullable CommandSender output)`
Sets the biome provider that will be used to create or load the world.
`@NotNull WorldCreator`
`biomeProvider(@Nullable BiomeProvider biomeProvider)`
Sets the biome provider that will be used to create or load the world.
`@NotNull WorldCreator`
`copy(@NotNull World world)`
Copies the options from the specified world
`@NotNull WorldCreator`
`copy(@NotNull WorldCreator creator)`
Copies the options from the specified `WorldCreator`
`@Nullable World`
`createWorld()`
Creates a world with the specified options.
`World.Environment`
`environment()`
Gets the environment that will be used to create or load the world
`@NotNull WorldCreator`
`environment(World.Environment env)`
Sets the environment that will be used to create or load the world
`boolean`
`generateStructures()`
Gets whether or not structures will be generated in the world.
`@NotNull WorldCreator`
`generateStructures(boolean generate)`
Sets whether or not worlds created or loaded with this creator will have structures.
`@Nullable ChunkGenerator`
`generator()`
Gets the generator that will be used to create or load the world.
`@NotNull WorldCreator`
`generator(@Nullable String generator)`
Sets the generator that will be used to create or load the world.
`@NotNull WorldCreator`
`generator(@Nullable String generator, @Nullable CommandSender output)`
Sets the generator that will be used to create or load the world.
`@NotNull WorldCreator`
`generator(@Nullable ChunkGenerator generator)`
Sets the generator that will be used to create or load the world.
`@NotNull String`
`generatorSettings()`
Gets the generator settings of the world that will be created or loaded.
`@NotNull WorldCreator`
`generatorSettings(@NotNull String generatorSettings)`
Sets the generator settings of the world that will be created or loaded.
`static @Nullable BiomeProvider`
`getBiomeProviderForName(@NotNull String world, @Nullable String name, @Nullable CommandSender output)`
Attempts to get the `BiomeProvider` with the given name.
`static @Nullable ChunkGenerator`
`getGeneratorForName(@NotNull String world, @Nullable String name, @Nullable CommandSender output)`
Attempts to get the `ChunkGenerator` with the given name.
`boolean`
`hardcore()`
Gets whether the world will be hardcore or not.
`@NotNull WorldCreator`
`hardcore(boolean hardcore)`
Sets whether the world will be hardcore or not.
`@NotNull NamespacedKey`
`key()`
Gets the key for this WorldCreator
`@NotNull String`
`name()`
Gets the name of the world that is to be loaded or created.
`static @NotNull WorldCreator`
`name(@NotNull String name)`
Creates a new `WorldCreator` for the given world name
`static @NotNull WorldCreator`
`ofKey(@NotNull NamespacedKey worldKey)`
Creates an empty WorldCreator for the given key.
`static @NotNull WorldCreator`
`ofNameAndKey(@NotNull String levelName, @NotNull NamespacedKey worldKey)`
Creates an empty WorldCreator for the given world name and key
`long`
`seed()`
Gets the seed that will be used to create this world
`@NotNull WorldCreator`
`seed(long seed)`
Sets the seed that will be used to create this world
`@NotNull WorldType`
`type()`
Gets the type of the world that will be created or loaded
`@NotNull WorldCreator`
`type(@NotNull WorldType type)`
Sets the type of the world that will be created or loaded

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### WorldCreator

public WorldCreator(@NotNull @NotNull String name)
Creates an empty WorldCreationOptions for the given world name

Parameters:
  `name` - Name of the world that will be created

### WorldCreator

public WorldCreator(@NotNull @NotNull String levelName, @NotNull @NotNull NamespacedKey worldKey)
Creates an empty WorldCreator for the given world name and key

Parameters:
  `levelName` - LevelName of the world that will be created
  `worldKey` - NamespacedKey of the world that will be created

### WorldCreator

public WorldCreator(@NotNull @NotNull NamespacedKey worldKey)
Creates an empty WorldCreator for the given key. LevelName will be the Key part of the NamespacedKey.

Parameters:
  `worldKey` - NamespacedKey of the world that will be created

## Method Details

### key

@NotNull public @NotNull NamespacedKey key()
Gets the key for this WorldCreator

Returns:
  the key

### ofNameAndKey

@NotNull public static @NotNull WorldCreator ofNameAndKey(@NotNull @NotNull String levelName, @NotNull @NotNull NamespacedKey worldKey)
Creates an empty WorldCreator for the given world name and key

Parameters:
  `levelName` - LevelName of the world that will be created
  `worldKey` - NamespacedKey of the world that will be created

### ofKey

@NotNull public static @NotNull WorldCreator ofKey(@NotNull @NotNull NamespacedKey worldKey)
Creates an empty WorldCreator for the given key. LevelName will be the Key part of the NamespacedKey.

Parameters:
  `worldKey` - NamespacedKey of the world that will be created

### copy

@NotNull public @NotNull WorldCreator copy(@NotNull @NotNull World world)
Copies the options from the specified world

Parameters:
  `world` - World to copy options from
Returns:
  This object, for chaining

### copy

@NotNull public @NotNull WorldCreator copy(@NotNull @NotNull WorldCreator creator)
Copies the options from the specified `WorldCreator`

Parameters:
  `creator` - World creator to copy options from
Returns:
  This object, for chaining

### name

@NotNull public @NotNull String name()
Gets the name of the world that is to be loaded or created.

Returns:
  World name

### seed

public long seed()
Gets the seed that will be used to create this world

Returns:
  World seed

### seed

@NotNull public @NotNull WorldCreator seed(long seed)
Sets the seed that will be used to create this world

Parameters:
  `seed` - World seed
Returns:
  This object, for chaining

### environment

@NotNull public World.Environment environment()
Gets the environment that will be used to create or load the world

Returns:
  World environment

### environment

@NotNull public @NotNull WorldCreator environment(@NotNull World.Environment env)
Sets the environment that will be used to create or load the world

Parameters:
  `env` - World environment
Returns:
  This object, for chaining

### type

@NotNull public @NotNull WorldType type()
Gets the type of the world that will be created or loaded

Returns:
  World type

### type

@NotNull public @NotNull WorldCreator type(@NotNull @NotNull WorldType type)
Sets the type of the world that will be created or loaded

Parameters:
  `type` - World type
Returns:
  This object, for chaining

### generator

@Nullable public @Nullable ChunkGenerator generator()
Gets the generator that will be used to create or load the world.

This may be null, in which case the "natural" generator for this environment will be used.

Returns:
  Chunk generator

### generator

@NotNull public @NotNull WorldCreator generator(@Nullable @Nullable ChunkGenerator generator)
Sets the generator that will be used to create or load the world.

This may be null, in which case the "natural" generator for this environment will be used.

Parameters:
  `generator` - Chunk generator
Returns:
  This object, for chaining

### generator

@NotNull public @NotNull WorldCreator generator(@Nullable @Nullable String generator)
Sets the generator that will be used to create or load the world.

This may be null, in which case the "natural" generator for this environment will be used.

If the generator cannot be found for the given name, the natural environment generator will be used instead and a warning will be printed to the console.

Parameters:
  `generator` - Name of the generator to use, in "plugin:id" notation
Returns:
  This object, for chaining

### generator

@NotNull public @NotNull WorldCreator generator(@Nullable @Nullable String generator, @Nullable @Nullable CommandSender output)
Sets the generator that will be used to create or load the world.

This may be null, in which case the "natural" generator for this environment will be used.

If the generator cannot be found for the given name, the natural environment generator will be used instead and a warning will be printed to the specified output

Parameters:
  `generator` - Name of the generator to use, in "plugin:id" notation
  `output` - `CommandSender` that will receive any error messages
Returns:
  This object, for chaining

### biomeProvider

@Nullable public @Nullable BiomeProvider biomeProvider()
Gets the biome provider that will be used to create or load the world.

This may be null, in which case the biome provider from the `ChunkGenerator` will be used. If no `ChunkGenerator` is specific the "natural" biome provider for this environment will be used.

Returns:
  Biome provider

### biomeProvider

@NotNull public @NotNull WorldCreator biomeProvider(@Nullable @Nullable BiomeProvider biomeProvider)
Sets the biome provider that will be used to create or load the world.

This may be null, in which case the biome provider from the `ChunkGenerator` will be used. If no `ChunkGenerator` is specific the "natural" biome provider for this environment will be used.

Parameters:
  `biomeProvider` - Biome provider
Returns:
  This object, for chaining

### biomeProvider

@NotNull public @NotNull WorldCreator biomeProvider(@Nullable @Nullable String biomeProvider)
Sets the biome provider that will be used to create or load the world.

This may be null, in which case the biome provider from the `ChunkGenerator` will be used. If no `ChunkGenerator` is specific the "natural" biome provider for this environment will be used.

If the biome provider cannot be found for the given name and no `ChunkGenerator` is specific, the natural environment biome provider will be used instead and a warning will be printed to the specified output

Parameters:
  `biomeProvider` - Name of the biome provider to use, in "plugin:id" notation
Returns:
  This object, for chaining

### biomeProvider

@NotNull public @NotNull WorldCreator biomeProvider(@Nullable @Nullable String biomeProvider, @Nullable @Nullable CommandSender output)
Sets the biome provider that will be used to create or load the world.

This may be null, in which case the biome provider from the `ChunkGenerator` will be used. If no `ChunkGenerator` is specific the "natural" biome provider for this environment will be used.

If the biome provider cannot be found for the given name and no `ChunkGenerator` is specific, the natural environment biome provider will be used instead and a warning will be printed to the specified output

Parameters:
  `biomeProvider` - Name of the biome provider to use, in "plugin:id" notation
  `output` - `CommandSender` that will receive any error messages
Returns:
  This object, for chaining

### generatorSettings

@NotNull public @NotNull WorldCreator generatorSettings(@NotNull @NotNull String generatorSettings)
Sets the generator settings of the world that will be created or loaded.

Currently only `WorldType.FLAT` uses these settings, and expects them to be in JSON format with a valid biome AND structures (1.16 and above) defined. Note the occurrence of "structures" twice (nested compound may be empty, both must exist.). An example valid configuration is as follows: `{"structures": {"structures": {"village": {"salt": 8015723, "spacing": 32, "separation": 8}}}, "layers": [{"block": "stone", "height": 1}, {"block": "grass", "height": 1}], "biome":"plains"}`

Parameters:
  `generatorSettings` - The settings that should be used by the generator
Returns:
  This object, for chaining
See Also:
  - Custom dimension (scroll to "When the generator ID type is `minecraft:flat`)"

### generatorSettings

@NotNull public @NotNull String generatorSettings()
Gets the generator settings of the world that will be created or loaded.

Returns:
  The settings that should be used by the generator
See Also:
  - `generatorSettings(java.lang.String)`

### generateStructures

@NotNull public @NotNull WorldCreator generateStructures(boolean generate)
Sets whether or not worlds created or loaded with this creator will have structures.

Parameters:
  `generate` - Whether to generate structures
Returns:
  This object, for chaining

### generateStructures

public boolean generateStructures()
Gets whether or not structures will be generated in the world.

Returns:
  True if structures will be generated

### hardcore

@NotNull public @NotNull WorldCreator hardcore(boolean hardcore)
Sets whether the world will be hardcore or not. In a hardcore world the difficulty will be locked to hard.

Parameters:
  `hardcore` - Whether the world will be hardcore
Returns:
  This object, for chaining

### hardcore

public boolean hardcore()
Gets whether the world will be hardcore or not. In a hardcore world the difficulty will be locked to hard.

Returns:
  hardcore status

### createWorld

@Nullable public @Nullable World createWorld()
Creates a world with the specified options.

If the world already exists, it will be loaded from disk and some options may be ignored.

Returns:
  Newly created or loaded world

### name

@NotNull public static @NotNull WorldCreator name(@NotNull @NotNull String name)
Creates a new `WorldCreator` for the given world name

Parameters:
  `name` - Name of the world to load or create
Returns:
  Resulting WorldCreator

### getGeneratorForName

@Nullable public static @Nullable ChunkGenerator getGeneratorForName(@NotNull @NotNull String world, @Nullable @Nullable String name, @Nullable @Nullable CommandSender output)
Attempts to get the `ChunkGenerator` with the given name.

If the generator is not found, null will be returned and a message will be printed to the specified `CommandSender` explaining why.

The name must be in the "plugin:id" notation, or optionally just "plugin", where "plugin" is the safe-name of a plugin and "id" is an optional unique identifier for the generator you wish to request from the plugin.

Parameters:
  `world` - Name of the world this will be used for
  `name` - Name of the generator to retrieve
  `output` - Where to output if errors are present
Returns:
  Resulting generator, or null

### getBiomeProviderForName

@Nullable public static @Nullable BiomeProvider getBiomeProviderForName(@NotNull @NotNull String world, @Nullable @Nullable String name, @Nullable @Nullable CommandSender output)
Attempts to get the `BiomeProvider` with the given name.

If the biome provider is not found, null will be returned and a message will be printed to the specified `CommandSender` explaining why.

The name must be in the "plugin:id" notation, or optionally just "plugin", where "plugin" is the safe-name of a plugin and "id" is an optional unique identifier for the biome provider you wish to request from the plugin.

Parameters:
  `world` - Name of the world this will be used for
  `name` - Name of the biome provider to retrieve
  `output` - Where to output if errors are present
Returns:
  Resulting biome provider, or null