Releases: Pante/chimera
I'll be there someday
This update focuses on updating Chimera to support Spigot 1.16.1.
Commons
- Add
ClientSuggstionProvider.BIOMES
- Change
NativeMapper
toSpigotMapper
- Fix
PointType.CUBIC
displaying 2D coordinates - Remove
com.karuslabs.commons.command.synchronization.*
- See https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/pull-requests/675/overview
Scribe Annotations
- Add
com.karuslabs.scribe.annotations.Version.V1_16
When the road looks rough ahead
This update focuses on fixing an issue with code generated using command annotations.
- Add
Argument(String, ArgumentType<V>, Execution<CommandSender>, Predicate<CommandSender>, SuggestionProvider<CommandSender>)
- Add
Literal(String, Execution<CommandSender>, Predicate<CommandSender>)
- Fix issue with the generic type of generated local variables not being inferable
Boy, and as the years go by
This update focuses on introducing AOT-compiled command annotations in addition
to quality of life changes and retrofitting old classes/packages.
Big Ol' list of changes:
Annotations
Annotations has been undergone a few tweaks.
- Add
@Delegate
- Add
@VisibleForOverride
- Add
Filter
- Add
AnnotationProcessor.error(String)
- Add
AnnotationProcessor.warn(String)
- Add
AnnotationProcessor.note(String)
- Add
Messages
- Change
RetentionPolicy
of annotations fromRUNTIME
toSOURCE
- Change
com.karuslabs.annotations.processors
tocom.karuslabs.annotations.processer
- Remove
com.karuslabs.annotations.filters
- All the current filters are available inFilter
Commons
Numerous components of the project has been redesigned to reduce the overall API surface area while retaining functionality.
Commands annotations have also been rewritten to support AOT compilation and be less verbose.
Commands
- Add
com.karuslabs.commons.commands.aot.*
packages to support AOT compilation - Add
Dispatcher.register(Map<String, CommandNode<CommandSender>>)
- Add
DynamicExampleType
- Add
Nodes
- Add
PlatformMap
- Add
PulseListener
- Add
SpigotMap
- Add
SynchronizationListener
- Add
TreeWalker<T, R>
- Add
Type.listSuggestions(S, CommandContext<S>, SugegstionsBuilder)
- Change
Argument.addChild(CommandNode)
andLiteral.addChild(CommandNode)
to not merge the current child's aliases and the new child's aliases - Change
CartesianType
from public to package private - Change
Cartesian2DType
from public to package private - Change
Cartesian3DType
from public to package private - Change
com.karuslabs.commons.command.suggestions.ClientsideProvider
tocom.karuslabs.commons.command.ClientSuggestionProvider
- Change
Commands.alias(LiteralCommandNode<T>, String)
toLiteral.alias(LiteralCommandNode<T>, String)
- Change
Commands.from(Object)
toCommands.resolve(Object)
- Change
Commands.from(Object, String)
toCommands.resolve(Object, String)
- Change
Commands.executes(CommandNode<T>, Command<T>)
toCommands.execution(CommandNode<T>, Command<T>)
- Change
DefaultableContext<T>
toOptionalContext<T>
- Change
Dispatcher
,DispatcherCommand
,DispatcherMapper
andExceptions
fromcom.karuslabs.common.command to
com.karuslabs.common.command.dispatcher` - Change
DispatcherMapper
toNativeMapper
- Change
Executable<T>
toExecution<T>
- Change
Execution.execute(OptionalContext<T>)
toExecution.execute(T source, OptionalContext<T>)
- Change
Exceptions
to package-private - Change
Lexers
toReaders
- Change
Mapper.otherwise(ComandNode<T>)
to throwIllegalArgumentException
instead ofUnsupportedOperationException
- Change
Position2DType
toPointType
- Change
Position3DType
toPointType
- Change
Root
to implementMutable<CommandSender>
- Change
Root.addChild(...)
to throwIllegalArgumentException
if two commands with the same name are registered - Change
Synchronizer
methods annotated withEventListener
to be package private - Change
Type.listSuggestions(CommandContext<S>, SuggestionsBuilder)
to forward toType.listSuggestions(S, CommandContext<S>, SugegstionsBuilder)
- Change
Vector2DType
toVectorType
- Change
Vector3DType
toVectorType
- Remove
Literal.Builder<T>.alias(String)
- useLiteral.Builder<T>.alias(String...)
instead - Remove
Synchronization
- this was a leaky abstraction and has been replaced bySynchronizationListener
- Remove
Tree<T, R>
- replaced byTreeWalker<T, R>
- Fix child commands not replaced when new child commands are added
- Fix command aliases not being removed in
Commands.remove(String)
- Fix command aliases not being associated with their names in Bukkit's command system
- Fix commands being added to
Root
even when unable to be registered in Bukkit's command system - Fix
WorldType
not parsing quoted world names with spaces - Remove
Commands.remove(CommandNode<T>, String...)
- this method was almost never used and posed a technical burden, useCommands.remove(CommandNode<T>, String)
instead - Remove
Commands.resolve(Object)
- this method have been made redundant by the rewritten command annotations - Remove
Commands.resolve(Object, String)
- this method have been made redundant by the rewritten command annotations - Remove
Nodes.Builder.then(Object, String)
- this method have been made redundant by the rewritten command annotations - Remove
com.karuslabs.commons.command.types.parser.VectorParser
Command Annotations
Commands annotations have been rewritten to support AOT compilation and be less verbose. Please refer to the wiki for
more information.
Concurrency
- Add
Context
- Add
Maybe<T>
- Add
Scheduler
- Change
Acquirable
toHoldable
- Change
Acquirable.acquire()
toHoldable.hold()
- Change
Acquirable.acquireInterruptibly()
toHoldable.holdInterruptibly()
- Fix longstanding issue with tasks scheduled with
Scheduler
and it's predecessor not running the correct number of times - Fix missing
@Nullable
annotations - Remove
Eventual<T>
- replaced byMaybe<T>
- Remove
EventualTask<T>
- replaced byMaybe<T>
- Remove
Repeater
- replaced byScheduler
- Remove
Repetition
- redundant asScheduler
now accepts aConsumer<Context>
- Remove
RunnableRepetition
- redundant asScheduler
now accepts aConsumer<Context>
Items
- Change
BannerBuilder.pattern(Pattern)
toBannerBuilder.patterns(Pattern...)
- Change
BannerBuilder.pattern(int, Pattern)
toBannerBuilder.patterns(Collection<Pattern>)
- Change
BookBuilder.pages(List<String>)
toBookBuilder.pages(Iterable<String>)
- Change
Builder(Builder<ItemMeta, ?>)
from public to package-private - Change
Builder(Material)
from public to package-private - Change
Builder.sef()
from public to package-private - Fix
CrossbowBuilder.projectiles(List<ItemStack>)
not being consistent withCollection<?>
andvarargs
methods in otherBuilder
s
Utility
- Add
Point
- Add
Type.box(Class<?>)
- Add
Type.unbox(Class<?>)
- Add
Type.VOID
- Change `Trie.prefixed(String, Function<Entry<String, V>, T>, C) from public to package-private
- Change boxed and unboxed values of
TYPE
constant inType
toObject
- Change
Vectors.LOCATION
from public to package private - Change
Vectors.Reduction<T>
from public to package private - Change
Vectors.rotate(Reduction<T>, T, double, double, double, float, float)
from public to package-private - Change
Vectors.VECTOR
from public to package private - Fix incorrect equality comparison for
TrieEntry
- Remove
Position
- replaced byPoint
- Remove
Type.of(Object)
Locale
- Remove
com.karuslabs.commons.util.locale.providers
- Remove
com.karuslabs.commons.util.locale.spi
- Remove dependency on
lingua-franca
Scribe
Error and warning messages have been overhauled to improve readability.
Scribe Annotations
- Change
Default.value
from public to private - Change
Version.version
from public to private
Scribe Core
- Change
com.karuslabs.scribe.core.resolvers
tocom.karuslabs.scribe.core.parsers
- Change
Extractor
toResolver
- Change
Resolution
toEnvironment
- Change
Resolver
and related sub-classes toParser
and...Parser
s - Remove
Messages
Scribe-Maven-Plugin
- Add
MavenEnvironment
- Add
ScribeMojo.valid(MavenEnvironment)
- Change
Messages
toConsole
- Change
MavenProcessor(Project, ClassGraph)
toMavenProcessor(Environment, ClassGraph)
- Change
ScribeMojo.project()
from protected to package-private - Fix failed execution caused by project's dependencies not getting resolved
- Remove
ScribeMojo.log(List<Message<Class?>>)
Scribe Standalone
- Add
StandaloneEnvironment
Others
- Add
CHANGELOG.md
- Change the project's banner
- Fix incorrect copyright header in files
It's a world of laughter
This update introduces Scribe Maven Plugin
for Maven.
Big Ol' list of changes:
Scribe
Scribe has been rewritten to target multiple platforms.
- Add
scribe-core
- Add
scribe-maven-plugin
Scribe Standalone
- Add check to ensure
@Plugin
annotated classes are not abstract - Add check to ensure only one
@API
annotated class exists - Add check to ensure only one
@Information
annotated class exists - Add check to ensure only one
@Load
annotated class exists - Add check for website URL format, i.e.
@Information(url = "...")
- Fix
@Plugin
to allowname
andversion
to be optional - Fix outdated header in generated plugin.yml
Others
- Add
minimizeJar
to most projects to reduce resultant JAR size - Fix incorrect copyright headers in
annotations
Through an endless diamond sky
This update focuses on porting the project to 1.15 and modularizing scribe.
Big Ol' list of changes:
Commons
- Add
CrossbowBuilder
- Add
SuspiciousStewBuilder
- Add
Builder.damage(int)
- Add
Builder.model(Integer)
- Add
ItemBuilder.asCrowssbow()
- Add
ItemBuilder.asSuspiciousStew()
- Rename
com.karuslabs.commons.util.collections
tocom.karuslabs.commons.util.collection
- Remove
Builder.durability(short)
- replaced byBuilder.damage(int)
- Remove
Builder.<T, V>tag(NamespacedKey, ItemTag<T, V>, V)
- theItemTag
API has been deprecated
Scribe
Annotation processors previously in scribe-annotations
have been moved to scribe-standalone
, scribe-annotations
now only contains annotations.
-
Add
scribe-standalone
project - previously inscribe-annotations
-
Add
INFERRED
andV1_15
values toVersion
enum
Others
- Add checkstyle-maven-plugin to enforce coding conventions
- Bump checker-qual from 3.0.0 to 3.0.1
- Bump lingua-franca from 1.0.6 to 1.0.7
Colours of the wind
This update introduces Scribe-Annotations, a compile-time annotation processor that generates a plugin.yml
from annotations.
Big Ol' list of changes:
Scribe
- Add Scribe and Scribe Annotations project (obviously)
Others
- Add experimental support for deployment to GitHub Package Registry
- Bump auto-service from 1.0-rc5 to 1.0-rc6
- Bump checker-qual from 2.8.2 to 3.0.0
- Bump jacoco-maven-plugin from 0.8.4 to 0.8.5
- Bump junit-jupiter-api from 5.4.2 to 5.5.2
- Bump junit-jupiter-engine from 5.4.2 to 5.5.2
- Bump junit-platform-launcher from 14.2 to 1.5.2
- Bump junit-jupiter-params from 5.4.2 to 5.5.2
- Bump lingua-franca from 1.0.4 to 1.0.6
- Bump maven-plugin-api from 3.6.1 to 3.6.2
- Bump mockito-core from 2.27.5 to 3.2.0
- Bump mockito-junit-jupiter from 2.27.0 to 3.2.0
- Bump snakeyaml-engine from 1.0 to 2.0
Just kiss the girl
This update focuses on updating the project to support Spigot 1.14 and 1.14.1.
(Not so) big Ol' list of changes:
Annotations
- Rename
@ValueBased
to@ValueType
Commons
- Fix return type of
DefaultableContext.getNodes()
to match the changes in Brigadier.
Oh underneath a magic moon
This update focuses mainly on providing annotations from which a CommandNode
can be created. In addition, several annotation processors that perform static analysis on the annotations are also included.
Big Ol' list of changes:
Annotations
- Add
AnnotationProcessor
- Add Element filters
Commons
- Add annotations from which commands can be derived
- Add annotation processors that perform static analysis on the annotations from which commands are derived
- Add
Alisable
interface - Add
Mutable
interface - Add
Commands#from(...)
to create commands from annotated objects - Add
Literal.Builder#then(annotated, name)
- Add varargs overload to
Literal.Builder#aliases(...)
- Fix aliases of children not getting added in
Literal
andArgument
- Fix aliases of commands not getting registered to the server's internal
CommandMap
inRoot
- Fix
Literal
andArgument
to implementAliasable
andMutable
instead ofNode
- Fix
Root#addChild(...)
to throw anIllegalArgumentException
if the given command does not inherit fromLiteralCommandNode
- Fix
Root#register(...)
andRoot#wrap(...)
to allow onlyLiteralCommandNode
s instead ofCommandNode
s - Remove methods & support for Argument aliasing - it didn't make sense since arguments did not have a concrete representation
- Remove
Node
interface - replaced byAlisable
andMutable
Others
- Bump Checker-qual to 2.8.1
- Bump Lingua Franca to 1.0.4
I can open your eyes
This is a patch that fixes some tinny-tiny issues.
(Not so) big Ol' list of changes:
Commons
- Fix suggested coordinates not displaying properly in
CartesianArguments
if argument is blank.
A whole new world
The entire library has been razed to the ground and a new library has risen from the ruins. In all seriousness, this is a pretty significant rewrite that bridges the Brigadier command framework to Spigot plugins.