Releases: VelixDevelopments/Imperat
Imperat v1.0.4
Imperat v1.0.3
Core-changes:
- Fixed enum parsing and auto-completion
- Fixed faulty annotation parsing for sender-related method parameters.
- Added enable/disable for
ImperatDebugger
(disabled by default) ParameterType#matchesInput
is no longer required to be overridden- Added
Imperat#unregisterCommand
Bukkit-changes:
- Fixed
ParameterWorld
error on legacy versions - Fixed aliases not being registered as intended on legacy versions
- Fixed auto-completion
NoSuchElementException
error
Minestom-changes:
- Fixed minestom commands not being registered properly
Imperat v1.0.2
Quick changes
Fixed imperat-bukkit
platform not loading as a dependency properly (@iiAhmedYT)
Imperat v1.0.1
Quick change
Made imperat-bukkit
platform require java 17 instead of java 21 thanks to @iiAhmedYT
v1.0.0
v1.0.0:
This is the first official release for Imperat
and it's the first release to be ready for production , also made with love ❤️
Changes:
-
Recoded brigadier wrappers.
-
Fixed brigadier critical execution bug in latest paper versions.
-
Removed
ValueResolver
and per-type suggestion resolvers, replaced byParameterType
system. -
Recoded SmartUsageResolve, improving it's scalability and readability, integrating it with
ParameterType
system -
Fixed critical command execution bugs.
-
Fixed Auto-completion space bugs.
-
Added Dependency injection system for annotations api, by adding:
- New Annotation:
@Dependency
- New method:
Imperat#registerDependencyResolver
.
- New Annotation:
Imperat v1.0.0-b.6
Changes
- Fixed class cast exception thrown during execution
- Made Context resolver factory global and allowed for multiple factories to be added/registered per types.
- Improved Pre and Post processors internals and added
CommandProcessor#priority
for priority associated with both
CommandPreProcessor
and theCommandPostProcessor
as they both extendCommandProcessor
- Added some methods to the API e.g:
Imperat#getMethodParamContextResolver(ParameterElement)
Imperat v1.0.0-b.5
Bug-fixes:
- NPE being thrown during permission checks
Imperat v1.0.0-b.4
API Changes:
- Added: placeholder registration system
- NEW PLATFORM: Added support for Minestom
- Fixed: greedy arguments parsing providing the value with extra last space.
- Fixed: uppercase commands not correctly being executed.
- Refactored:
ContextFactory
to an abstract class with a constructor parameter of typeImperat<S>
,
while also removing the method parameterImperat<S>
from its abstract methods. - Refactored: the field
OptionalValueSupplier
in classCommandParameter
is now annotated with@NotNull
meaning it can't be null, you can add a null optional value usingOptionalValueSupplier#empty(TypeWrap type)
as the methodOptionalValueSupplier#getValueType
's return type has changed fromClass<T>
toTypeWrap<T>
- Added new methods in
AnnotationParser<S>
:isKnownAnnotation(Class<? extends Annotation> annotationType)
registerAnnotations(Class<? extends Annotation>... types)
(to register custom annotations)hasAnnotationReplacerFor(Class<? extends Annotation> type)
getAnnotationReplacer(Class<A> type)
Internal Changes:
- Replaced some internal maps with our
Registry
class for better and cleaner code. - Added:
Registry#update
methods - Added: test environment for S.U.R
- Refactored: the class
AnnotationRegistry
to become package-private/internal and inaccessible.
Imperat v1.0.0-b.3
Changes:
There are several internal and API changes in this release.
API changes
-
Added new feature
Source Resolver
allowing for custom command sources. -
Added new platform support for
Velocity
the proxy API in minecraft -
Added tab-completion of parameter's formats (e.g:
<number>
).
ONLY if the parameter doesn't have ANY type of suggestion resolvers. -
Removed Platform specific resolvers/processors e.g: BukkitResolvers
-
Added interface
TypeSuggestionResolver
for specific suggestion resolvers that are linked to a type, while refactoring the originalSuggestionResolver
to accept only one generic type parameter (e.g:SuggestionResolver<S>
) and refactored the overloaded static methodSuggestionResolver#plain
intoSuggestionResolver#type
making it returnTypeSuggestionResolver
. -
Added static method
SuggestionResolver#plain
to return plainSuggestionResolver
.
Internal changes
- Renamed
UsageContextMatch
toCommandDispatch
- Added internal default resolvers of various types for minecraft-related platforms.
- BUG-FIX: fixed a bug where the command tree wasn't identifying flags as nodes during dispatching.
- Removed
SimpleAutoCompleter
andAdvancedAutoCompleter
makingAutoCompleter
a class instead of being abstract.
Imperat v1.0.0-b.2
Changes:
- Made the class
CommandParameter
generic - Added new method
Imperat#dispatch(source, commandLine)
- Restructured the help-system while keeping some of its previous concepts.
- Deleted some classes such as
UsageDisplayer
- Added
CLI
support for command-line applications