Karus Lab's mono-repository for annotation processing tools & spigot libraries
Compatible Spigot versions: 1.19.0
This update adds support for Spigot 1.19.0.
Compatible Spigot versions: 1.18.2
This update adds support for Spigot 1.18.2.
ClientSuggestionProvider.BIOMES
- This client side mapping is no longer provided in 1.18.2Full Changelog: https://github.com/Pante/chimera/compare/5.2.0...5.3.0
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.
Readers.unquoted(StringReader)
- replaces StringReader.readUnquotedString()
which does not support non-ASCII charactersWordType.word()
- replaces StringArgumentType.word()
which does not support non-ASCII charactersWordType.WORD
to become privateEnchantmentType
not supporting non-ASCII charactersMaterialType
not supporting non-ASCII charactersParticleType
not supporting non-ASCII charactersFull Changelog: https://github.com/Pante/chimera/compare/5.0.0...5.1.0
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.
Annotation processing related packages have been moved to new project, Satisfactory.
@Lazy
@ValueType
- redundant due to the introduction of records in JDK 16com.karuslabs.annotations.processor
- package has been moved to Satisfactory, a new annotation processing project.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.
@Let
BlockDataBuilder
BundleBuilder
CompassBuilder
Describable
Argument.Builder.description(String)
ItemBuilder.banner()
ItemBuilder.blockData()
ItemBuilder.blockState()
ItemBuilder.book()
ItemBuilder.bundle()
ItemBuilder.compass()
ItemBuilder.crossbow()
ItemBuilder.enchantmentStorage()
ItemBuilder.firework()
ItemBuilder.fireworkEffect()
ItemBuilder.head()
ItemBuilder.knowledgeBook()
ItemBuilder.leatherArmour()
ItemBuilder.map()
ItemBuilder.potion()
ItemBuilder.suspiciousStew()
ItemBuilder.tropicalFishBucket()
LeatherArmourBuilder.helmet()
LeatherArmourBuilder.chestplate()
LeatherArmourBuilder.leggings()
LeatherArmourBuilder.boots()
Literal.Builder.description(String)
MapBuilder.empty()
MapBuilder.filled()
PotionBuilder.lingering()
PotionBuilder.potion()
PotionBuilder.splash()
@Source
to @Pack
com.karuslabs.commons.item.builders
to be finalArgument
's constructors to accept a descriptionBookBuilder.of(Material)
to BookBuilder.of()
- only books contain a BookMeta
DispatcherCommand
's constructor to accept a descriptionEnchantmentStorageBuilder.of(Material)
to EnchantmentStorageBuilder.of()
- only enchantment books contain a EnchantmentStorageMeta
FireworkBuilder.of(Material)
to FireworkBuilder.of()
- only firework rockets contain a FireworkMeta
FireworkEffectBuilder.of(Material)
to FireworkBuilder.of()
- only firework stars contain a FireworkEffectMeta
KnowledgeBookBuilder.of(Material)
to KnowledgeBookBuilder.of()
- only knowledge books contain a KnowledgeBookMeta
Literal
's constructors to accept a descriptionSkullBuilder
to HeadBuilder
TropicalFishBucketBuilder.of(Material)
to TropicalFishBucketBuilder.of()
- only tropical fish buckets contain a TropicalFishBucketMeta
com.karuslabs.commons.item.Head
com.karuslabs.commons.command.aot.*
as
in com.karuslabs.commons.item.ItemBuilder
- replaced with equivalent methods without prefixesLeatherArmourBuilder.of(Material)
- replaced with equivalent methods for specific leather armour itemsMapBuilder.of(Material)
- replaced with equivalent methods for empty and filled mapsPotionBuilder.of(Material)
replaced with equivalent methods for different potion typesCommand 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.
This project provides a minimal example of using Typist in a plugin.
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.
Compatible Spigot versions: 1.16.1
This update fixes a few issues with SuggestionProviders
not parsing arguments
correctly.
SpigotMapper.reparse(Type<?>)
not parsing arguments correctlySpigotMapper.reparse(SuggestionProvider<?>)
not parsing arguments correctly