Skip to content

Releases: brainboxdotcc/DPP

v10.0.5 release

03 Apr 12:29
Compare
Choose a tag to compare

We are happy to announce the release of D++ 10.0.5, which includes several bugfixes, and also includes a breaking change to the parameters to guild_get_bans and guild_get_bans_sync due to Discord adding additional parameters API-side.

There have been several performance improvements to the library, and we have added colour constants, default error logging to all callbacks if not specified, operator== for all dpp::managed derived objects and more!

The changelog is listed below:

Release Changelog

♻️ Refactoring

  • Lock doesnt need to be active when the thread is signalled
  • Some improvements to queueing to use shared_mutex, this will allow for some fun stuff (tm) later. Also, decrease timeout of queue thread by 10x to ensure things stay snappy in quiet patches
  • Deprecated summary in integration
  • Remove default callback from get method
  • Fix ugly sprintf cruft in etf parser
  • Changed name of 'hoki'
  • Split cluster sync calls to a cpp and h file, much faster to compile than inlines

🐞 Bug Fixes

  • Fixed HEAD_REF.
  • Params cant be defaulted as callback must be last
  • Windows being Windows
  • Mess detector
  • Derive json interface
  • Wasn't test compiled
  • Fix indentation, change from unsigned int to uint32_t and add include to dpp.h
  • Missing namespace
  • Fix missing exclamation point
  • Group together see entries so the docs are cleaner

📜 Miscellaneous Changes

  • Updated docs in guild.h & guild::get_banner_url can now return gif image urls
  • Updated comment on guild_get_bans
  • Update README.md
  • Update cluster_sync_calls.h
  • Update cluster.h
  • Updated cluster::guild_member_kick

✨ New Features

  • Added guild directory channel type
  • Add get, edit, delete original response
  • Add log_error
  • Add premium_progress_bar_enabled, fixes #270
  • Add request to speak timestamp, fixes #317
  • Add destructor for select option
  • Added more colors
  • Added color constants
  • Added setup guide for clion & small doc improvements
  • guild_member_timeout_sync
  • Add dependency libc6-dev-arm64-cross for ARM64 toolchain
  • Added guild_member_timeout and updated docs
  • Add set_guild_id
  • Add operator== for dpp::managed

👷 Build/CI

  • Some nice stuff in the changelog builder
  • Make this better at detecting symbols, make it detect filenames, and make a Discord compatible markdown output to save on maually converting it on release days
  • Adjust unit test for guild_get_bans
  • Remove FreeBSD from releases

💣 Breaking Changes

  • Breaking change from Discord, guild_get_bans and guild_get_bans_sync now support limit, before and after, and return a maximum of 1000 bans per call
  • Add parameter dpp::timer to timer_callback_t

📚 Documentation

  • Fix doxygen block for set_required
  • Update webhook example to use sync call

Thank you for using D++!

v10.0.4 release

20 Mar 11:46
Compare
Choose a tag to compare

Version 10.0.4 of D++ is here!

This version of D++ includes the ability to call cluster methods such as message_get etc synchronously, as in, they wait until the command is complete and directly return a value instead of needing a lambda. These functions are identical in name to the asynchronous ones, except their name ends in _sync, e.g. message_get_sync(). These functions have specific uses, please be sure to read the docs for them on dpp.dev!

The changelog is listed below:

Release Changelog

👷 Build/CI

  • disable freebsd builds
  • add detection of compiler features to cmakelists, remove [[maybe_unused]] thats not_maybe_ignored
  • some adjustments for unit tests

🐞 Bug Fixes

  • fix optional parameters in _sync calls
  • use doxygen tag to force sync methods to dpp::cluster
  • Fix typo in README
  • fix issue with parameterised dpp::sync, remove cmakelists duplication, add dpp::sync unit test
  • convert dpp_sync to a variadic template dpp::sync
  • windows unit tests, breakpoints thrown
  • wrong warning number was silenced
  • fix compilation error on windows, silence macro warning
  • spelling in new feature
  • maybe unused

📜 Miscellaneous Changes

  • Update json_interface.h
  • Update .cspell.json
  • update doc image

