Cardinal Components API

Cardinal Components API

Mod

A data attachment API that is easy, modular, and extremely fast.

Server Library

1.49M downloads
397 followers
Created2 years ago
Updated2 days ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.
Filter loader...
Filter versions...

6.1.1

by Pyrofab on Jul 20, 2024
Download

Version 6.1.1:

Fixes

see full changelog here

6.1.0

by Pyrofab on Jun 5, 2024
Download

Version 6.1.0:

Updated to 1.21

see full changelog here

6.0.0

by Pyrofab on Jun 2, 2024
Download

Version 6.0.0:

Updated to 1.20.5/1.20.6

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level module is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules
  • Component registration now happens during mod init. This should fix some classloading-related issues, and make loading errors easier to diagnose.
  • The internal ASM generation systems have been partially rewritten (thanks lukebemish !)
  • All the serialization methods now take an additional registry lookup argument
  • Warning: due to the above change, level components may not be deserialized correctly if a mod calls LevelProperties.readProperties instead of LevelStorage.parseSaveProperties

Fixes

  • Missing components (usually caused by removed mods) will no longer trigger a wall of warnings
    • The number of warnings logged for each missing component type is configurable

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API
  • The deprecated util package in cardinal-components-block has been removed

see full changelog here

6.0.0-rc1

by Pyrofab on May 23, 2024
Download

Version 6.0.0:

Updated to 1.20.5/1.20.6

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Release Candidate 1

Fixes

  • Fixed respawn copy strategies not being correctly registered for player entities

Pre-Release 3

Fixes

  • Missing components (usually caused by removed mods) will no longer trigger a wall of warnings
    • The number of warnings logged for each missing component type is configurable

Pre-Release 2

Fixes

  • The library no longer requires Loom 1.7-alpha to be used in dev workspaces

Pre-Release 1

Changes

  • Component registration now happens during mod init. This should fix some classloading-related issues, and make loading errors easier to diagnose.
  • The internal ASM generation systems have been partially rewritten (thanks lukebemish !)

Beta 3

Fixes

  • Fixed the most basic binary incompatibilities with mods compiled for beta 1

Beta 2

Changes

  • All the serialization methods now take an additional registry lookup argument
  • Warning: due to the above change, level components may not be deserialized correctly if a mod calls LevelProperties.readProperties instead of LevelStorage.parseSaveProperties

Removals

  • The deprecated util package in cardinal-components-block has been removed

Beta 1

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API

see full changelog here

6.0.0-pre2

by Pyrofab on May 19, 2024
Download

Version 6.0.0:

Updated to 1.20.5/1.20.6

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Pre-Release 2

Fixes

  • The library no longer requires Loom 1.7-alpha to be used in dev workspaces

Pre-Release 1

Changes

  • Component registration now happens during mod init. This should fix some classloading-related issues, and make loading errors easier to diagnose.
  • The internal ASM generation systems have been partially rewritten (thanks lukebemish !)

Beta 3

Fixes

  • Fixed the most basic binary incompatibilities with mods compiled for beta 1

Beta 2

Changes

  • All the serialization methods now take an additional registry lookup argument
  • Warning: due to the above change, level components may not be deserialized correctly if a mod calls LevelProperties.readProperties instead of LevelStorage.parseSaveProperties

Removals

  • The deprecated util package in cardinal-components-block has been removed

Beta 1

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API

see full changelog here

6.0.0-pre1

by Pyrofab on May 18, 2024
Download

Version 6.0.0:

Updated to 1.20.5/1.20.6

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Pre-Release 1

Changes

  • Component registration now happens during mod init. This should fix some classloading-related issues, and make loading errors easier to diagnose.
  • The internal ASM generation systems have been partially rewritten (thanks lukebemish !)

Beta 3

Fixes

  • Fixed the most basic binary incompatibilities with mods compiled for beta 1

Beta 2

Changes

  • All the serialization methods now take an additional registry lookup argument
  • Warning: due to the above change, level components may not be deserialized correctly if a mod calls LevelProperties.readProperties instead of LevelStorage.parseSaveProperties

Removals

  • The deprecated util package in cardinal-components-block has been removed

Beta 1

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API

see full changelog here

6.0.0-beta.3

by Pyrofab on Apr 26, 2024
Download

Version 6.0.0:

Updated to 1.20.5

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Beta 3

Fixes

  • Fixed the most basic binary incompatibilities with mods compiled for beta 1

Beta 2

Changes

  • All the serialization methods now take an additional registry lookup argument
  • Warning: due to the above change, level components may not be deserialized correctly if a mod calls LevelProperties.readProperties instead of LevelStorage.parseSaveProperties

Removals

  • The deprecated util package in cardinal-components-block has been removed

Beta 1

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API

see full changelog here

