promotional bannermobile promotional banner

Arcadia Prestige

Adds particle cosmetics and a 24-day daily-reward calendar to the Arcadia hub. Luck-perms gated.

File Details

arcadia-prestige-1.2.11

  • R
  • Apr 30, 2026
  • 159.76 KB
  • 6.0K
  • 1.21.1
  • NeoForge

File Name

arcadia-prestige-1.2.11.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:arcadia-prestige-1493497:8015036"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

## [1.2.11] - 2026-04-30 (latest)

### Performance

- **Lower FOLLOW_RANGE 32 → 16 blocks** — Reduces vanilla sensing cost (the entity scans surrounding entities within follow-range every tick). Staff pets only need to follow their owner, not detect entities at 32-block range.

### Performance (FR)

- **Réduction de FOLLOW_RANGE 32 → 16 blocs** — Réduit le coût du sensing vanilla (l'entité scanne les entités voisines dans son follow-range à chaque tick). Les pets staff n'ont besoin que de suivre leur proprio, pas de détecter des entités à 32 blocs.

---

## [1.2.10] - 2026-04-30

### Performance

- **Skip item-pickup scan on staff pets** — Override `canPickUpLoot()` to return false. Vanilla `Mob.aiStep()` scans for nearby ItemEntity every tick when this is true; staff pets never need to pick up items, so we short-circuit the scan.

### Performance (FR)

- **Skip du scan de ramassage d'items pour les pets staff** — Override de `canPickUpLoot()` à false. `Mob.aiStep()` scanne les ItemEntity proches à chaque tick si c'est true ; les pets staff ne ramassent jamais rien donc on court-circuite le scan.

---

## [1.2.9] - 2026-04-30

### Performance

- **Lighter AI tick for staff pets** — Override `canFallInLove()` and `canMate()` to short-circuit the breeding state machine in `Animal.aiStep()`. Combined with the path-skip cache in arcadia-pets ≥ 1.2.18, the per-tick cost of a following staff pet drops from ~350µs to ~80µs.

### Performance (FR)

- **AI tick allégée pour les pets staff** — Override de `canFallInLove()` et `canMate()` pour court-circuiter la state machine de reproduction dans `Animal.aiStep()`. Combiné avec le cache de path dans arcadia-pets ≥ 1.2.18, le coût par tick d'un pet staff en suivi descend de ~350µs à ~80µs.

---

## [1.2.8] - 2026-04-30

### Fixed

- **Staff pets crashed the server when summoned in FOLLOW mode** — `StaffPetEntity.defineSynchedData()` ran inside the super() chain BEFORE any instance field was initialised, so `builder.define(DATA_USERNAME, defaultUsername)` passed `null` as the initial value. Minecraft's `SynchedEntityData$DataItem.isSetToDefault()` then NPE'd on `this.initialValue.equals(this.value)` when the entity was first tracked (right after `ServerLevel.addFreshEntity`), making FOLLOW mode unusable for every staff pet. Now `DATA_USERNAME` defaults to a static-final constant (`"Steve"`); the per-variant real username is set after `super()` returns via `entityData.set(...)`.

### Correctifs

- **Plantage du serveur quand un pet staff est invoqué en FOLLOW** — `StaffPetEntity.defineSynchedData()` s'exécutait dans la chaîne super() AVANT toute initialisation de champ d'instance, donc `builder.define(DATA_USERNAME, defaultUsername)` passait `null` comme valeur initiale. Le `SynchedEntityData$DataItem.isSetToDefault()` de Minecraft NPE-ait ensuite sur `this.initialValue.equals(this.value)` au premier tracking de l'entité (juste après `addFreshEntity`), rendant le mode FOLLOW inutilisable pour tous les pets staff. `DATA_USERNAME` utilise maintenant une constante statique finale (`"Steve"`) ; le vrai pseudo de la variante est défini après le retour de `super()` via `entityData.set(...)`.

---

## [1.2.7] - 2026-04-30

### Added

- **17th staff entity: Beuzed** — Guide role (green, like NokhXyr), mapped to the new "Parle Beaucoup" signature skill in arcadia-pets ≥ 1.2.13.

### Fixed

- **Not_Found username corrected** — Was `"Not_Found"`, now `"_N0t_F0und_"` (real Mojang username with zeroes and underscores). The skin will now resolve correctly.

### Ajouts

- **17e entité staff : Beuzed** — Rôle Guide (vert, comme NokhXyr), mappée à la nouvelle compétence signature "Parle Beaucoup" dans arcadia-pets ≥ 1.2.13.

### Correctifs

- **Pseudo Not_Found corrigé** — Était `"Not_Found"`, maintenant `"_N0t_F0und_"` (vrai pseudo Mojang avec zéros et underscores). Le skin se résoudra correctement.

---

## [1.2.6] - 2026-04-30

### Fixed

- **All staff pets shared Vyrriox's skin** — `StaffPetEntity.defineSynchedData` runs inside the super() call, BEFORE the constructor's `this.defaultUsername = username` assignment, so the synced username always defaulted to the static field initializer ("vyrriox") regardless of the entity-type variant. Now the constructor explicitly calls `entityData.set(DATA_USERNAME, username)` after super() returns, so each variant correctly carries its staff member's name.
- **Skin lookup never resolved** — Previously used a derived UUID + bare GameProfile, which Mojang's session API rejects. Now uses `SkullBlockEntity.fetchGameProfile(name)` to resolve username → real Mojang profile (with built-in cache), then `SkinManager.getOrLoad(profile)` to fetch the textures. Steve fallback while loading.
- **Entity attributes incomplete** — Switched to `Animal.createAnimalAttributes()` (proper base) and explicitly registered `Attributes.SCALE` so `PetManager` can resize the pet. Increased follow-range to 32 blocks for smoother pathfinding.
- **Staff pets couldn't be bred / could be force-bred via items** — Overrode `canBreed()` to return false.

### Correctifs

- **Tous les pets staff partageaient le skin de Vyrriox** — `StaffPetEntity.defineSynchedData` s'exécute pendant le super(), AVANT l'assignation `this.defaultUsername = username` du constructeur, donc l'username synchronisé valait toujours l'initialiseur statique ("vyrriox"). Le constructeur appelle maintenant explicitement `entityData.set(DATA_USERNAME, username)` après le super().
- **Récupération de skin ne résolvait jamais** — Avant : UUID dérivé + GameProfile vide, rejeté par l'API session de Mojang. Maintenant : `SkullBlockEntity.fetchGameProfile(name)` pour résoudre username → vrai profil Mojang, puis `SkinManager.getOrLoad(profile)`. Fallback Steve pendant le chargement.
- **Attributs d'entité incomplets** — Passage à `Animal.createAnimalAttributes()` et enregistrement explicite de `Attributes.SCALE`. Follow-range augmenté à 32 blocs.
- **Pets staff pouvaient être reproduits** — `canBreed()` override à false.