Skip to content

Releases: Revxrsal/Lamp

Lamp v3.1.7

02 Oct 09:32
Compare
Choose a tag to compare
  • Support for Kotlin's default arguments 🎉 (they must use @Optional)
  • @DefaultFor now accepts a ~ for parent paths
  • Removed @Optional#def()
  • @Optional is now allowed on primitive types, in which case they will use the default primitive value (zero for numbers, false for booleans, etc.)

Full Changelog: 3.1.6...3.1.7

Lamp v3.1.6

27 Sep 11:10
Compare
Choose a tag to compare
  • Fixed Brigadier numerical and boolean arguments not working
  • Fixed Brigadier commands showing the Unknow command message when they are missing an argument
  • Fixed the EntitySelector not showing suggestions
  • Fixed parameters sometimes getting null when they aren't optional
  • JDA slash commands by @bivashy 🎉
  • Sponge 8 by @creatorfromhell 🎉
  • OfflinePlayer fixes

What's Changed

New Contributors

Full Changelog: 3.1.5...3.1.6

Lamp v3.1.5

12 Mar 12:37
Compare
Choose a tag to compare
  • Allow commands to be defined and customized in the plugin.yml
  • New API: ParameterNamingStrategy
  • Add AutoCompleter#filterToClosestInput(boolean) to customize whether inputs are filtered to match the closest input by default or not
  • Fix a small issue in commodore classloading

Lamp v3.1.4

10 Mar 20:16
Compare
Choose a tag to compare
  • Scheduled removal of the ArgumentParser API
  • Scheduled removal of the ArgumentStack#copy methods
  • @Default functionality has been reduced to default parameters only, and is no longer applicable on methods. Use @DefaultFor instead
  • Added CommandActor#dispatch(...) methods
  • Code cleanups

Migrating

@Default has been replaced by @DefaultFor, which requires explicitly supplying the path to be the default action for. For example:

@Command("foo")
public class FooCommand {

    @Subcommand("help") // The main path is /foo help <page> 
    @DefaultFor("foo")  // <--- We can run /foo <page> and /foo help <page> and 
                        //      get the same result
    public void help(CommandActor actor, @Default("1") int page) {
        ...
    }
}

Lamp v3.1.3

06 Feb 16:56
Compare
Choose a tag to compare
  • Fix a few bugs in @DefaultFor annotation
  • Added ExecutableCommand#execute methods
  • Categories will now throw exceptions if they have more than one default action
  • Minor improvements and cleanups

Lamp v3.1.2

14 Jan 13:25
Compare
Choose a tag to compare
  1. Introduce DefaultFor to better express and control the default action logic
  2. Optional now takes a def() property for the default value, as a full replacement to @Default.
  3. @NotSender will automatically be inferred on arguments that have certain annotations which explicitly imply that the argument is not a sender (for example, @Optional Player, or @Switch("p") Player clearly mean this is a parameter and not a sender).
  4. ArgumentParser has been deprecated, and scheduled for removal in v3.1.4
  5. commandHandler#parseArguments() and commandHandler#parseArgumentsForCompletion() have been deprecated, and are scheduled for removal in v3.1.4. As a replacement, use ArgumentStack#parse() and ArgumentStack#parseForAutoCompletion() respectively.
  6. Consecutive spaces will not be ignored, and will be parsed just like normal arguments. This is to get functionality as similar to Brigadier as possible, and adhere to the common standards in command execution frameworks.
  7. Added functionality to @GuildOnly annotation in JDA
  8. Documented annotations in JDA

Flag parameter fixes, player completion fixed, Italian translations

14 Dec 19:03
3cb2dd0
Compare
Choose a tag to compare
  • Fixed flag parameters getting incorrect type in Brigadier
  • Fixed player suggestions being half-broken when Brigadier is supported
  • Added BukkitBrigadier#disableNativePlayerCompletion() to disable native player completions on Brigadier
  • Italian translation by @HornMCPE
  • Minor optimizations to Brigadier node parser

Full Changelog: 3.1.0...3.1.1

Full Brigadier implementation on 1.19+, new Either type, bug fixes

17 Oct 18:56
Compare
Choose a tag to compare

This version implements native Brigadier support on Minecraft 1.19+.

  • Players can't see commands they don't have access to
  • Certain parameter errors (such as ranges) that are handled by Brigadier will receive Brigadier errors, just like normal Minecraft commands
    image
  • Commands are handled entirely by brigadier now. So unknown subcommands will receive Brigadier errors.
  • ArgumentTypeResolvers are no longer bound to types
  • New Either type 🎉
  • Code cleanups
  • Brigadier cleanup

Brigadier on 1.19.1+, minor fixes

14 Aug 14:58
Compare
Choose a tag to compare
  • Adds support to Brigadier on Minecraft 1.19.1+ (Paper only)
  • Minor permission fixes with auto-completion

Update category permissions

14 Jul 09:58
Compare
Choose a tag to compare
  • Fix a small issue in category permissions