Skip to content

v10.0.17 release

Compare
Choose a tag to compare
@braindigitalis braindigitalis released this 31 Aug 16:18
· 1549 commits to master since this 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 to uint64_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++!