You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
permission: runtime no longer starts LuckPerms or loads Butterfly; a platform module now owns the permission platform's lifecycle.
build: split titan into feature columns and app variants (#312)
app:LobbyModule, ModuleContext, ModuleRegistry and the ModuleItems/ModuleTasks/ModuleCommands extension points are removed. Features are @Singleton Avaje beans that attach their own event node in @PostConstruct and detach it in @PreDestroy; lobby items are LobbyItem beans collected by LobbyItems. Player-facing behaviour is unchanged.
navigator: the navigator no longer reads navigator.title and navigator.entries.*; its title and destinations are defined in NavigatorModule/Destination. The ModuleContext#navigator() extension point and the navigator entry registry are removed; modules can no longer contribute navigator entries. Feature flags under features.* are unchanged.
config: feature flags move from flags.properties to the features section of application.yaml (e.g. features.NAVIGATOR_SLENDER: true, env FEATURES_NAVIGATOR_SLENDER); flags.properties and Togglz are no longer read.
config: read configuration through the avaje config facade (#301)
config: /setup app commands are removed; configuration lives in application.yaml. Values previously set via /setup app ... belong in application.yaml, a profile file, or an env var instead.
app: elytra.boostMultiplier is replaced by elytra.burnDurationTicks and elytra.cooldownTicks (defaults 30/40, matching Voyager's own deterministic burn and its reference map's cooldown). The boost is Vanilla's own client-side impulse, so there is no multiplier left to configure. LegacyConfigMigration now drops elytraBoostMultiplier (logged, like fireworkBoostSlot and updateRateAgones) instead of migrating it; a migrated lobby starts the elytra module with its compiled-in defaults. The setup server's /setup app elytraBoostMultiplier syntax is replaced by elytraBoostMultiplier -> elytraBurnDurationTicks/elytraCooldownTicks.
Features
app: discover lobby modules with avaje inject (#295) (710632e)
app: rebuild the lobby around feature modules (#292) (37b1242)
common: report navigator deliveries in local runs (#296) (2cb5279)
config: load lobby configuration from application.yaml with profiles (#297) (b9e94b9)
config: reload configuration at runtime and read feature flags from it (#304) (7a74281)
daytime: follow the real wall clock in the lobby (#319) (2d55a03)
navigator: show the build server destination to the team (#322) (15932c9)
portal: switch servers by walking or flying through portals (#326) (07a9ddc)
season: restart the lobby into a seasonal world during its window (#321) (7582a59)
setup: create lobby portals from in-game commands (#329) (aad7bcb)
Bug Fixes
deps: update dependency ch.qos.logback:logback-classic to v1.6.4 (#302) (4ef6b25)
deps: update dependency com.github.ben-manes.caffeine:caffeine to v3.3.0 (#288) (6889a3b)
deps: update dependency com.google.guava:guava to v33.7.2-android (#327) (e1846ca)
deps: update dependency com.google.guava:guava to v33.7.2-jre (#328) (067dabc)
deps: update dependency com.tngtech.archunit:archunit-junit5 to v1.5.1 (#300) (c874847)
deps: update dependency io.sentry:sentry-bom to v8.56.0 (#283) (0836117)
deps: update dependency io.sentry:sentry-bom to v8.57.0 (#287) (78b9f40)
deps: update dependency io.sentry:sentry-bom to v8.58.0 (#290) (9c6e720)
deps: update dependency net.onelitefeather:aonyx-bom to v0.8.7 (#286) (09646f9)
deps: update dependency org.mockito:mockito-core to v5.24.0 (#291) (0dae95d)
deps: update dependency org.slf4j:slf4j-api to v2.0.20 (#289) (dd8b0a4)
deps: update dependency org.yaml:snakeyaml to v2.7 (#298) (4221d58)
season: explain that season date-times must be quoted (#325) (fc3924d)
Code Refactoring
app: replace the lobby module platform with plain avaje beans (#308) (71e3724)
build: split titan into feature columns and app variants (#312) (249f5d5)
config: read configuration through the avaje config facade (#301) (8fc2c01)
navigator: hard-code navigator destinations in a single aves module (#306) (3d9e1d0)
permission: resolve permissions through an optional di module (#313) (a32544b)