v10.0.17 release
We are happy to announce the release of D++ 10.0.17!
This new release adds support for Discord's most recent changes, such as message deletion when banning a user now being in seconds instead of days. From a technical perspective this release changes dpp::snowflake
from a simple typedef
to a class with methods. This lets you for example call get_creation_time()
on a snowflake, and prevents dumb mistakes like trying to store snowflakes into int
or into signed values. It comes fully equipped with operators to make it behave like a uint64_t
when being used correctly, so this should not break well written code.
Our binary packages are now built on g++ 10
under the Ubuntu 22.04 LTS for 64 bit builds, which means they are linked against the SSL 3.x libraries instead of 1.1.
Yet again, there are performance improvements, mainly in the ETF parser, and also in our socket multiplexing code which means those of you with truly huge bots will notice the most performance improvement.
The changelog is listed below:
Release Changelog
💣 Breaking Changes
- Delete message count on
cluster::guild_ban_add
is now scaled in seconds instead of days (#489) - Rename "news" channel to announcement channel (#488)
✨ New Features
- Add support to build rc file to .res from Harshfuedal's template, only if we are on MSVC and building as dynamic lib
- Added a fluent function for setting the default gateway address. (#487)
- Added constructor for
dpp::automod_metadata
- Added
apf_application_command_badge
to application flags - Added
attachment::description
attribute (#482) - Added
attachment::description
attribute - Operators for comparing role positions
- Shorthand methods for making subcommands and options easier
- New methods in
dpp::interaction
to make for easier use - Add
DPP_CORO
- Add operator==(
uint64_t
) - Snowflake class. Please TEST THIS with some bots
♻️ Refactoring
- Warn if user tries to delete someones messages for the last 7 seconds, they likely didnt check for breaking changes and were thinking it was in days
cluster::request()
now supports coroutines (#491)- Warning fixes for msvc
cluster::request()
now supports coroutines- Use poll not select for
ssl_client
- Needs Windows testing - Performance improvements in etf parser
- Changed
dpp::snowflake
in subcommands docs touint64_t
and removed extra brackets - Remove newlines
🐞 Bug Fixes
- Pollin/pollout required on Linux
- Make
poll()
work on Windows role::get_mention
not working- Fix check for snowflake also munching up ints
- Fix about the sussy thing
- Fixed AppleSilicon check (#478)
- Fixed AppleSilicon check
- Large bot sharding multi-connect spams console with connect message
- Gcc 8.3 fails, 8.4+ passes. ugh.
- Ugh left one out
- Fix
interaction_create
in many compilers - Fix small issue in
guild::build_json()
(#475) - Fix guild
build_json
afk_timeout
field addition depends on another field's validity - Fixed subcommand docs (#473)
- Fix slash commands in dm and tidy up .
find/.at
to .contains in some places - Coroutine support for g++ 10 and msvc
- Experimental coro generator
- Get rid of these weird extra checks
- Backport some changes that were made when getting this live
👷 Build/CI
- Improvements to changelog builder
- Try moving cross-compiles to ubuntu-latest
- Move packaging to ubuntu-latest g++-10 instead of debian g++-8, to link to ssl 3 instead
📜 Miscellaneous Changes
- Updated automod (#483)
- Update
cluster.cpp
- Updated automod docs
- Updated docs in automod
- Updated automod
- Update
construct-vcpkg-info.yml
📚 Documentation
- Document
coro.h
(#471) - Document
coro.h
- Placeholders for coro docs
Thank you for using D++!