6.0.0-beta.2

by Pyrofab on Apr 26, 2024
Download

Version 6.0.0:

Updated to 1.20.5

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Beta 2

Changes

  • All the serialization methods now take an additional registry lookup argument
  • Warning: due to the above change, level components may not be deserialized correctly if a mod calls LevelProperties.readProperties instead of LevelStorage.parseSaveProperties

Removals

  • The deprecated util package in cardinal-components-block has been removed

Beta 1

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API

see full changelog here

6.0.0-beta.1

by Pyrofab on Apr 19, 2024
Download

Version 6.0.0:

Updated to 1.20.5

This update introduces multiple breaking changes - a migration guide is available on the Ladysnake website.

Additions

  • Added C2SSelfMessagingComponent, a new experimental utility interface to simplify client-to-server messaging on player components
  • Added WorldComponentRegistry#registerFor methods, allowing for dimension-specific world components
  • Scoreboard and team components now support client ticking

Changes

  • Migrated all packages from dev.onyxstudios to org.ladysnake
  • Updated documentation and licenses to reflect package change
  • RespawnCopyStrategy now also applies on mob conversion
  • The cardinal-components-level is now deprecated, as it is redundant with the cardinal-components-scoreboard module
    • Mods are encouraged to move to scoreboard components, which serve the same purpose of global data storage and have an API more consistent with other modules

Removals

  • Removed item components. The cardinal-components-item module now contains an ItemComponentMigrationRegistry, which is used to help you migrate to vanilla components.
  • Removed PlayerCopyCallback - if you were using it, you can switch to ServerPlayerEvents.COPY_FROM from Fabric API

see full changelog here

5.4.0

by Pyrofab on Nov 29, 2023
Download

Version 5.4.0:

Updated to 1.20.3

see full changelog here

5.3.0

by Pyrofab on Sep 10, 2023
Download

Version 5.3.0:

Updated to 1.20.2

Additions

  • Added load- and unload-aware components as an experimental feature
    • This can be used to implement advanced initialization and cleanup 🧽

Changes

  • Deprecated the utils package in cardinal-components-block as it is now virtually unusable

see full changelog here

5.2.2

by Pyrofab on Aug 3, 2023
Download

Version 5.2.2:

Fixed chunk components being lost during deserialization (thanks to Stuff-Stuffs !)

see full changelog [here](https://github.com//Cardinal Components Api/blob/5.2.2/changelog.md "Changelog")

5.2.1

by Pyrofab on Jun 9, 2023
Download

Version 5.2.1:

Fixed compatibility with full 1.20 release

see full changelog here

5.2.0

by Pyrofab on May 26, 2023
Download

Version 5.2.0:

Updated to MC 1.20 (Thanks to IMS !)

see full changelog here

5.1.0

by Pyrofab on Dec 10, 2022
Download

Version 5.1.0:

Updated to MC 1.19.3

see full changelog here

5.0.2

by Pyrofab on Aug 27, 2022
Download

Version 5.0.2:

  • Fix world components not synchronizing on load

see full changelog here

5.0.1

by Pyrofab on Jul 3, 2022
Download

Version 5.0.1:

Fixes

  • Fixed components ticking only on subclasses of the block entities they were declared for (e.g. if a ticking component got attached to ChestBlockEntity, it would only tick on TrappedChestBlockEntity)

see full changelog here

5.0.0

by Pyrofab on Jul 2, 2022
Download

Version 5.0.0:

Updated to MC 1.19

Additions

  • Component providers now expose the ComponentAccess interface through Loom's interface injection
    • ComponentAccess adds getComponent as an alternative to ComponentKey#get, and syncComponent as an alternative to ComponentKey#sync
    • It is now recommended to use e.g. entity.getComponent(KEY) instead of KEY.get(entity), as this enforces type checking

see full changelog here

4.2.0

by Pyrofab on Jul 2, 2022
Download

Version 4.2.0:

Additions

  • Players can now set the log-deserialization-warnings option to toggle warnings when a component fails to be resolved (typically due to mods being removed)

Mod Compatibility

  • Fixed incompatibility with Immersive Portals

see full changelog here

5.0.0-beta.1

by Pyrofab on May 22, 2022
Download

Version 5.0.0:

Updated to MC 1.19

Additions

  • Component providers now expose the ComponentAccess interface through Loom's interface injection
    • ComponentAccess adds getComponent as an alternative to ComponentKey#get, and syncComponent as an alternative to ComponentKey#sync
    • It is now recommended to use e.g. entity.getComponent(KEY) instead of KEY.get(entity), as this enforces type checking

see full changelog here


Project members

Ladysnake

Ladysnake

Organization

Up

Former Author

Pyrofab

Maintainer


Technical information

License
MIT
Client side
unsupported
Server side
required
Project ID