Skip to content

Releases: freya022/BotCommands

2.3.0 - JDA 5 support

18 Feb 16:42
Compare
Choose a tag to compare

Please do not use this tag as several updates have been made to fix Discord:tm:, use the latest commit of the master branch, or latest of other branches

Changed

Components

  • Removed owner ids for interaction constraints
  • Optimized SQL code a bit

Application commands

  • Fixed some command updating issues

Autocomplete

  • Don't show user inputs when there are no choices
  • Continuity autocompletion is now case insensitive
  • Allow Collection to be returned instead of List for autocomplete results

Misc

  • Cooldown - Optimized user cooldown map
  • Added @SubscribeEvent to internal listeners
  • Pass pagination instances to pagination suppliers

Added

Application commands

  • Added application command online checks
  • Added SlashCommandResolver#getOptionType, give more parameters to resolver methods
  • Added SlashCommandResolver#getPredefinedChoices
  • Added application / component filters

Autocomplete

  • Added autocomplete caching

Misc

  • Expose test files, they are still not recommended as examples
  • Support for JDA 5 & the new interactions
  • Add support for suspend methods on text / slash / persistent component listeners
  • @Test annotation, these commands are pushed only to specified guilds
  • Added Discord threads support
  • Added IntelliJ live templates

2.2.0

19 Dec 15:10
647af86
Compare
Choose a tag to compare

Changed

  • Updated to a JDA 5 fork (with autocomplete, context menus, min/max and channel types
  • Searching for classes in the VM's classpath instead of supplying a jarPath
  • Application commands update should be async, but still requires all shards to be ready
  • Updated dependencies
  • Only ship API docs
  • Moved DefaultMessages and Logging to API package
  • Replaced Consumer<ButtonEvent> and Consumer<SelectEvent> by ButtonConsumer and SelectConsumer
  • Fixed application command updating issues due to JSON content arrangement and possible race conditions

Added

  • Auto completion for slash commands (& state aware, which means you can ask for previously sent arguments as to make a better decision)
  • Min / Max for slash command options
  • Channel types for slash command options (inferred or with annotation)
  • Building buttons with ButtonContent using string and emojis
  • Set a 10 minutes cooldown between messages sent to bot owners for exceptions

2.1.0

09 Nov 07:21
2481285
Compare
Choose a tag to compare

Additions

  • Added InteractiveMenu
  • Added ButtonContent#withShortcode(String)
  • Added ButtonContent#withEmoji(String)
  • Added timeout callbacks on lambda components
  • Added @EventListener to listen on JDA events, with custom parameters

Changes

  • Transformed consumers / functions into specialised interfaces, for better parameter names
  • Fixed lambda selection menus not getting unregistered on timeout
  • Fixed ignored class detection

2.0.0

18 Oct 07:16
f3a3bde
Compare
Choose a tag to compare

What's Changed

Additions

  • Using the JDA context menu branch
  • Separating packages into API and internal
  • Categorised CommandsBuilder settings, without breaking the builder pattern
  • Tracing ignored (not instantiated) classes from the search path
  • Added guild-localized default messages (such as command not found, permission error message...)
  • Inheritable class-level and method-level @Description
  • Added custom arguments (so for example your command can also accept a JDA instance, the catch being that the real discord options has to be annotated with either @TextOption or @AppOption depending on the context)
  • Adding resource bundle based localization for application commands only (i will not do it for text commands)
  • Reworked text commands to work like application commands, their syntax should be very similar now, while keeping a method that only accepts CommandEvent as an (optional) fallback
  • Help command will add subcommand help by default
  • Regex patterns for text commands will throw an exception if they're "too complex"
  • Switched to Java 16
  • Use fully uppercase JDA instead of Jda

Removals

  • Removed @ArgName and @ArgExample in favor of @TextOption
  • Removed category from @JDATextCommand, this is now set with @Category on the class-level
  • Removed PermissionProvider, its methods have been moved to other classes
  • Removed permissions from both command types, they are replaced with @BotPermissions and @UserPermissions, which are also class-inheritable

Getting it

You can get this version by replacing VERSION by 2.0.0, still by using jitpack as a repository, as explained in the README
As always, I would still recommend using the commit-based version so you can stay up to date more often

1.5.0

27 Aug 15:43
Compare
Choose a tag to compare
1.5.0 Pre-release
Pre-release
+ Added cached slash commands
+ Added component handlers and custom ids
+ Use logging
+ Message only deepest exception cause
- Removed SimpleStream - JDA already closes streams
+ Allow user made parameter resolvers
+ Fix compile error for JDK 13+
+ Added a paginator and menus
+ Use new emoji library for more accurate shortcodes to emoji conversions
+ Add examples
+ Add localized slash commands
+ Updated JDA

v1.4.6

13 May 19:46
Compare
Choose a tag to compare
Mission failed