Interface ArenaSourceProvider
Sources installed through ArenaSourceService.registerSource(String) belong to the addon
that installed them, so Zentrix never picks one on its own. A provider is how an addon offers them
anyway: Zentrix asks, the addon decides which source to give out, and the answer is a lease the
addon can account for.
Zentrix asks for each ArenaSourcePurpose, and always as a last resort — a queue is
offered every waiting game, every game still being created, and every arena this server
configured itself before a provider hears about it.
Only one provider is registered at a time, and it is called on the main thread. Returning an empty result is a normal answer meaning "nothing available right now"; the caller reports that to the player rather than falling back to a source the addon owns. A provider that expects to have something shortly may instead return a future it completes later: Zentrix keeps the player's matchmaking title up meanwhile, and abandons the request — releasing a lease that arrives afterwards — if the wait runs past two minutes.
-
Method Summary
Modifier and TypeMethodDescription@NotNull CompletableFuture<Optional<ArenaSourceLease>> reserveSource(@NotNull ArenaSourceRequest request) Reserves a source arena for one request.
-
Method Details
-
reserveSource
@NotNull @NotNull CompletableFuture<Optional<ArenaSourceLease>> reserveSource(@NotNull @NotNull ArenaSourceRequest request) Reserves a source arena for one request.- Returns:
- a lease over a registered source arena, or an empty result when none can be supplied
-