C++ Discord API Bot Library - D++ is Lightweight and scalable for small and huge bots!
APACHE-2.0 License
Bot releases are hidden (Show)
Published by braindigitalis almost 3 years ago
We are happy to announce the release of version 9.0.9 of D++! The 9.0.9 release has some major new features bundled within it. The main features of this release are:
cluster::start
The full changelog of D++ 9.0.9 is listed below:
cluster::add_audit_reason()
std::condition_variable
sfind()
EMBEDDED_ACTIVITY_UPDATE
, no docs on this yetinvite_get
methodmessage_delete_bulk
functionThanks for using D++!
Published by braindigitalis about 3 years ago
Version 9.0.8 of D++ is finally here, with a whole load of new features and fixes for use in your projects! This is a recommended upgrade as it fixes a lot of issues, some related to receiving voice which was introduced as a feature in 9.0.7.
The full changelog of D++ 9.0.8 is listed below:
SOCKET_ERROR
and INVALID_SOCKET
defines if they dont exisWantWrite
to use INVALID_SOCKET
dpp::socket
typedef to handle different socket types for windows/otherdpp::socket
CoreExport
macro to be DPP_EXPORT
discord_voice_client::log
not declared const
, shadows parentguild_get_member
bug, incorrectly named endpointgetaddrinfo
hints in sslclientthread_member_update
event never initialised member informationmetadata
not initialised on reading thread JSON from eventsocklen_t
for cross platform compatabilityin_queue_port
and out_queue_port
variables.u8
on the start of emoji string literals to make this more portable to C++20 and other charsetsstr_length
from string_has_prefix
emoji_flags
set to uint8_t
role_flags
set to uint8_t
cluster
constructor exception formal parameter removed as its unused lots of type conversionscommandhandler.cpp
win32_safe_warnings.h
pragma squashercommandhandler.h
voice_client_speaking
is attached before calling it, fixes voice send/receive breakingcomponent::build_json()
-Wall
-safedoxygen-awesome-css
1.6.0register_commands()
to commandhandler example-note-colour-darker
is better for eyesThanks for using D++!
Published by braindigitalis about 3 years ago
After another week of development, D++ 9.0.7 has finally arrived! This release adds some huge new features for you, such as:
We also now have a new documentation site at dpp.dev which is mobile friendly, fast, and easy to navigate. This replaces the old documentation at dpp.brainbox.cc which will be removed at some point in the future.
This is again a recommended upgrade, if you wish to stay current with Discord API features. If you need help or support with this library you can as always get help on the official Discord server.
guild_get_members
(non-cached guild member fetch) now works correctly and has additional parameterscommandhandler
registration to use bulk commands. This means that you must now call the new register_commands()
method after adding commands to the handler if you are using slash commands.dpp::cluster::request()
allowing for arbitrary HTTP requests through the libraryguild_search_members
functiondpp::utility::exec
to run in windowswindows-bot-template
on successful master
push. This means that the windows-bot-template
repository will automatically remain current with the D++ master
branch.role_create
functionThank you for using D++!
Published by braindigitalis about 3 years ago
We are happy to announce the 9.0.6 release of D++! This is quite a big release, with a whole load of fixes, changes, and enhancements listed below, and is a recommended upgrade especially for windows users and users of voice/audio. Many of the changes have been in relation to voice support, making things more stable, flexible and adding support for different use cases that many of you have requested. As always if you need assistance you can find us on the official support server!
discord_voice_client::send_audio()
into two different functions discord_voice_client::send_audio_raw()
and discord_voice_client::send_audio_opus()
. It is also possible to set different duration on the packets sent to send_audio_opus()
. Using this function saves on having to re-encode the stream again.co_number
and co_mentionable
handling for slash commands, also increase int32_t
integer value to int64_t
discord_voice_client
so that it doesn't break if the user builds their bot without HAVE_VOICE
defined, but built the lib with itdiscord_voice_client
causing potential stack corruption and crashesbreak;
was missing in commandhandler.cpp
const static
ctxm_chat_input
opus.h
into discordvoiceclient.cpp so that there is no reference to its headers on the public API sidedpp::cluster
to be destructed properlyThanks for using D++!
Published by braindigitalis about 3 years ago
We are happy to announce the official release of D++ 9.0.5! This release brings a whole set of fixes and improvements to any project using the library, including one breaking change listed below.
The new release also brings with it pre-compiled .deb
files for armv6 (Raspberry Pi Zero and Raspberry Pi Zero W) support. This allows you to use a pre-compiled D++ library even on really old or slow Pi devices. Please note that the armv6
version does not support voice, as the Pi Zero (which it is intended to be run on) is generally too slow and low spec to do this. If you really want voice support on an arm6
device we recommend you cross-compile the library.
We have also added a windows debug build (still x64) so that you can include a pre-compiled release in a windows debug project.
dpp::slashcommand
resolved parameter types now have the type dpp::resolved_member
where before it had dpp::user
. The resolved_member
struct is a structure which contains both a dpp::guild_member
and a dpp::user
as the Discord API provides both, and both are useful when handling application commands. Where you are using dpp::user
as a resolved command parameter, please switch to using dpp::resolved_member
instead.cluster::rest_ping
, tells you the ping latency of HTTPS requests from the librarydpp::slashcommand
over me.id
from the dpp::cluster
ci.yml
and toolchain filesARMv6ToolChain.cmake
to produce armv6 buildsThank you for using D++!
Published by braindigitalis about 3 years ago
We are proud to announce the release of D++ 9.0.4, which contains a small raft of fixes! This release is a recommended upgrade and also adds functionality to use the 'resolved' section of the slash command interactions to ensure you always have information available regarding users, roles etc when they are mentioned in a slash command.
This release marks the official support of pre-built deb files for both ARM7 (armhf) for Raspberry Pi, and also a prebuilt x86 (32 bit) build for all you old-school people still using ancient hardware.
A full change log is listed below:
Thank you for using D++!
Published by braindigitalis about 3 years ago
I am happy to announce the release of D++ version 9.0.3! The 9.0.3 release contains a raft of small fixes from pull requests, but the biggest change of all is that we are now offering ARM64 packages for the Raspberry Pi, which will cut down on time taken to get this library up and running on the Raspberry Pi (or any other ARM64/aarch64 based Debian install).
If you want to make use of these prebuilt versions, you can find them below in the assets for the release.
🛠 Improvements
🐛 Bug Fixes
👷 CI
Thank you for using D++!
Published by braindigitalis about 3 years ago
We are pleased to announce the release of D++ 9.0.2, continuing with our agile release methodology. This is a recommended upgrade, especially for Windows users as it adds some missing exports to the DLL which may have made it harder to use the library without. There are also some important fixes regarding dpp::commandhandler
. For a full list of changes in this version please see the changelog below:
dpp::utility::has_voice()
always returning false even when there is voice supportdpp::find_user()
, dpp::find_guild()
etc inaccessible in windows dll buildfmt::format
not exported to windows dll build, requires header only when used in user side codeshutdown()
calls on all the close()
calls.delete
for the thread objects in queue.cpp, which have a lifetime of the entire process anyway.dpp::commandhandler
objectThank you for using D++!
Published by braindigitalis about 3 years ago
We are happy to announce the 9.0.1 release of D++!
This release concentrates mainly on the windows stability of the project. OpenSSL and ZLib are now packaged within the repository and pre-compiled for windows users, so that compiling D++ is now easier than ever! Just open the project in visual studio 2019 and hit F7 and it should build without issue.
We have also confirmed that D++ runs great on Raspberry Pi (however it may take some time to build). A future release will include prebuilt Debian installers for the Pi.
From 9.0.1 onwards our CI system will output compiled build files for every push, so as a windows user if you need a prebuilt hot-fix you can find them in the actions tab on the GitHub project.
Thanks for using D++!
Published by braindigitalis about 3 years ago
We are happy to finally announce the 9.0 release of D++! 👏 🎉
❓ You may be asking, why is this version 9.0 when the last release was 1.0.2? What happened to version 2, version 3, etc? We have decided to synchronise our major version number with the supported Discord API version the library supports. As this new version officially supports Discord API v9 (and only v9) our major version is now 9.0.
🆕 As this now supports a newer, shinier version of the Discord API, this release supports the following new features amongst many other things:
...And much much more! There are also many fixes so if you are still using 1.0.2 you are strongly recommended to upgrade.
🪟 This version includes a prebuilt windows 64 bit debug build in the assets below. This may or may not suit your individual development needs, if it does not function as expected for you please build from source using the github master branch or the 9.0.0 release tag.
Published by braindigitalis over 3 years ago
This is the 1.0.2 release of D++!
This release fixes some issues with interactions, and refactors the camel case names remaining in the lib to match the correct snake case, e.g. DiscordClient
becomes discord_client
and ConnectVoice
becomes connect_voice
. Be sure to update your code when you update to this version.
Windows support is still experimental and should be avoided for the time being. To run this library on windows use WSL2.
Published by braindigitalis over 3 years ago
This is the 1.0.1 release of DPP, which is a recommended upgrade to all users of 1.0.0.
This release fixes several issues, notably detection of correct number of shards not functioning all of the time and sometimes silently bailing, and cloudflare randomly dropping websockets forcing a resume.
Also fixed is a bug in cluster::current_user_leave_guild
which would crash if no callback was provided to it.
There are many smaller bugfixes and quality of life improvements, for more information please don't hesitate to ask on our official discord.
We will not be releasing prebuilt windows builds until the windows version stabilises. Until then we recommend you build from source and stick to Linux builds where possible.
Thank you for using D++!
Published by braindigitalis over 3 years ago
This is the first official release of D++, the C++ Discord Library.
Please note that for the windows binary build, the function dpp::utility::exec()
and voice support are not enabled. They may be enabled on the compiled windows binary build at a future date.