Skip to content

Releases: Ladysnake/Cardinal-Components-API

v2.5.3

29 Aug 21:10
Compare
Choose a tag to compare

Version 2.5.3:

  • Fixed a crash in cardinal-components-chunk when cardinal-components-world was not installed

see full changelog here

v2.5.2

26 Aug 10:28
Compare
Choose a tag to compare

Version 2.5.2:

  • Added a syncOp parameter to AutoSyncedComponent methods, making the interface more flexible
    • The new parameter can be ignored, or it can be used to implement multiple types of sync without custom packets

see full changelog here

v2.5.1

20 Aug 23:11
Compare
Choose a tag to compare

Version 2.5.1:

  • Basic V3 interfaces are no longer experimental
    • This is a good time to start using them!
  • Overhauled component synchronization for V3 API
    • There is no longer specialized synchronized component interfaces for each type of provider
    • This is a breaking change for Team and Block V3 (experimental) APIs
  • Added dedicated static registration methods for player components in cardinal-components-entity
  • V3 ComponentContainers are no longer generic
  • Added a dedicated ComponentContainer factory interface replacing use of Function,
    and moved the existing builder to it

see full changelog here

v2.5.0

15 Aug 09:47
Compare
Choose a tag to compare

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated to 1.16.2

Additions

  • Added a new API for block components (see PR #42)
  • Added a new API for scoreboard components (see PR #36)
  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types
  • Added ComponentV3 and ComponentRegistryV3 interfaces for early V3 adopters
  • Added a factory builder to the ComponentContainer interface for third-party ComponentProvider implementations
  • Added alternatives to registerFor methods taking a predicate, for fine-tuned registration

Changes

  • The NBT serialized form of ComponentContainer is now more space-efficient.
    • Instances serialized before this update should get converted as they load.
  • Removed experimental deprecated method EntityComponentFactoryRegistry#register (use registerFor)

Fixes

  • Fixed item components not being copied by the smithing table
  • Removed the Internal annotation from new API packages

see full changelog here

v2.5.0-nightly.1.16.2-rc2

12 Aug 12:48
43b3fd6
Compare
Choose a tag to compare

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated cardinal-components-level, cardinal-components-world and cardinal-components-chunk to 1.16.2

Additions

  • Added a new API for block components (see PR #42)
  • Added a new API for scoreboard components (see PR #36)
  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types
  • Added ComponentV3 and ComponentRegistryV3 interfaces for early V3 adopters
  • Added a factory builder to the ComponentContainer interface for third-party ComponentProvider implementations
  • Added alternatives to registerFor methods taking a predicate, for fine-tuned registration

Changes

  • The NBT serialized form of ComponentContainer is now more space-efficient.
    • Instances serialized before this update should get converted as they load.
  • Removed experimental deprecated method EntityComponentFactoryRegistry#register (use registerFor)

Fixes

  • Fixed item components not being copied by the smithing table
  • Removed the Internal annotation from new API packages

see full changelog here

v2.5.0-nightly.20w30a

22 Jul 21:56
Compare
Choose a tag to compare

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated cardinal-components-level and cardinal-components-chunk to 1.16.2

Additions

  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types

Fixes

  • Fixed item components not being copied by the smithing table

see full changelog here

v2.5.0-nightly.20w29a

20 Jul 00:58
Compare
Choose a tag to compare

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated cardinal-components-level and cardinal-components-chunk to 1.16.2

Additions

  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types

Fixes

  • Fixed item components not being copied by the smithing table

see full changelog here

v2.4.2

17 Jul 13:06
Compare
Choose a tag to compare

Version 2.4.2:

  • Fixed regression in cardinal-components-item causing crash with Optifine installed
  • Documented the cardinal-components-level module incompatibility with 1.16.2 and above

see full changelog here

v2.4.1

27 Jun 12:35
Compare
Choose a tag to compare

Version 2.4.1:

  • Fixed crash when more than 16 components were registered
  • Fixed crash when dots were used in static component identifiers

see full changelog here

v2.4.0

25 Jun 00:38
5209117
Compare
Choose a tag to compare

Version 2.4.0:

Backwards-compatibility note: while this release is compatible with older applications,
some classes have been moved to a new module called cardinal-components-util.
If you are missing some types, or if you use the cardinal-components-block module,
you need to add a dependency on that module.

Compatibility between modules of different versions has been broken in 2.4.0-nightly.1.16-pre4.
In case of crashes due to those incompatibilities, Modpack makers and players can add the latest version
of the full library to their mods folder to update every module at once.

  • Updated all modules to MC 1.16

Additions

  • Cardinal Components now has a wiki!
  • Added statically declared components (experimental feature !)
    • Mods can declare and attach their components using dedicated entrypoints, typically under the nomenclature XComponentInitializer
    • Developers can add -Dcca.debug.asm=true to their VM options to help debug CCA's issues with static component generation
    • More information is available in the wiki
      [1]
      [2]
  • Added a new module - cardinal-components-util
    • Most classes that were not essential to CCA working got moved from cardinal-components-base to that module
    • Added LazyComponentType, allowing mods to retrieve a ComponentType handle before it is registered
  • Added ItemComponentCallbackV2 and ItemComponentFactoryV2 as alternatives respectively to ItemComponentCallback and ItemComponentFactory,
    passing the stack's true item as context.
  • Added Dynamic conversion methods to NbtSerializable (defaulted to delegate to nbt serialization)
  • Added PlayerComponent, an experimental interface replacing RespawnCopyStrategy

Changes

  • TypeAwareComponent now has a default implementation in most subinterfaces
  • It is no longer possible for a ComponentCallback to override an existing component
  • Networking errors should now be logged before they get swallowed by Netty
  • cardinal-component-item no longer changes the vanilla networking protocol for ItemStacks
  • Internal classes and new interfaces are now in the dev.onyxstudios.cca package
  • Chunk and level components now get initialized at the end of their respective classes' constructor
  • Internals and new APIs are now in the dev.onyxstudios.cca package instead of nerdhub.cardinal.components

Fixes

  • Fixed PlayerSyncCallback not firing when a player is teleported to another dimensions through commands
  • Fixed Cardinal-Components-Item preventing vanilla clients from connecting to modded servers and vice-versa

see full changelog here