Skip to content

v10.0.24 release

Compare
Choose a tag to compare
@braindigitalis braindigitalis released this 22 May 16:28
· 1051 commits to master since this release

We are pleased to announce the release of D++ 10.0.24! This new release has four months of fixes and feature enhancements, including:

New guild member flags, on_guild_audit_log_entry_create gateway event, join raid and mention raid protection feature, support for voice messages, slashcommand_t::get_parameter supports subcommands, APPLICATION_AUTO_MODERATION_RULE_CREATE_BADGE, VIEW_CREATOR_MONETIZATION_ANALYTICS and USE_SOUNDBOARD permissions, added MIME type to HTTP file transfer API, and also added the ps_invisible presence status.

There is unfortunately no news yet on the structure the API will take for the new discord usernames and replacement of discriminators. When we have more details on this, a new release supporting it officially will follow ASAP.

The changelog is listed below:

Release Changelog

🐞 Bug Fixes

  • Fix hard coded ref to g++ 10
  • Fixed message reaction events not executed in threads (#696)
  • Redesign message unit tests so there is no blocking calls in on_message_receive
  • Moved online unit tests from on_ready event handler to main thread
  • Fixed memory leak and potential use-after-free bug with voiceconn (#687)
  • Fix memory leak and potential use-after-free bug with voiceconn
  • Fixed bug in automod parsing that caused the actions being empty when fetching an automod rule
  • Fix for Gcc13.1 (#664)
  • Fixed for gcc 13.1
  • Fix cluster sync definition for threads_get_active and add an error check to the sync generator so we know sooner if its broken
  • Fix send voice message permission value
  • Add missing mimetype to external HTTPS requests (#656)
  • Fix external HTTP requests not sending MIME type
  • Fixed cluster::guild_get_bans (#655)
  • Fixed cluster::guild_get_bans which stored all bans in the ban_map with key 0, causing the method to return only one ban from the list
  • Move cl compilation flags that clang-cl doesn't recognize to a "not clang-cl" clause (#653)
  • Fixed get_parameter (#648)
  • Fixed command_option parsing which didn't parse commands with too many subcommands and subcommand groups (#647)
  • Fix unittest for get_parameter
  • Fix DPP install copying entire source tree root include/ in its install directory when added as a subdirectory (#637)
  • Fix DPP install copying source root include/ in its install directory as subdirectory
  • Fixed cluster::threads_get_active (#633)
  • Fix detection of sodium on Windows
  • Fixed cluster::threads_get_active method and added a new return type dpp::active_thread_map for it
  • Fixed cluster::thread_members_get and cluster::thread_member_get which accidentally had the wrong endpoint
  • Fix typo in vcpkg builder
  • Fix merge conflict
  • Make this work
  • Why is there a #include 'user.h'?
  • Fix sudo requirement
  • Yaml parser doesnt like : in quoted text?
  • Indent and derp
  • Fix broken vcpkg collector
  • Fix bottom-of-portfile to not try to apply broken patch

♻️ Refactoring

  • Updated invite struct & added unittests for invites (#695)
  • Renamed is_premium_subscription to is_premium_subscriber
  • Added helper functions to create endpoint urls (#684)
  • Modernize dpp::permission (#651)
  • Removed cout (#685)
  • Changed the way guild member flags are parsed
  • Removed unused #include from guild_audit_log_entry_create.cpp
  • Revert get_parameter to interaction_create_t from #641 (#646)
  • Refactored webhook constructor & add_localization & get_parameter in context_menu_t and message_context_menu_t (#641)
  • Refactored webhook constructor
  • Removed get_parameter from context_menu_t and message_context_menu_t
  • Refactored slashcommand to_json and the description parameter of add_localization is now optional
  • Changed second deep_sea to blue_chill
  • Remove redundant send_silence (#627)
  • Refactor vcpkg generator

✨ New Features

  • Added some missing role fields (#691)
  • Added i_guild_subscription integration type (#692)
  • Added url getter for emojis (#682)
  • Added guild member flags (#679)
  • Added on_guild_audit_log_entry_create gateway event (#678)
  • Added explicit casting to avoid warnings (#676)
  • Added join raid and mention raid protection feature (#667)
  • Added join raid protection guild feature. This bumps the guild flags_extra field from 1 byte to 2 bytes!
  • Added automod mention raid protection to the trigger metadata class
  • Support for voice messages (#660)
  • Added channel object to interaction (#649)
  • slashcommand_t::get_parameter supporting subcommands
  • Added APPLICATION_AUTO_MODERATION_RULE_CREATE_BADGE application flag (#644)
  • Added VIEW_CREATOR_MONETIZATION_ANALYTICS and USE_SOUNDBOARD permission
  • Add MIME type to HTTP file transfer API
  • Add DPP_ROOT_PATH CMake variable, replace CMAKE_SOURCE_DIR with DPP_ROOT_PATH
  • Add unit test to show the value of multimaps here
  • Added many new colors and created alias for colors called colours (#630)
  • Add ps_invisible presence status

🚨 Testing

  • Fixed managed::get_creation_date unittest (#690)
  • Fixed emoji get unittest (#689)
  • Fixed emoji get unittest. It failed because Discord's respond doesn't include the user which created the emoji on creation
  • Refactor blocking calls out from events in unit tests (#688)
  • Added some dpp::message-related tests (#686)
  • Slightly polished dpp::message unit tests
  • Fixed testdata/DPP-Logo.png case in unit tests
  • Added file attachment tests
  • Added message pin test
  • Added message edit test
  • Added unittests for creating/getting/deleting a custom emoji
  • Added unittests for automod rule creation, fetching and deleting (#666)
  • Updated unit test for automod
  • Added unittests for creating, getting and deleting bans (#657)
  • Added unittest for voice channel creation, editing and deletion (#652)
  • Added unittests for creating, getting and deleting bans with some real (deleted) Discord accounts
  • Fix unit test for get_parameter
  • Added unittest for interaction_create_t::get_parameter

👷 Build/CI

  • Fix broken x86 builds
  • Reformat and refactor the vcpkg generator [skip ci]

📜 Miscellaneous Changes

  • Forgot something in emoji unittest
  • Updated some docs & command option min_length and max_length parsing (#672)
  • Updated information regarding WSL
  • Try to fix get_parameter
  • Update upload-artifact action to v3
  • Update checkout actions to v3
  • Update .cspell.json
  • Renamed active_thread_map to active_threads
  • Renamed active_thread_map to active_thread_map
  • Update ref/sha
  • Update git tree tag

📚 Documentation

  • Added link to all events pointing to the Discord documentation's gateway events (#673)
  • Small tweak for has_send_voice_messages
  • Fixed some docs (#659)
  • Add throws to get_parameter
  • Updated coding style standard (#642)
  • Documentation for setting up D++ in CLion with CMake and vcpkg (#639)
  • Documentation on how to set up D++ through vcpkg for CLion.
  • Documented spell checks in the coding style standards (#636)
  • Updated docs of cluster::threads_get_active
  • Changed docs of get_user method

Thank you for using D++!