Interface ChunkManager
-
@DoNotStore public interface ChunkManager
Manageschunks
for aServerWorld
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <T> Collection<Ticket<T>>
findTickets(DefaultedRegistryReference<TicketType<T>> type)
Gets all currently activetickets
that are of the providedTicketType
.<T> Collection<Ticket<T>>
findTickets(TicketType<T> type)
Gets all currently activetickets
that are of the providedTicketType
.default CompletableFuture<Boolean>
regenerateChunk(int cx, int cy, int cz)
Regenerates a chunk at the given chunk coordinates.CompletableFuture<Boolean>
regenerateChunk(int cx, int cy, int cz, ChunkRegenerateFlag flag)
Regenerates a chunk at the given chunk coordinates.default CompletableFuture<Boolean>
regenerateChunk(Vector3i chunkPosition)
Regenerates a chunk at the given chunk coordinate position.default CompletableFuture<Boolean>
regenerateChunk(Vector3i chunkPosition, ChunkRegenerateFlag flag)
Regenerates a chunk at the given chunk coordinate position.boolean
releaseTicket(Ticket<?> ticket)
Releases the providedTicket
, allowing the chunk position represented by the given ticket to be unloaded (if it is not being kept loaded by other means).boolean
renewTicket(Ticket<?> ticket)
Attempts to renew this ticket, resetting the lifetime to the default.default Optional<Ticket<Vector3i>>
requestTicket(DefaultedRegistryReference<TicketType<Vector3i>> type, Vector3i chunkOrigin, int radius)
Request aTicket
for a givenTicketType
that supports a chunk position.default <T> Optional<Ticket<T>>
requestTicket(DefaultedRegistryReference<TicketType<T>> type, Vector3i chunkOrigin, T value, int radius)
Request aTicket
for the givenTicketType
.default Optional<Ticket<Vector3i>>
requestTicket(TicketType<Vector3i> type, Vector3i chunkOrigin, int radius)
Request aTicket
for a givenTicketType
that supports a chunk position.<T> Optional<Ticket<T>>
requestTicket(TicketType<T> type, Vector3i chunkOrigin, T value, int radius)
Request aTicket
for the givenTicketType
.Ticks
timeLeft(Ticket<?> ticket)
Gets theTicks
remaining on the supplied ticket.boolean
valid(Ticket<?> ticket)
Checks if the providedTicket
is valid for the world this manager represents.ServerWorld
world()
Gets theServerWorld
this manager operates upon.
-
-
-
Method Detail
-
world
ServerWorld world()
Gets theServerWorld
this manager operates upon.- Returns:
- The
ServerWorld
-
valid
boolean valid(Ticket<?> ticket)
Checks if the providedTicket
is valid for the world this manager represents.- Parameters:
ticket
- The ticket to check.- Returns:
- true if so
-
timeLeft
Ticks timeLeft(Ticket<?> ticket)
Gets theTicks
remaining on the supplied ticket.- Returns:
- The
Ticks
-
requestTicket
default Optional<Ticket<Vector3i>> requestTicket(DefaultedRegistryReference<TicketType<Vector3i>> type, Vector3i chunkOrigin, int radius)
Request aTicket
for a givenTicketType
that supports a chunk position.- Parameters:
type
- The type of ticket to request.chunkOrigin
- The chunk co-ordinates of the centralWorldChunk
affected by thisTicket
radius
- The radius of the area, in chunks, that thisTicket
affects.- Returns:
- The ticket, if granted.
-
requestTicket
default Optional<Ticket<Vector3i>> requestTicket(TicketType<Vector3i> type, Vector3i chunkOrigin, int radius)
Request aTicket
for a givenTicketType
that supports a chunk position.- Parameters:
type
- The type of ticket to request.chunkOrigin
- The chunk co-ordinates of the centralWorldChunk
affected by thisTicket
radius
- The radius of the area, in chunks, that thisTicket
affects.- Returns:
- The ticket, if granted.
-
requestTicket
<T> Optional<Ticket<T>> requestTicket(TicketType<T> type, Vector3i chunkOrigin, T value, int radius)
Request aTicket
for the givenTicketType
.- Type Parameters:
T
- The type of the suppliedvalue
.- Parameters:
type
- The type of ticket to request.chunkOrigin
- The chunk co-ordinates of the centralWorldChunk
affected by thisTicket
value
- The value to register the ticket with.radius
- The radius of the area, in chunks, that thisTicket
affects.- Returns:
- The ticket, if granted.
-
requestTicket
default <T> Optional<Ticket<T>> requestTicket(DefaultedRegistryReference<TicketType<T>> type, Vector3i chunkOrigin, T value, int radius)
Request aTicket
for the givenTicketType
.- Type Parameters:
T
- The type of the suppliedvalue
.- Parameters:
type
- The type of ticket to request.chunkOrigin
- The chunk co-ordinates of the centralWorldChunk
affected by thisTicket
value
- The value to register the ticket with.radius
- The radius of the area, in chunks, that thisTicket
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 providedTicket
, 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> Collection<Ticket<T>> findTickets(TicketType<T> type)
Gets all currently activetickets
that are of the providedTicketType
.- Type Parameters:
T
- The type of value theTicket
holds- Parameters:
type
- TheTicketType
to retrieve tickets for- Returns:
- A
Collection
oftickets
-
findTickets
default <T> Collection<Ticket<T>> findTickets(DefaultedRegistryReference<TicketType<T>> type)
Gets all currently activetickets
that are of the providedTicketType
.- Type Parameters:
T
- The type of value theTicket
holds- Parameters:
type
- TheTicketType
to retrieve tickets for- Returns:
- A
Collection
oftickets
-
regenerateChunk
default CompletableFuture<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
orjoin
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 CompletableFuture<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
orjoin
on this future. Doing so may end up causing a deadlock on the server.- Parameters:
cx
- The chunk x coordinatecy
- The chunk y coordinatecz
- The chunk z coordinate- Returns:
- The regenerated chunk, if available
-
regenerateChunk
default CompletableFuture<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
orjoin
on this future. Doing so may end up causing a deadlock on the server.- Parameters:
chunkPosition
- The chunk position to regenerateflag
- The chunk regenerate flag to use- Returns:
- The regenerated chunk, if available
-
regenerateChunk
CompletableFuture<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
orjoin
on this future. Doing so may end up causing a deadlock on the server.- Parameters:
cx
- The chunk x coordinatecy
- The chunk y coordinatecz
- The chunk z coordinateflag
- The chunk regenerate flag to use- Returns:
- The regenerated chunk, if available
-
-