✨ New Features

  • _sync calls in cluster
  • add dpp::sync() for syncronous REST calls
  • added setup guide for clion & small doc improvements
  • default lambda for all api callbacks now logs api-level errors to the logger

📚 Documentation

  • tweak doxygen settings
  • fix some broken see's
  • reference discord api ref for each api call

Thank you for using D++!

v10.0.3 release

13 Mar 13:52
Compare
Choose a tag to compare

We are pleased to announce the release of D++ 10.0.3! This release adds, amongst other things:

  • HTTP Keepalives, meaning that the library can send API calls much faster, and respond to slash commands quicker!
  • Refactored ordering of member variables saving significant memory at scale
  • Added utility functions for escaping of markdown
  • Removal of the type string from confirmation_callback_t, as std::holds_alternative can do this instead

The changelog is listed below:

Release Changelog

🐞 Bug Fixes

  • ordering
  • missing virtual dtors
  • naming and size of BUFSIZZ
  • match new order in initialisation
  • some fixes to keepalive, don't allow any session left idle for more than 60 secs to be reused, and dont try and save known dead connections where fd = -1
  • fixed wrong return types of several cluster methods
  • fix wrong http method
  • fixed user::get_avatar_url
  • broken include got in here somehow
  • spelling errors
  • we had two json_fwd.hpp
  • fix docs check
  • Fix #227 remove docs pertaining to messages_get with limit > 100
  • Fixes by misspell-fixer

✨ New Features

  • added > character to escape markdown method
  • http connection keep-alive and request chunking
  • added get_sticker_url to sticker class
  • add dpp::utility::version()

♻️ Refactoring

  • reorder structures to match alignment(amd64)
  • add json_interface that specifies the standard methods the rest_request<> template uses
  • migrate all possible REST to new template
  • move these to using the template
  • start of templating rest call bodies. much neater
  • improve performance of url_encode, move to utility namespace, expose a bunch of internal templates in dpp namespace from stringops.h

📜 Miscellaneous Changes

  • updated docs & changed component placeholder max-length
  • updated sticker::get_url
  • Update close-master-pr.php
  • updated doc

📚 Documentation

  • auto generate docs for event handler objects
  • hide an internal var from doxygen
  • redo windows guides to basically railroad new users to using the template

💎 Style Changes

  • auto spell checking of docs PRs

👷 Build/CI

  • replace azure. from sources.list because azure mirror is flaky af

💣 Breaking Changes

  • remove the string type parameter to confirmation_callback_t, because its possible to use std::holds_alternative for this on the value

Thank you for using D++!

v10.0.2 release

01 Mar 17:46
Compare
Choose a tag to compare

We are happy to announce that D++ 10.0.2 is here! It features a lot of quality-of-life improvements listed below, and some small fixes. Our current drive is to improve documentation of existing features. If you feel you would like to get involved with this please do submit a PR!

Major changes:

  • D++ is now compilable to Apple Silicon
  • Full support for containerised workflows

Release Changelog

✨ New Features

  • add whole message object to interaction, for context menu clicks on a message
  • dpp::utility::markdown_escape()
  • new ctor for dpp::utility::uptime taking a double for use with time_f() updated: library now checks when you bind an event to certain types if you have the privileged intent needed to use them, if you dont it will emit a warning to the log explaining what is needed
  • added example to README.md
  • added message content intent note to the guide

🐞 Bug Fixes

  • fix for apple silicon
  • fix for apple silicon
  • fix missing intents, and add basic logger to examples
  • fix syntax error
  • fix slashcommand creation in examples
  • fix dir for building
  • fix wrong make install dir
  • signedness
  • fix blocking write() error checking
  • missing export reported by Eren
  • Fixed the blank I forgor

♻️ Refactoring

  • make set_warning_callback private, it is for internal lib use
  • remove unneeded headers and add comments
  • change sitemap generator to once per week on Saturday
  • refactor example
  • refactor example
  • refactor slash command ctor
  • refactor examples page and added message content intent whenever it's needed to the ctor

📚 Documentation

  • history -> past
  • docs fixes

