Interface ChunkManager

    • Method Detail

      • valid

        boolean valid​(Ticket<?> ticket)
        Checks if the provided Ticket is valid for the world this manager represents.
        Parameters:
        ticket - The ticket to check.
        Returns:
        true if so
      • timeLeft

        Ticks timeLeft​(Ticket<?> ticket)
        Gets the Ticks remaining on the supplied ticket.
        Returns:
        The Ticks
      • requestTicket

        default java.util.Optional<Ticket<Vector3i>> requestTicket​(TicketType<Vector3i> type,
                                                                   Vector3i chunkOrigin,
                                                                   int radius)
        Request a Ticket for a given TicketType that supports a chunk position.
        Parameters:
        type - The type of ticket to request.
        chunkOrigin - The chunk co-ordinates of the central WorldChunk affected by this Ticket
        radius - The radius of the area, in chunks, that this Ticket affects.
        Returns:
        The ticket, if granted.
      • requestTicket

        <T> java.util.Optional<Ticket<T>> requestTicket​(TicketType<T> type,
                                                        Vector3i chunkOrigin,
                                                        T value,
                                                        int radius)
        Request a Ticket for the given TicketType.
        Type Parameters:
        T - The type of the supplied value.
        Parameters:
        type - The type of ticket to request.
        chunkOrigin - The chunk co-ordinates of the central WorldChunk affected by this Ticket
        value - The value to register the ticket with.
        radius - The radius of the area, in chunks, that this Ticket affects.
        Returns:
        The ticket, if granted.
      • requestTicket

        default <T> java.util.Optional<Ticket<T>> requestTicket​(DefaultedRegistryReference<TicketType<T>> type,
                                                                Vector3i chunkOrigin,
                                                                T value,
                                                                int radius)
        Request a Ticket for the given TicketType.
        Type Parameters:
        T - The type of the supplied value.
        Parameters:
        type - The type of ticket to request.
        chunkOrigin - The chunk co-ordinates of the central WorldChunk affected by this Ticket
        value - The value to register the ticket with.
        radius - The radius of the area, in chunks, that this Ticket affects. This may be capped - for the Vanilla impl, this is limited to a radius of 33 chunks.
        Returns:
        The ticket, if granted.
      • renewTicket

        boolean renewTicket​(Ticket<?> ticket)
        Attempts to renew this ticket, resetting the lifetime to the default.

        If this ticket is no longer valid, it cannot be renewed. Instead, you should requestTicket(TicketType, Vector3i, Object, int) a new one.

        Parameters:
        ticket - The ticket to attempt to renew
        Returns:
        true if successful
      • releaseTicket

        boolean releaseTicket​(Ticket<?> ticket)
        Releases the provided Ticket, allowing the chunk position represented by the given ticket to be unloaded (if it is not being kept loaded by other means).
        Parameters:
        ticket - The ticket to release.
      • findTickets

        <T> java.util.Collection<Ticket<T>> findTickets​(TicketType<T> type)
        Gets all currently active tickets that are of the provided TicketType.
        Type Parameters:
        T - The type of value the Ticket holds
        Parameters:
        type - The TicketType to retrieve tickets for
        Returns:
        A Collection of tickets
      • regenerateChunk

        default java.util.concurrent.CompletableFuture<java.lang.Boolean> regenerateChunk​(Vector3i chunkPosition)
        Regenerates a chunk at the given chunk coordinate position.

        Care should be taken to check the result of the future, as an exception may be provided if the regeneration was not successful.

        Users must not use get or join on this future. Doing so may end up causing a deadlock on the server.

        Parameters:
        chunkPosition - The chunk position to regenerate
        Returns:
        The regenerated chunk, if available
      • regenerateChunk

        default java.util.concurrent.CompletableFuture<java.lang.Boolean> regenerateChunk​(int cx,
                                                                                          int cy,
                                                                                          int cz)
        Regenerates a chunk at the given chunk coordinates.

        Care should be taken to check the result of the future, as an exception may be provided if the regeneration was not successful.

        Users must not use get or join on this future. Doing so may end up causing a deadlock on the server.

        Parameters:
        cx - The chunk x coordinate
        cy - The chunk y coordinate
        cz - The chunk z coordinate
        Returns:
        The regenerated chunk, if available
      • regenerateChunk

        default java.util.concurrent.CompletableFuture<java.lang.Boolean> regenerateChunk​(Vector3i chunkPosition,
                                                                                          ChunkRegenerateFlag flag)
        Regenerates a chunk at the given chunk coordinate position.

        Care should be taken to check the result of the future, as an exception may be provided if the regeneration was not successful.

        Users must not use get or join on this future. Doing so may end up causing a deadlock on the server.

        Parameters:
        chunkPosition - The chunk position to regenerate
        flag - The chunk regenerate flag to use
        Returns:
        The regenerated chunk, if available
      • regenerateChunk

        java.util.concurrent.CompletableFuture<java.lang.Boolean> regenerateChunk​(int cx,
                                                                                  int cy,
                                                                                  int cz,
                                                                                  ChunkRegenerateFlag flag)
        Regenerates a chunk at the given chunk coordinates.

        Care should be taken to check the result of the future, as an exception may be provided if the regeneration was not successful.

        Users must not use get or join on this future. Doing so may end up causing a deadlock on the server.

        Parameters:
        cx - The chunk x coordinate
        cy - The chunk y coordinate
        cz - The chunk z coordinate
        flag - The chunk regenerate flag to use
        Returns:
        The regenerated chunk, if available