File Details
arcadia-lib-1.2.5
- R
- Apr 23, 2026
- 2.52 MB
- 27.7K
- 1.21.1
- NeoForge
File Name
arcadia-lib-1.2.5.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
## [1.2.5] - 2026-04-23 (latest)
### Added
- **`NumismaticsBackend.formatPriceBreakdown(long)` returning a `Component`** — `formatPrice` has to return a flat `String` and therefore resolves coin names once against the server's `Language` instance. This new variant returns a `Component` whose coin names are `Component.translatable("item.numismatics.<coin>")` nodes that each client renders in their own locale — perfect for client-side UIs that want a live preview matching the exact Numismatics coin names the player sees on their inventory tooltips (e.g. the AH sell screen's new price-breakdown preview, consumed by arcadia-ah 1.2.3). Safe to call without an active backend; the denomination ratios are universal.
### Ajouts
- **`NumismaticsBackend.formatPriceBreakdown(long)` retournant un `Component`** — `formatPrice` doit retourner un `String` à plat et résout donc les noms de pièces une seule fois contre le `Language` serveur. Ce nouveau variant retourne un `Component` dont les noms de pièces sont des nodes `Component.translatable("item.numismatics.<coin>")` que chaque client rend dans sa propre locale — parfait pour les UIs client-side qui veulent un aperçu live correspondant aux noms exacts des pièces Numismatics que le joueur voit sur les tooltips d'inventaire (ex. l'aperçu de répartition de prix de l'écran de vente HDV, consommé par arcadia-ah 1.2.3). Appelable sans backend actif ; les ratios de dénomination sont universels.
---
## [1.2.4] - 2026-04-23
### Fixed
- **Numismatics coin names in `formatPrice` now match the mod's real in-game names** — 1.2.3 hardcoded English literals (`"Sun, Crown, Cog, Sprocket, Bevel, Spur"`) which are actually the coin IDs, not the display names Numismatics puts in-game (the real labels are `Sou / Florin / Ducat / Cog / Crown / Sun` in EN, and translated per-locale in FR/etc.). Breakdown output now resolves each denomination through `Language.getInstance().getOrDefault("item.numismatics.<coin>")` — same key Numismatics itself uses for its item tooltips, so the string the player sees in AH/duel/reward messages is identical to the coin item they hold. Hardcoded EN fallback kept for the degenerate case where Numismatics is absent (the backend isn't even active then, but cheap to have).
### Correctifs
- **Noms de pièces Numismatics dans `formatPrice` correspondent maintenant aux vrais noms du mod** — la version 1.2.3 codait en dur les chaînes anglaises (`"Sun, Crown, Cog, Sprocket, Bevel, Spur"`) qui sont en réalité les IDs des pièces, pas les noms affichés par Numismatics en jeu (les vrais labels sont `Sou / Florin / Ducat / Cog / Crown / Sun` en EN, et traduits par locale en FR/etc.). La décomposition résout maintenant chaque dénomination via `Language.getInstance().getOrDefault("item.numismatics.<coin>")` — même clé que Numismatics utilise pour ses tooltips d'items, donc la chaîne vue par le joueur dans HDV/duel/récompense est identique à la pièce qu'il tient en main. Fallback EN hardcodé conservé pour le cas dégénéré où Numismatics est absent (le backend n'est même pas actif alors, mais ça coûte rien).
---
## [1.2.3] - 2026-04-23
### Changed
- **Numismatics price format now uses the real coin denominations** — `EconomyService.formatPrice` previously displayed amounts as a fictional `Ng Ms Xc` gold/silver/copper triple that did not correspond to any physical Numismatics coin item. Players saw prices in the Auction House, leaderboards, pet duel bets, daily rewards, etc. without any way to tell how many actual Numismatics coins they needed. The formatter now breaks a spur amount down into the real Numismatics coin progression — `Sun (4096), Crown (256), Cog (64), Sprocket (16), Bevel (8), Spur (1)` — matching the physical item stacks (max 64 per slot). Example: 5000 spurs renders as `"1 Sun, 3 Crown, 2 Cog, 1 Bevel"` instead of `"5c"`-style gibberish. All AH/duel/reward text picks up the new format automatically through `EconomyService`.
### Modifications
- **Format de prix Numismatics avec les vraies dénominations de pièces** — `EconomyService.formatPrice` affichait avant un triplet fictif `Ng Ms Xc` or/argent/cuivre qui ne correspondait à aucun item de pièce Numismatics réel. Les joueurs voyaient des prix dans l'HDV, les classements, les paris de duels de pets, les récompenses journalières, etc. sans pouvoir dire combien de pièces Numismatics réelles il leur fallait. Le formateur décompose maintenant un montant en spurs dans la vraie progression Numismatics — `Sun (4096), Crown (256), Cog (64), Sprocket (16), Bevel (8), Spur (1)` — correspondant aux stacks physiques (max 64 par slot). Exemple : 5000 spurs s'affiche en `"1 Sun, 3 Crown, 2 Cog, 1 Bevel"` au lieu de baragouin `"5c"`. Tous les textes HDV/duel/récompense récupèrent le nouveau format automatiquement via `EconomyService`.
---
## [1.2.2] - 2026-04-23
### Added
- **`ArcadiaModRegistry.registerPetActiveChecker` / `isPetActive`** — New soft-dep hook so any module (specifically arcadia-ah) can ask "is this pet UUID currently summoned?" without importing arcadia-pets. Returns false when pets is absent. Used by the auction house to refuse listing a pet that is following the seller, closing the pet-duplication vector.
### Ajouts
- **`ArcadiaModRegistry.registerPetActiveChecker` / `isPetActive`** — Nouveau hook soft-dep pour que n'importe quel module (notamment arcadia-ah) puisse demander "ce UUID de pet est-il actuellement invoqué ?" sans importer arcadia-pets. Retourne false quand pets est absent. Utilisé par l'hôtel des ventes pour refuser de mettre en vente un pet qui suit le vendeur, fermant le vecteur de duplication de pets.
---
## [1.2.1] - 2026-04-23
### Added
- **ServerIdConfig — `server_id` now owned by the lib** — New TOML config `config/arcadia/lib/server.toml` with a `[server] server_id = "..."` entry. The lib listens to `ModConfigEvent.Loading/Reloading`, reads the value, and writes it into `ServerContext.SERVER_ID` (consumed by arcadia-ah and any other module that tags cross-server MySQL rows). Resolution order: non-empty TOML → JVM property `-Darcadia.server_id=...` → fallback `"server1"`. Previously this setting lived in the Prestige TOML, which forced every MySQL-tagging module to depend on Prestige just for a string; now it lives where it belongs, in the lib all modules already depend on.
### Ajouts
- **ServerIdConfig — `server_id` possédé par la lib** — Nouveau config TOML `config/arcadia/lib/server.toml` avec une entrée `[server] server_id = "..."`. La lib écoute `ModConfigEvent.Loading/Reloading`, lit la valeur, et l'écrit dans `ServerContext.SERVER_ID` (consommé par arcadia-ah et tout autre module qui taggue ses lignes MySQL cross-serveur). Ordre de résolution : TOML non-vide → propriété JVM `-Darcadia.server_id=...` → fallback `"server1"`. Avant, ce paramètre vivait dans le TOML Prestige, ce qui forçait chaque module à dépendre de Prestige pour une simple string ; maintenant il est dans la lib dont tous les modules dépendent déjà.

