Pante Chimera Versions Save

Karus Lab's mono-repository for annotation processing tools & spigot libraries

5.5.0

1 year ago

Compatible Spigot versions: 1.19.3

This update adds support for Spigot 1.19.3

Commons

  • Deprecate WordType.word() - recent changes in 1.19 makes this unfeasible to fix

5.4.2

1 year ago

Compatible Spigot versions: 1.19.1

This updates addresses a few breaking bugs

Commons

  • Fix ConcurrentModificationException caused by self-visiting literal aliase still throwing on Spigot
  • Fix commands not being executed due to changes in how Spigot forwards command execution

5.4.1

1 year ago

Note: DEFECTIVE - DO NOT USE

Compatible Spigot versions: 1.19.0

This update addresses a ConcurrentModificationException caused by self-visiting literal aliases.

Commons

  • Fix ConcurrentModificationException caused by self-visiting literal aliases.

5.4.0

1 year ago

Note: DEFECTIVE - DO NOT USE

Compatible Spigot versions: 1.19.0

This update adds support for Spigot 1.19.0.

5.3.0

1 year ago

5.3.0 - Figure it out (04/06/2022)

Compatible Spigot versions: 1.18.2

This update adds support for Spigot 1.18.2.

Commons

  • Remove ClientSuggestionProvider.BIOMES - This client side mapping is no longer provided in 1.18.2

What's Changed

Full Changelog: https://github.com/Pante/chimera/compare/5.2.0...5.3.0

5.2.0

2 years ago

Compatible Spigot versions: 1.18.0 - 1.18.1

This update adds support for Spigot 1.18. In addition, the library now requires Java 17.

Commons

  • Add AxoltolBucketBuilder
  • Change item builders to be sealed

5.1.0

2 years ago

Compatible Spigot versions: 1.17.1

This update introduces a replacement for StringArgumentType.word() that supports non-ASCII characters. In addition, we have updated our Git workflow to embrace a more "trunk-based development" model. As such, we no longer maintain a stable branch. All releases will be tagged on master instead.

Commmons

  • Add Readers.unquoted(StringReader) - replaces StringReader.readUnquotedString() which does not support non-ASCII characters
  • Add WordType.word() - replaces StringArgumentType.word() which does not support non-ASCII characters
  • ChangeWordType.WORD to become private
  • Fix EnchantmentType not supporting non-ASCII characters
  • Fix MaterialType not supporting non-ASCII characters
  • Fix ParticleType not supporting non-ASCII characters

What's Changed

Full Changelog: https://github.com/Pante/chimera/compare/5.0.0...5.1.0

5.0.0

2 years ago

Compatible Spigot versions: 1.17.0

This update adds argument type matching and overhauls code generation for the command framework. The Scribe project has also been removed. Underneath the hood, we have streamlined the project's infrastructure and documentation. Documentation is now applied on the master branch and the staging branch has been removed. The minimum Java version has also been bumped to Java 16.

Annotations

Annotation processing related packages have been moved to new project, Satisfactory.

  • Add @Lazy
  • Remove @ValueType - redundant due to the introduction of records in JDK 16
  • Remove com.karuslabs.annotations.processor - package has been moved to Satisfactory, a new annotation processing project.

Commons

