Skip to content

Releases: VelixDevelopments/Imperat

Imperat v1.2.1

04 Nov 06:37
Compare
Choose a tag to compare

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

02 Nov 23:56
Compare
Choose a tag to compare

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

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.