promotional bannermobile promotional banner

AdvancementJS

Configure more than advancements by KubeJS

File Details

AdvJS-2001forge-2.7.0.jar

  • R
  • Feb 5, 2024
  • 204.80 KB
  • 54
  • 1.20.1
  • Forge

File Name

AdvJS-2001forge-2.7.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:advancementjs-962731:5082209")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Compat

  • Revelationary(Fabric only), the new client event: AdvJSEvents.revelation
  • EventHorizon(Forge only), the new client event: AdvJSEvents.revelation

Reconstruct

  • ServerEvents.advancement -> AdvJSEvents.advancement
  • AdvConfigureEventJS.lock -> AdvJSEvents.lock

Addition

  • The new startup event AdvJSEvents.trigger, for registering custom trigger

    • Use CustomTriggers.of(id: ResourceLocation): BaseTrigger to get your custom trigger for triggers
    • Use Trigger.custom(id: ResourceLocation): BaseTriggerInstance to create a trigger instance for criteria
  • BlockDestroyedTrigger.Builder.ofTag(tag: ResourceLocation): To test entity properties that can only be applied to certain entity types.

      Supersedes lightning_bolt, player, fishing_hook, cat, etc.
    
  • AdvConfigureEventJS.lock(toLock: Ingredient, lockBy: ResourceLocation): void

  • AdvConfigureEventJS.lock(toLock: ItemPredicate, lockBy: ResourceLocation): void

  • Trigger.fromJson(json: JsonObject): CriterionTriggerInstance

  • AdvBuilder.repeatable() and AdvGetter.repeatable()

    • If invoked this method, the advancement will revoke after grant automatically.
  • AdvGetter.changeParent(parentId: ResourceLocation)

  • PlayerPredicateBuilder.checkAdvancementCriterions(advancement: ResourceLocation, criterions: Map<String, Boolean>)

Removal

  • AdvConfigureEventJS.lock(toLock: ItemStack, lockBy: ResourceLocation): void
  • AdvConfigureEventJS.lock(toLock: ItemStack, lockBy: AdvBuilder): void

Fix

  • Allow requireParentDone and requireOthersDone use in same advancement
  • If an advancement has no display, the displayModifier will not throw error, but create a new display
  • /advjs will generate correct code

Rename

  • AdvRemoveFilter -> AdvancementFilter
  • GameType -> GameMode
  • BaseTrigger -> CustomTrigger