We went full capitalist and privatized (and finalized) several package private fields and methods. ItemStack builders also received an styling update and safety improvements. More importantly, Chimera command code generation has been moved to it's own project, Typist.

  • Add @Let
  • Add BlockDataBuilder
  • Add BundleBuilder
  • Add CompassBuilder
  • Add Describable
  • Add Argument.Builder.description(String)
  • Add ItemBuilder.banner()
  • Add ItemBuilder.blockData()
  • Add ItemBuilder.blockState()
  • Add ItemBuilder.book()
  • Add ItemBuilder.bundle()
  • Add ItemBuilder.compass()
  • Add ItemBuilder.crossbow()
  • Add ItemBuilder.enchantmentStorage()
  • Add ItemBuilder.firework()
  • Add ItemBuilder.fireworkEffect()
  • Add ItemBuilder.head()
  • Add ItemBuilder.knowledgeBook()
  • Add ItemBuilder.leatherArmour()
  • Add ItemBuilder.map()
  • Add ItemBuilder.potion()
  • Add ItemBuilder.suspiciousStew()
  • Add ItemBuilder.tropicalFishBucket()
  • Add LeatherArmourBuilder.helmet()
  • Add LeatherArmourBuilder.chestplate()
  • Add LeatherArmourBuilder.leggings()
  • Add LeatherArmourBuilder.boots()
  • Add Literal.Builder.description(String)
  • Add MapBuilder.empty()
  • Add MapBuilder.filled()
  • Add PotionBuilder.lingering()
  • Add PotionBuilder.potion()
  • Add PotionBuilder.splash()
  • Change @Source to @Pack
  • Change classes in com.karuslabs.commons.item.builders to be final
  • Change Argument's constructors to accept a description
  • Change BookBuilder.of(Material) to BookBuilder.of() - only books contain a BookMeta
  • Change DispatcherCommand's constructor to accept a description
  • Change EnchantmentStorageBuilder.of(Material) to EnchantmentStorageBuilder.of() - only enchantment books contain a EnchantmentStorageMeta
  • Change FireworkBuilder.of(Material) to FireworkBuilder.of() - only firework rockets contain a FireworkMeta
  • Change FireworkEffectBuilder.of(Material) to FireworkBuilder.of() - only firework stars contain a FireworkEffectMeta
  • Change KnowledgeBookBuilder.of(Material) to KnowledgeBookBuilder.of() - only knowledge books contain a KnowledgeBookMeta
  • Change Literal's constructors to accept a description
  • Change SkullBuilder to HeadBuilder
  • Change TropicalFishBucketBuilder.of(Material) to TropicalFishBucketBuilder.of() - only tropical fish buckets contain a TropicalFishBucketMeta
  • Change the length at which a displayed command is trimmed when an error occurs from 10 to 20
  • Fix incorrect capitalization of names in com.karuslabs.commons.item.Head
  • Fix commands not being sent to players after server reload - see #292
  • Remove com.karuslabs.commons.command.aot.*
  • Remove methods prefixed with as in com.karuslabs.commons.item.ItemBuilder - replaced with equivalent methods without prefixes
  • Remove LeatherArmourBuilder.of(Material) - replaced with equivalent methods for specific leather armour items
  • Remove MapBuilder.of(Material) - replaced with equivalent methods for empty and filled maps
  • Remove PotionBuilder.of(Material) replaced with equivalent methods for different potion types

Typist

Command code generation has been rewritten to support inferred parameters for methods annotated with @Bind. This project was originally part of commons but has since been moved into Typist since this release.

Typist Example Plugin

This project provides a minimal example of using Typist in a plugin.

Scribe

TL;DR - Remove Scribe

When we first released Scribe, we believed that annotation processing was the best solution to ensure that plugin.yamls are free of errors. In hindsight, this approach proved to be both cumbersome to maintain for developers to use. The poor to lukewarm reception has only further exemplified this consensus. Going forward, we will no longer be maintaining the Scribe project, however, it will be useable for the foreseeable future. Looking forward, we plan to develop a new plugin.yaml lint replacement. To those who have been supporting the Scribe project, thank you.

4.8.0

3 years ago

Compatible Spigot versions: 1.16.3

This update focuses on support for 1.16.3

Commons

  • Add UUIDType

4.7.1

3 years ago

Compatible Spigot versions: 1.16.1

This update fixes a few issues with SuggestionProviders not parsing arguments correctly.

  • Fix SpigotMapper.reparse(Type<?>) not parsing arguments correctly
  • Fix SpigotMapper.reparse(SuggestionProvider<?>) not parsing arguments correctly