📜 Miscellaneous Changes

  • updated docs of howto remove a timeout from a member
  • updated README.md
  • updated mentioned version
  • updated doc examples
  • Update docker.yml
  • Update docker.yml

Thank you for using D++!

v10.0.1 release

22 Feb 22:28
Compare
Choose a tag to compare

After a busy week of development we are proud to announce the release of D++ 10.0.1! The 10.0.1 branch comes with a lot of refactoring, performance improvements, and quality of life improvements. Amongst these improvements are some shorthand ways of handling and declaring slash commands to make this simpler. To see this in action check out the first bot tutorial.

We have also updated nlohmann::json to 3.10.5 and fmtlib to 8.1, the latest available versions. Our Docker image (brainboxdotcc/dpp:latest) is now kept up to date with our master branch at all times, making it useful as a deployment option - see here for an example of how to use this to deploy a D++ bot via a Docker image.

The changelog is listed below:

Release Changelog

🐞 Bug Fixes

  • fix up the webhook ctor PR, and add a unit test
  • fixed stuff mentioned in #293
  • force all slashcommand names to lowercase internally
  • fix uppercase p
  • fix accidentally deleted text
  • fix deprecated invite stage
  • fixed marks
  • fix windows issues and make unit tests pass
  • make unit tests able to be run on windows
  • fix warning by using fallthrough annotation
  • Fixes by misspell-fixer

