0.3.13
Compatibility
Changes
Moving the pointer sends the pointer and nothing else. The highlight around what the pointer is over and its tooltip rode the pointer's own bar, so every frame of movement over a shop row sent them again — 3.4 KB, 85 times a second, about 290 KB/s per player, where the pointer alone is 130 bytes. They now have a bar of their own and go only when the pointer crosses onto something else: moving along a row sends nothing but the pointer.
- A tooltip stays where it appeared while the pointer is on the same thing, instead of following it. Over something taller than a row it catches up once the pointer has gone 120 units away.
refresh(),push,backandcloseare safe from any thread. A page that fetches what it shows gets its answer on some other thread; called from there, the page used to be laid out and sent right there, racing the server thread. Such calls now wait for the next tick. The pointer and the highlight, drawn by both the frame thread and the server thread, are sent under a lock: the two could pass each other and leave a stale highlight on screen.Page.onOpen()— called once when a page is put on screen, before it is first drawn: the place to start fetching.skeleton()— a dim bar to stand in for what is still on its way. The example shop now loads its balance this way. See "Data that arrives later" indocs/page.md.- A page now takes two bars instead of three, so the shop's scroll sends the list with the footer under it: 11 KB instead of 7 in 0.3.12, still down from 17 before that. Hovering is far more frequent than scrolling, and this is the trade that pays for it.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:K6cjpywA:UVfDfqSm"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:K6cjpywA:UVfDfqSm"
}

