
Paginated Advancements & Custom Frames — Minecraft Java Edition 1.18.1 - 26.1+
Beroenden · Laddare: Fabric, NeoForge, Quilt · Minecraft-version: 1.18.1 - 26.1+ · Mod-version: 2.8.2 · Obligatoriska beroenden: Fabric…
Beroenden · Laddare: Fabric, NeoForge, Quilt · Minecraft-version: 1.18.1 - 26.1+ · Mod-version: 2.8.2 · Obligatoriska beroenden: Fabric API, Cloth Config API (för Fabric/Quilt- och NeoForge-versioner före 2.8.0) Vanilla
Beroenden
· Laddare: Fabric, NeoForge, Quilt
· Minecraft-version: 1.18.1 - 26.1+
· Mod-version: 2.8.2
· Obligatoriska beroenden: Fabric API, Cloth Config API (för Fabric/Quilt- och NeoForge-versioner före 2.8.0)
Vanilla-gränssnittet för framsteg begränsar visningen av flikar. Standardfönstret har en fast bredd och höjd som endast är beräknade för sex flikar. Om du installerar ett stort modpaket där varje stor mod lägger till sin egen progressionsgren börjar de nya flikarna gå utanför skärmkanterna, överlappa varandra eller försvinna helt från gränssnittet. Modifikationen Paginated Advancements & Custom Frames utökar standardfönstret i framstegsmenyn genom att lägga till sidbaserad navigering, ett system för att fästa prioriterade grenar, ett inbyggt felsökningsverktyg och stöd för helt nya ramar för ikoner via resurspaket eller datapaket.
Teknisk arbetsprincip och lösning på begränsningarna i vanilla-gränssnittet
Vanilla-klassen AdvancementsScreen använder hårdkodade koordinater för att rendera framstegsfönstret (storleken är 252 gånger 140 pixlar). Kontrollelement som flikrutnätet och bakgrundsrenderingen är bundna till statiska fönsterstorlekar, vilket gör det omöjligt att skala till en hög skärmupplösning. Klassen AdvancementTab har också fasta gränser för att rita flikikonerna längs huvudramens kant.
Paginated Advancements & Custom Frames inför ändringar direkt i renderingslogiken för klientens grafiska gränssnitt med hjälp av Mixin-injektioner i klasserna MixinAdvancementsScreen och MixinAdvancementTab. I stället för att använda hårdkodade konstanter fångar modifikationen upp initialiseringen av gränssnittet och läser av spelfönstrets aktuella storlek. Utifrån dessa data beräknas den optimala storleken på framstegsramen, som expanderar adaptivt och upptar större delen av skärmen.
Systemet grupperar automatiskt alla registrerade flikar i separata sidor (paginering). Algoritmen beräknar det maximala antalet flikar som får plats inom fönstrets övre och nedre panel enligt en formel som tar hänsyn till fönstrets bredd och de inställda marginalerna. Om antalet framstegsgrenar överstiger sidgränsen skapar modifikationen ytterligare virtuella sidor och lägger till interaktiva pilknappar i nederkanten av gränssnittet. Vid sidbyte döljer renderaren flikarna från inaktiva sidor, vilket förhindrar att arbetsminnet överbelastas med grafiska objekt och eliminerar konflikter med överlappande element.
Viktiga funktioner och funktionalitet
Huvudfunktionen i Paginated Advancements & Custom Frames är en omorganisering av den grafiska framstegsmenyn. Modifikationen erbjuder flera praktiska verktyg för navigering:
· Dynamisk paginering: Lägger till pilar för sidbyte i nederkanten av framstegsfönstret. Spelare kan bläddra igenom valfritt antal flikar, även om mer än femtio modifikationer med egna uppdragskedjor är aktiverade i paketet.
· Fästa flikar: Användaren kan lägga till vilken flik som helst i favoritlistan. För detta finns en särskild knapp i form av en stjärna på varje flik. En fäst flik flyttas automatiskt till den första sidan och visas i början av listan, oavsett dess alfabetiska eller spelinterna sorteringsordning.
· Bevarande av sessionstillstånd: Modden kommer ihåg den senast öppnade framstegsfliken. Om menyn stängs och öppnas igen med tangenten L visar gränssnittet samma flik som spelaren stannade vid, i stället för att återställas till den första standardfliken.
· Framstegsfelsökare (Advancement Debugger): Ett särskilt läge för paketutvecklare och uppdragsförfattare. Det aktiveras i konfigurationen eller när avancerade verktygstips slås på (tangenterna F3 + H). När markören förs över en framstegsikon visas ett extra verktygstipsfönster med teknisk information: den interna identifieraren (till exempel minecraft:adventure/arbalistic) och en lista över triggrar (villkor) som krävs för att slutföra det. Tangentkombinationen Ctrl + C kopierar det markerade framstegets identifierare till urklipp.
Inställningar, kompatibilitet och ekosystem
Visningsinställningarna för framstegsmenyn kan användaren ändra via konfigurationsfilen. Filens plats och format beror på modladdaren:
· Fabric och Quilt: För att inställningarna ska fungera krävs installation av biblioteket Cloth Config API. Parametrarna skrivs till filen paginatedadvancements.json (eller paginatedadvancements.json5) i mappen config.
· NeoForge: Mod-versioner från och med 2.8.0 använder NeoForges inbyggda konfigurationssystem, vilket eliminerar behovet av ytterligare bibliotek. Filen genereras under namnet paginatedadvancements-client.toml i mappen config.
I konfigurationsfilen finns följande viktiga parametrar tillgängliga:
· showDebugTooltips – ett booleskt värde (true eller false) som styr visningen av teknisk information för felsökning av framsteg.
· maxDebugLines – ett heltal som begränsar det maximala antalet triggerrader i verktygstipsfönstret och förhindrar att texten går utanför skärmen vid ett stort antal krav.
· disableBackgroundFade – en parameter för att inaktivera nedtoningen av spelbakgrunden medan framstegsmenyn visas.
· spacing – ett steg i pixlar för att justera avståndet mellan intilliggande flikar på panelen.
· enablePinning – tillåter eller förbjuder spelare att fästa utvalda flikar.
Modifikationen stöder ett system för anpassning av ikoner via mekanismen Custom Frames (anpassade ramar). Som standard erbjuder Minecraft tre typer av ramar: task (vanlig uppgift), goal (mål) och challenge (utmaning). Modden gör det möjligt att skapa nya typer med hjälp av datapaket.
För att lägga till en ny ram måste du skapa en JSON-fil i datapaketet på sökvägen:
assets/<mod_identifierare>/advancement_frame_types/<ramnamn>.json
Exempel på filens innehåll:
{ |
Texturerna för ramen placeras på sökvägarna:
· assets/<mod_identifierare>/textures/gui/sprites/advancements/<ramnamn>_unobtained.png – ramens utseende innan framsteget har slutförts.
· assets/<mod_identifierare>/textures/gui/sprites/advancements/<ramnamn>_obtained.png – ramens utseende efter slutförande.
För att koppla den skapade ramen till ett specifikt framsteg används en mappningsfil i datapaketet på sökvägen assets/<mod_identifierare>/advancement_frames/<filnamn>.json:
[ |
Modden utvecklades som ett rent klientsidigt verktyg och kräver därför ingen installation på servern. Den är fullt kompatibel med stora industri- och magimods (som Create, Ender IO, Botania) som lägger till komplexa uppdragssystem och talrika framstegsflikar. För användare av den gamla Forge-laddaren finns en inofficiell anpassning av modden med namnet ForgedPaginatedAdvancements. För att köra de senaste versionerna av modden på plattformen NeoForge 26.1+ är det obligatoriskt att använda körmiljön Java 25.
Slutsats
Paginated Advancements & Custom Frames löser effektivt problemet med det begränsade utrymmet i vanilla-framstegsgränssnittet, ett problem som blir kritiskt i stora modpaket. Till skillnad från motsvarigheten Better Advancements, som främst skalar fönstret utan att lägga till sidor, erbjuder denna mod en tydlig uppdelning i sidor och bekväm fästning av flikar. Modifikationen förenklar arbetet för utvecklare av modifierade paket tack vare den inbyggda debuggern och det flexibla systemet för registrering av nya ramtyper via JSON-strukturer i datapaket. Den enda märkbara begränsningen är behovet av att skapa ytterligare resurspaket på klienten för korrekt visning av de anpassade grafiska ramarna.
Installation
En typisk installation tar ungefär 5 minuter. Flödet är detsamma; bara Loader och den matchande builden skiljer sig.
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