♻️ Refactoring

  • deprecate but not remove commandhandler
  • add attachments array to sent messages, if it contains values
  • bump nlohmann to 3.10.5, fmtlib to 8.1
  • remove useless line in ARMv7 cmake
  • deprecated invite stage :(
  • remove testing docs
  • change to break bc it was a bug

✨ New Features

  • add back images
  • added webhook constructors
  • add QOL methods to dpp::interaction that streamline slashcommand events, add dpp::utility::cout_logger(), and add two new interaction_create_t::reply overloads that just take a message or string
  • added current_member_edit
  • added build-a-discord-bot-windows-wsl
  • add unit tests page

📚 Documentation

  • docs fix: uppercase command name
  • get rid of screenshot showing message example
  • update first-bot page to use interactions not message commands

👷 Build/CI

  • docker deployment
  • update dockerfile, and add a CI action to update the docker image
  • improve changelog builder
  • allow turning off the ldconfig step, and set soversion and symlink
  • cmake option to allow disabling of voice even if we have the libs
  • make this work on pull request to master

📜 Miscellaneous Changes

  • Update 03_example_programs.md
  • updated link
  • updated docs of guild_set_nickname
  • updated docs of current_member_edit
  • updated file upload example
  • Update close-master-pr.php
  • update build and test docs

Thank you for using D++!

v10.0.0 release

15 Feb 23:18
fafa012
Compare
Choose a tag to compare

🎉 We are pleased to announce the 10.0.0 release of D++! 🎉

As our version releases match the supported API versions, and discord have recently announced version 10 of the Discord API, we are bumping our own version up to 10.x to indicate support for this new version.

If you have recently updated to the last 9.x version, there is no immediate need to upgrade as we are aware this was only a couple of days ago. The changes in the v10 release are minimal and this release is somewhat ceremonial.

Enjoy!

The changelog is listed below:

Release Changelog

📚 Documentation

  • update FAQ to refer to v10

♻️ Refactoring

  • cut down usage of fmt a bit to reduce compile times and compile memory usage

Thank you for using D++!

v9.0.19 release

13 Feb 23:24
1adaee7
Compare
Choose a tag to compare

We are happy to announce the release of D++ 9.0.19! This version features a rewrite of the HTTP system of the bot which makes REST requests. We have replaced it with something faster, more compact, and easier to maintain, which also fixes some long-standing bugs with windows file uploads.

Alongside this we have also made modal dialogs a stable API feature in the library, and added support for slash command attachment uploads parameters. dpp::utility::read_file is also now fixed on windows. Many small methods have been added, which are quality of life fixes such as user::format_username().

The changelog is listed below:

Release Changelog

✨ New Features

  • added stage attribute to dpp::invite
  • added required field to_json in component and removed experimental comments of the modal input
  • user::format_username() and utility::bot_invite_url()
  • added required field to dpp::component
  • support for ephemeral event.thinking()
  • channel::add_permission_overwrite()
  • added global_command_get as it was missing
  • added dpp::guild_command_get as it was missing
  • added recursive command option parsing
  • added recursive command option parsing
  • added some fill_from_json methods
  • added double_not_null
  • added guild_commands_get_permissions, guild_bulk_command_edit_permissions and guild_command_get_permissions

♻️ Refactoring

  • add exception handler in queues.cpp for http_client ctor use
  • remove cpp-httplib
  • unit tests PASSED for new http client
  • support plaintext downgrade for ssl_client
  • new client files
  • begin replacing cpp-httplib with something a bit more streamlined
  • constructors for dpp::command_source
  • provide access to underlying events in dpp::command_source
  • refactor slash command permission thing

💣 Breaking Changes

  • param_info now accepts correct choice types

🐞 Bug Fixes

  • fixed stage instance getter, modifier and delete methods in cluster
  • fix dpp::utility::read_file on windows
  • fix missing include
  • check that version enforcement succeeds
  • dont allow SSL 3.0 TLS 1.0 or 1.1 in SSL negotiation
  • numeric limits is odd on windows
  • properly serialize role in role_edit()
  • fix windows builds
  • fixed typo in command_option::fill_from_json
  • fixed communication_disabled_until parsing in guild_member::build_json
  • fixed communication_disabled_until parsing in guild_member::build_json
  • fixed guild member in interaction
  • added guild_id and user_id to guild_member default ctor
  • add virtual destructor for dpp::interaction_create_t
  • serialise content and embeds array, even if empty
  • fixed member.user_id and member.guild_id were not set when receiving an interaction
  • fixed cluster::guild_search_members
  • fixed cluster::guild_get_members
  • mute wasn't correctly build in guild_member::build_json()
  • fixed command_option_choice::fill_from_json and added unit test for it

👷 Build/CI

  • unit tests for new http client

📚 Documentation

  • add example for co_attachment parameter type
  • comments for new http client
  • remove 'test dpp' section
  • remove experimental warning on modal dialogs
  • fix doxygen line
  • add example eval command 🤮

Thank you for using D++!

v9.0.18 release

31 Jan 01:34
82701e3
Compare
Choose a tag to compare

We are proud to announce the release of D++ 9.0.18! This version introduces a few new feaures, the most notable are:

  • Multi-file upload is now supported!
  • We now offer prebuilt binaries for FreeBSD
  • Headers have been refactored for faster compilation
  • Full presence activity support for bots which are utilising the presence intent

The changelog is listed below:

Release Changelog

🐞 Bug Fixes

  • double include of array on win32
  • fix concurrency setting
  • fixed bug in activity
  • fixed reference bug in the command_permission constructor
  • role_edit_position not working
  • emoji::format didn't return animated emojis
  • unused variable
  • single file http_request
  • fixed several typos in the docs
  • fixed parameters of execute_webhook
  • fixed url parameters in guild_event_users_get
  • fixed url parameters of guild_event_users_get
  • fixed timestamp url-parameter in thread-getters
  • fixed parsing in the four thread-getters and fixed parameter creation

♻️ Refactoring

  • xcode clang is demanding we explicitly include this
  • timer.h needs unordered_map and stddef on clang
  • huge change to remove discord.h, split up the headers a little to fix circular dependencies
  • new channel_edit_permissions() overload & const params
  • automatic cache of users and members on receipt of slash command
  • changed the activity_flags back to binary format
  • clean up ci.yml
  • improved dpp::invite, fixed bug where guild_id was not set

👷 Build/CI

  • master pr close cleans up runs after itself
  • files werent added
  • auto close master-targetted PRs every 30 mins
  • correctly set name of artifact
  • move cpack into the bsd vm
  • tbz2
  • change bsd to bz2 compressed archive as cpack pkg build is broken due to segfault bug!
  • freebsd pkg build
  • run cpack on bsd
  • freebsd: reduce build concurrency
  • add git to freebsd
  • add dpp build to freebsd action
  • freebsd experimental ci
  • turnstyle is no longer required
  • there was a test case that runs on PR's and shouldnt.
  • better restriction of concurrency
  • pull in env vars during unit test run
  • error logging
  • set various ids from env vars

📚 Documentation

  • typo in style guide
  • update INDEX.md
  • fix param description

✨ New Features

  • setters for dpp::channel
  • added note
  • added note to guild_edit_command_permissions
  • added role method: role_edit_positions
  • added const declaration in command_permission constructor
  • added note to dpp::guild_edit_widget
  • added activity emoji
  • added buttons struct
  • added activity assets
  • add turnstyle
  • added details field to activity
  • added overloaded method set_footer in dpp::embed
  • added audit log notes to webhook methods
  • added create_timestamp to thread_metadata
  • added failed to mention some roles in thread flag to message flags. documented here
  • add multiple attachments
  • added note to slash command example
  • added timestamp parser to unit tests
  • added webhook example
  • added new attributes in ctor
  • added note

📜 Miscellaneous Changes

  • new category & regex for changelog.php

💣 Breaking Changes

  • remove non-existing events

💎 Style Changes

  • comments

Thank you for using D++!

v9.0.17 release

10 Jan 19:34
443d0a1
Compare
Choose a tag to compare

After a long Christmas break we are happy to bring you D++ 9.0.17! Now that the large man in the red hat has been, we give you one final late present of a new release. This is mainly a quality of life release, with a few fixes as listed below.

The changelog is listed below:

Release Changelog

✨ New Features

  • add comment to resolved member_permissions
  • add guild member permissions in interactions
  • add some comments to docs
  • add fix to guild_command_create to solve the permissions edit issue
  • added note to user_get
  • added static cast
  • added constructor for command_permission
  • Add image example
  • automatically loop and retrieve messages_get with limit > 100
  • added channel, guild, role, and user- icons/avatars getters
  • added icon, banner, splash and discovery splash -url getters
  • add guild_member::is_communication_disabled()

🐞 Bug Fixes

  • fix slash command permissions not copied into struct
  • fixed slash command permissions not working
  • fix / -> \
  • remove export
  • fix wrong openssl
  • bump to force ci run
  • correctly terminate shard threads on cluster destruction

♻️ Refactoring

  • remove default parameter
  • better read_file and unit test for it
  • add utility::cdn_host constant and utility::avatar_size

📚 Documentation

  • move around the note in the repl page to be above the fold
  • add image for repl page
  • fix missing bracket
  • update FAQ and add page documenting how to run a dpp bot in repl.it
  • docs fix wording

Thank you for using D++!

v9.0.16 release

21 Dec 00:37
Compare
Choose a tag to compare

We are happy to announce the release of D++ 9.0.16! This version adds support for the newest Discord API features including member timeout, for when you really want your bot to stick a user in the sin-bin and leave dealing with it to Discord.

It also adds support for interaction locale fields, and some quality of life fixes for event routers.

There is experimental support for modal dialogs, but this is not yet available for general use by Discord and will be released in due course. For more information of this stay up to date with developments on our support server!

The changelog is listed below:

Release Changelog

✨ New Features

  • add moderate members permission
  • add interaction locales
  • added messages. this was missing for context menu actions i think
  • added user context menu example
  • add DPP_EXPORT stanza to find_guild_member()
  • operator bool() for event_router_t
  • on_form_submit event for modal dialogs
  • add comments and helper functions
  • experimental; modal dialog interactions

🐞 Bug Fixes

  • improve shard ready message
  • ctor for collector doesnt set owner
  • openssl can return a successful read of 0 bytes. Don't bother calling handle_buffer() on this

♻️ Refactoring

  • improved attachment example
  • add size parameter to get_avatar_url of user and guild_member

💎 Style Changes

  • remove some casts

📚 Documentation

  • docs fix syntax and change event params to auto for simpler example
  • add example of collector::filter
  • documentation for modal dialogs: experimental and subject to change
  • added example on how to invite a bot
  • fix typos in "Using Slash Commands and Interactions"
  • fix context menu example
  • fix for the code in the context menu example
  • fix alignment of headers
  • fix first-bot tutorial image
  • fixed arrow size

Thank you for using D++!