Releases: VelixDevelopments/Imperat
Imperat v1.2.1
What's new with Imperat v1.2.1?
- Added methods to register multiple commands at once (#registerCommands)
- Bug-Fix: some platforms acting weird with adventure support.
- Changed the imperat instantiating again to be like:
BukkitImperat imperat = BukkitImperat.builder(plugin)
// do stuff here
.build();
Instead of
BukkitImperat imperat = BukkitConfigBuilder.builder(plugin)
// do stuff here
.build();
Imperat v1.2
What's new with Imperat v1.2?
- Added a bypass permission for cooldowns, also included in the annotation itself
- Bug-Fix: primitive numeric-types weren't detected properly
- Bug-Fix: named suggestion resolvers' faulty registration.
- Replaced the old imperat instantiating system with the new config building system
example:
BukkitImperat imperat = BukkitConfigBuilder.builder(plugin)
.contextResolver(new YourContextResolver());
.namedSuggestionResolver("yourSuggestionResolver", new YourSuggestionResolver());
.parameterType(Duration.class, new YourParameterDuration())
.dependencyResolver(Plugin.class, ()-> plugin)
// add some other configurations
.build();
//registering your commands here
imperat.registerCommand(new YourCommand());
Imperat v1.0.4
Changes:
-
Added
TargetSelector
parameter type to become a default type for target selection,
that can also work on versions below 1.13 for bukkit. -
Fixed bukkit auto-completion bugs on legacy versions.
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.