Skip to content

Releases: VelixDevelopments/Imperat

Imperat v1.0.4

24 Oct 21:39
Compare
Choose a tag to compare

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

14 Oct 16:48
Compare
Choose a tag to compare

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

13 Oct 15:14
Compare
Choose a tag to compare

Quick changes

Fixed imperat-bukkit platform not loading as a dependency properly (@iiAhmedYT)

Imperat v1.0.1

12 Oct 15:28
Compare
Choose a tag to compare

Quick change

Made imperat-bukkit platform require java 17 instead of java 21 thanks to @iiAhmedYT

v1.0.0

08 Oct 21:37
Compare
Choose a tag to compare

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 by ParameterType 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.

Imperat v1.0.0-b.6

04 Oct 20:56
Compare
Choose a tag to compare
Imperat v1.0.0-b.6 Pre-release
Pre-release

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 the CommandPostProcessor as they both extend CommandProcessor
  • Added some methods to the API e.g: Imperat#getMethodParamContextResolver(ParameterElement)

Imperat v1.0.0-b.5

01 Oct 15:14
Compare
Choose a tag to compare
Imperat v1.0.0-b.5 Pre-release
Pre-release

Bug-fixes:

  • NPE being thrown during permission checks

Imperat v1.0.0-b.4

28 Sep 14:16
Compare
Choose a tag to compare
Imperat v1.0.0-b.4 Pre-release
Pre-release

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 type Imperat<S> ,
    while also removing the method parameter Imperat<S> from its abstract methods.
  • Refactored: the field OptionalValueSupplier in class CommandParameter is now annotated with @NotNull
    meaning it can't be null, you can add a null optional value using OptionalValueSupplier#empty(TypeWrap type)
    as the method OptionalValueSupplier#getValueType's return type has changed from Class<T> to TypeWrap<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

25 Sep 00:23
Compare
Choose a tag to compare
Imperat v1.0.0-b.3 Pre-release
Pre-release

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 original SuggestionResolver to accept only one generic type parameter (e.g: SuggestionResolver<S>) and refactored the overloaded static method SuggestionResolver#plain into SuggestionResolver#type making it return TypeSuggestionResolver.

  • Added static method SuggestionResolver#plain to return plain SuggestionResolver.

Internal changes

  • Renamed UsageContextMatch to CommandDispatch
  • 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 and AdvancedAutoCompleter making AutoCompleter a class instead of being abstract.

Imperat v1.0.0-b.2

22 Sep 23:48
Compare
Choose a tag to compare
Imperat v1.0.0-b.2 Pre-release
Pre-release

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