v10.0.24 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 theban_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 typedpp::active_thread_map
for it - Fixed
cluster::thread_members_get
andcluster::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
tois_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
tointeraction_create_t
from #641 (#646) - Refactored webhook constructor &
add_localization
&get_parameter
incontext_menu_t
andmessage_context_menu_t
(#641) - Refactored webhook constructor
- Removed
get_parameter
fromcontext_menu_t
andmessage_context_menu_t
- Refactored slashcommand
to_json
and the description parameter ofadd_localization
is now optional - Changed second
deep_sea
toblue_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
andUSE_SOUNDBOARD
permission - Add MIME type to HTTP file transfer API
- Add
DPP_ROOT_PATH
CMake variable, replaceCMAKE_SOURCE_DIR
withDPP_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
andmax_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
toactive_threads
- Renamed
active_thread_map
toactive_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++!