Interface SlimeWorld

All Superinterfaces:
org.bukkit.persistence.PersistentDataHolder, io.papermc.paper.persistence.PersistentDataViewHolder
All Known Subinterfaces:
SlimeWorldInstance

public interface SlimeWorld extends org.bukkit.persistence.PersistentDataHolder
In-memory representation of a SRF world.
  • Method Details

    • getName

      String getName()
      Returns the name of the world.
      Returns:
      The name of the world.
    • getLoader

      SlimeLoader getLoader()
      Returns the SlimeLoader used to load and store the world.
      Returns:
      The SlimeLoader used to load and store the world.
    • getChunk

      SlimeChunk getChunk(int x, int z)
      Returns the chunk that belongs to the coordinates specified.
      Parameters:
      x - X coordinate.
      z - Z coordinate.
      Returns:
      The SlimeChunk that belongs to those coordinates.
    • getChunkStorage

      Collection<SlimeChunk> getChunkStorage()
    • getExtraData

      ConcurrentMap<String,net.kyori.adventure.nbt.BinaryTag> getExtraData()
      Extra data to be stored alongside the world.

      Any information can be stored inside this map, it will be serialized into a CompoundBinaryTag and stored alongside the world data so it can then be retrieved later.

      Returns:
      A Map containing the extra data of the world.
      API Note
      There is a maximum limit of 512 nested tags
      Implementation Requirements
      The returned map must be an implementation of ConcurrentMap to avoid CMEs, etc.
    • getWorldMaps

      Collection<net.kyori.adventure.nbt.CompoundBinaryTag> getWorldMaps()
      Returns a Collection with every world map, serialized in a CompoundBinaryTag object.
      Returns:
      A Collection containing every world map.
    • getPropertyMap

      SlimePropertyMap getPropertyMap()
      Returns the property map.
      Returns:
      A SlimePropertyMap object containing all the properties of the world.
    • isReadOnly

      boolean isReadOnly()
      Returns whether read-only is enabled.
      Returns:
      true if read-only is enabled, false otherwise.
    • clone

      SlimeWorld clone(String worldName)
      Returns a clone of the world with the given name. This world will never be stored, as the readOnly property will be set to true.
      Parameters:
      worldName - The name of the cloned world.
      Returns:
      The clone of the world.
      Throws:
      IllegalArgumentException - if the name of the world is the same as the current one or is null.
    • clone

      Returns a clone of the world with the given name. The world will be automatically stored inside the provided data source.
      Parameters:
      worldName - The name of the cloned world.
      loader - The SlimeLoader used to store the world or null if the world is temporary.
      Returns:
      The clone of the world.
      Throws:
      IllegalArgumentException - if the name of the world is the same as the current one or is null.
      WorldAlreadyExistsException - if there's already a world with the same name inside the provided data source.
      IOException - if the world could not be stored.
    • getDataVersion

      int getDataVersion()