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

      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

      Copies the options from the specified world
      Parameters:
      world - World to copy options from
      Returns:
      This object, for chaining
    • copy

      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

      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

      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

      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

      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 (1.18.2 and above) defined. An example valid configuration is as follows: {"layers": [{"block": "stone", "height": 1}, {"block": "grass_block", "height": 1}], "biome":"plains"}

      Parameters:
      generatorSettings - The settings that should be used by the generator
      Returns:
      This object, for chaining
      See Also:
    • 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:
    • 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
    • keepSpawnInMemory

      @NotNull @Deprecated(forRemoval=true) public @NotNull WorldCreator keepSpawnInMemory(boolean keepSpawnInMemory)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Sets whether the spawn chunks will be kept loaded.
      Setting this to false will also stop the spawn chunks from being generated when creating a new world.

      Has little performance benefit unless paired with a ChunkGenerator that overrides ChunkGenerator.getFixedSpawnLocation(World, Random).

      Parameters:
      keepSpawnInMemory - Whether the spawn chunks will be kept loaded
      Returns:
      This object, for chaining
    • keepSpawnInMemory

      @Deprecated(forRemoval=true) public boolean keepSpawnInMemory()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Gets whether or not the spawn chunks will be kept loaded.
      Returns:
      True if the spawn chunks will be kept loaded
    • 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

      Creates a new WorldCreator for the given world name
      Parameters:
      name - Name of the world to load or create
      Returns:
      Resulting WorldCreator
    • getGeneratorForName

      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
    • keepSpawnLoaded

      @NotNull public TriState keepSpawnLoaded()
      Returns the current intent to keep the world loaded, @see keepSpawnLoaded(net.kyori.adventure.util.TriState)
      Returns:
      the current tristate value
    • keepSpawnLoaded

      @NotNull public @NotNull WorldCreator keepSpawnLoaded(@NotNull TriState keepSpawnLoaded)
      Controls if a world should be kept loaded or not, default (NOT_SET) will use the servers standard configuration, otherwise, will act as an override towards this setting
      Parameters:
      keepSpawnLoaded - the new value
      Returns:
      This object, for chaining