Releases: serenity-rs/serenity
v0.11.4
v0.11.3
Thanks to the following for their contributions:
- @AlexisTM
- @aawilson
- @acdenisSK
- @bumblepie
- @DRuppFv
- @FallenWarrior2k
- @GnomedDev
- @kangalioo
- @Milo123459
- @mkrasnitski
- @NotNorom
- @nickelc
- @SimonZehetner
Notable changes
- Temporarily fix
GuildChannel::message_count
in a non-breaking way (@GnomedDev) - Add support for
Auto Moderation
feature (@nickelc) - Add optional min/max length fields for application command string options (@nickelc)
- Allow select menu response for modals (@AlexisTM)
- Add
app_permissions
field on interactions (@nickelc) - Enable
Invite::expires_at
field (@mkrasnitski) - Fix "missing field
discriminator
" serde error for presence updates (@nickelc) - Add webhook example (@NotNorom)
- Introduce
rustversion
dependency andbackports
module (@GnomedDev) - Add
MessageType::AutoModerationAction
enum variant (@nickelc) - Attempt to fix lifetime bug around
CustomisedHelpData
(@mkrasnitski) - Auto-impl
CacheHttp
forArc<T>
ifT
also implements it (@mkrasnitski) - Add audit log action types for scheduled events (@nickelc)
- Fill gaps in all
model::application
types (@kangalioo) - Add support for slash command localization (@kangalioo)
- Implement announcement channel following (@GnomedDev)
- Add event handler methods for scheduled events (@nickelc)
- Add methods to
Webhook
to enable direct creation (@mkrasnitski) - Consolidate
interactions
&oauth2
model types into theapplication
module (@nickelc) - Fix compile errors in builders when the
model
feature is disabled (@FallenWarrior2k)
v0.11.2
Thanks to the following for their contributions:
Added
- [model] Implement Guild Scheduled Events support (@mkrasnitski) c:e690ccd
- [model] Add initial application command permissions v2 support (@nickelc) c:bca105a
- [model] Implement
Ord
andPartialOrd
forTimestamp
(@tedtramonte) c:b1c3a62 - [model] Add new enum variant to
audit_log::Action
to represent unknown values (@nickelc) c:b2ae872 - [model] Add
SUPPRESS_EMBEDS
flag for interaction response messages (@nickelc) c:888c37f - [builder] Add function for interaction followup messages to set or unset the ephemeral flag (@nickelc) c:10d9297
- [model] Implement conversion from
Guild
toPartialGuild
(@kangalioo) c:475fc1f
Changed
- [model] Split up a few functions to minimize monomorphization-bloat (@elkowar) c:39fb310
- [misc] Adapt the library to pass the majority of
clippy::pedantic
lints (@GnomedDev) c:dc22cf2 - [utils] Strip leading "Bot " in parse_token (@kangalioo) c:0a544c6
- [model] Replace feature gated
simd-json
trait imports withjson::prelude::*
(@nickelc) c:3e454cc - [gateway] Improve binary message deserialization time by optimizing
convert_ws_message
(@MelonShooter) c:8b2326c - [gateway] Remove duplicate WS client creation for native/rustls backends (@nickelc) c:be17752
- [utils] Use
Cow
inutils/content_safe.rs
to save on allocations (@mkrasnitski) c:79a3cc8 - [misc] Use
dashmap
5.2.0 for the MSRV build job (@nickelc) c:2898af2 - [misc] Update
simd-json
to 0.4.14 (@nickelc) c:0ba01a7 - [model] Optimize guild create & delete event deserialization (@nickelc) c:47433de
- [model] Use
AttachmentType::data
inEditRole::icon
(@mkrasnitski) c:c3ad0b2 - [misc] Deny broken and private intra doc links (@nickelc) c:56293bb
- [misc] Update
.git-blame-ignore-revs
(@nickelc) c:75df53e
Fixed
- [misc] Fix wrong ID type in doc comment (@nickelc) c:e1eaeeb
- [model] Fix lifetimes on interaction response methods (@kangalioo) c:dd9d255
- [framework] Fix argument parsing when no delimiters are specified (@acdenisSK) c:628c1ea c:889540a
- [misc] Fix unused import and deny unused items (@nickelc) c:b1cc702
- [misc] Fix broken links in the readme (@nickelc) c:fe53b16
Removed
v0.11.1
This is a light release to fix compilation on https://docs.rs.
Thanks to the following for their contributions:
Changed
- [misc] Manually specify list of features for docs.rs to build (@acdenisSK) c:9f11a3f
v0.11.0
Thanks to the following for their contributions:
- [@AldanTanneo]
- [@AngelOnFira]
- [@AnnikaCodes]
- [@acdenisSK]
- [@almeidx]
- [@Bloectasy]
- [@ben-brook]
- [@Chronophylos]
- [@devtomio]
- [@drklee3]
- [@FallenWarrior2k]
- [@Gentoli]
- [@GnomedDev]
- [@gradiuscypher]
- [@HarmoGlace]
- [@hybras]
- [@JellyWX]
- [@kangalioo]
- [@Lakelezz]
- [@Licenser]
- [@MathyouMB]
- [@Milo123459]
- [@mkrasnitski]
- [@natto1784]
- [@nickelc]
- [@pascalharp]
- [@rasm47]
- [@Rstar284]
- [@some-dood]
- [@squili]
- [@TheBlackfurGuy]
- [@tylerd008]
- [@vaporox]
- [@vicky5124]
- [@xMAC94x]
- [@xfix]
Added
- [ci] Add build job to test the
native-tls
backend ([@nickelc]) [c:440f0fa] - [model] Add new command data field
guild_id
([@nickelc]) [c:4dbf3d0] - [model] Add new "Directory" channel type ([@nickelc]) [c:3b99eeb]
- [utils] Add
users
argument toutils::content_safe
([@GnomedDev]) [c:c18e889] - [model] Add attachment support to interaction responses ([@GnomedDev]) [c:dc400de]
- [model] Add new audit change variant for
image_hash
key ([@nickelc]) [c:985212a] - [misc] Add
.git-blame-ignore-revs
file ([@nickelc]) [c:3a3e399] - [builder] Add function to
CreateInteractionResponseData
to set or unset the ephemeral flag ([@pascalharp]) [c:283af98] - [model] Add method to create
model::Timestamp
from a UNIX timestamp ([@nickelc]) [c:66f8be7] - [model] Add new message flag
FAILED_TO_MENTION_SOME_ROLES_IN_THREAD
([@nickelc]) [c:a75ac69] - [model] Add missing stuff for
GatewayIntents
([@vaporox]) [c:14fc9c6] - [model] Add shorthand for checking the
GUILD_MESSAGES
intent bitflag ([@Bloectasy]) [c:6f28486] - [model] Add
Webhook::get_message
for retrieving messages sent by a webhook ([@GnomedDev]) [c:a2b388f] - [builder/model] Enable compilation of builder/interaction code without a backend ([@FallenWarrior2k]) [c:4cd6caa]
- [http] Support more options for querying invites ([@AnnikaCodes]) [c:c1ef6d9]
- [builder] Add components support to ExecuteWebhook and EditWebhookMessage ([@mkrasnitski]) [c:cb7f211]
- [http/gateway] Add support for v10 of Discord's HTTP API and Gateway ([@squili]) [c:5c6c72a]
- [model] Add
GenericId
snowflake type for unspecific entities in audit logs ([@nickelc]) [c:146b1ac] - [model] Add support for the
Attachment
option type ([@JellyWX]) [c:9866a85] - [model] Derive
Copy
andClone
traits for the audit action enums ([@nickelc]) [c:dfac5d7] - [model] Provide parsing of RFC 3339 strings for
model::Timestamp
([@nickelc]) [c:3aca5ca] - [builder] Add convenient methods for creating message components ([@nickelc]) [c:6476ed1]
- [model] Derive
Default
trait for all bitflags types ([@nickelc]) [c:92de3da] - [builder] Add support for
allowed_mentions
in theExecuteWebhook
builder ([@mkrasnitski]) [c:71583c3] - [model] Add support for
locale
andguild_locale
fields in interactions ([@Rstar284]) [c:b4d0765] - [model] Add
data
andfilename
methods toAttachmentType
([@mkrasnitski]) [c:ad9e987] - [builder] Support more integer types for min_value / max_value ([@kangalioo]) [c:0da4ab5]
- [model] Add a common constructor for the different
ActivityType
s ([@nickelc]) [c:b4e4add] - [json] Expose more types and functions from
serde_json
andsimd-json
([@vicky5124]) [c:f61fae4] - [client] Add cache update calls to dispatched thread events ([@AngelOnFira]) [c:7e701dc]
- [model] Support application webhooks ([@vicky5124]) [c:2c73618]
- [model] Add
USE_EXTERNAL_STICKERS
permission and audit log support for stickers ([@drklee3]) [c:1fbf1e9] - [http] Allow sending files when creating and editing followup messages ([@acdenisSK]) [c:147ed03]
- [model/http] Add support for sticker packs, guild stickers, and sticker routes ([@drklee3]) [c:a88673f]
- [http] Add audit log reason support to most HTTP endpoints ([@kangalioo]) [c:bec660d]
- [http] Integrate attachments into the
Request
system ([@drklee3]) [c:57582d2] - [http] Implement optional pagination for
Http::get_guilds
([@tylerd008]) [c:06d101b] - [model] Add support for adding attachments in message edits ([@kangalioo]) [c:27bf301]
- [framework] Add the name of the command to the
Dispatch
error hook ([@kangalioo]) [c:c2130a8] - [misc] Add support for simd-json via a feature flag ([@Licenser]) [c:afb3c37]
- [model] Add basic support for forum channels ([@kangalioo] [@TheBlackfurGuy]) [c:35ee68b]
- [model] Add missing method for converting
Interaction
toModalSubmitInteraction
([@gradiuscypher]) [c:e187f73] - [builder] Add support to set a single child builder for several parent builders ([@natto1784]) [c:91ee596]
- [collector] Add modal submit collector ([@pascalharp]) [c:e5073ae]
- [client] Add a method to pass an
EventHandler
in anArc
directly to theClient
([@squili]) [c:16c2089] - [model] Add Modal Interactions and Input Text ([@pascalharp]) [c:92fe5bb]
- [builder] Add
set_components
toEditMessage
([@Chronophylos]) [c:57c0826] - [model] Add
message_id
field to audit log options for pinned/unpinned messages ([@nickelc]) [c:3a64da1] - [model] Add
add_member
toGuild
andGuildId
([@vaporox]) [c:82c2415] - [builder] Add support for
allowed_mentions
inEditMessage
([@acdenisSK]) [c:86dbaee]
Changed
- [utils] Use
str::split_once
for parsing webhooks and user tags ([@mkrasnitski]) [c:fbfe0cf] - [utils] Refactor and fix bugs in
utils::content_safe
([@mkrasnitski]) [c:32cb31c] - [model] Move
misc::Mention{able}
into their ownmodel/mention
module ([@mkrasnitski]) [c:f5458f1] - [client] Require setting gateway intents explicitly ([@kangalioo]) [c:d245e67]
- [model] Update methods and properties of
Permissions
([@devtomio]) [c:10410a2] - [http] Pass parsed token to
Ratelimiter::new()
([@vaporox]) [c:f4f310d] - [http] Simplify constructor functions for
Http
([@vaporox]) [c:f8bc937] - [model] Remove unnecessary
CacheHttp
requirements ([@vaporox]) [c:a36353b] - [model] Update documentation around webhook components ([@mkrasnitski]) [c:6028072]
- [misc] Format imports with module granularity ([@nickelc]) [c:4c97810]
- [gateway] Set
Http::application_id
in ready event handler ([@vaporox]) [c:c5f9cbe] - [misc] Switch to using URL over URI ([@vaporox]) [c:81a9bc2]
- [model] Deserialize the interaction data's
target_id
unconditionally ([@nickelc]) [c:c5dc80b] - [model] Reduce size of the
ResolvedTarget
enum variants ([@nickelc]) [c:404ab03] - [model] Change matches where the match expression is a bool to be more idiomatic ([@nickelc]) [c:977946f]
- [cache] Place temporary caching functionality under a separate feature flag ([@acdenisSK]) [c:d03809f]
- [misc] Make chrono a default optional feature ([@xfix]) [c:e69bcd3]
- [model] Clean up macro usage in
model::misc
([@mkrasnitski]) [c:5a0e8f4] - [model] Alter
Guild::member_named
's implementation to useutils::parse_user_tag
([@mkrasnitski]) [c:8c9670f] - [utils] Make
ArgumentConvert
compatible without thecache
feature ([@kangalioo]) [c:cdaa70c] - [model] Document that the
MESSAGE_CONTENT
intent is now privileged ([@kangalioo]) [c:63a1000] - [client] Use
Option
in more places in theClientBuilder
([@vaporox]) [c:8bca94a] - [misc] Simplify the hidden preparation code in doc examples ([@nickelc]) [c:d67a21d]
- [model] Remove kind check for sending webhook components ([@GnomedDev]) [c:a292c2f]
- [model] Remove the
unstable_discord_api
feature guard from the application commands ([@nickelc]) [c:1ce8060] - [model] Turn the resolved target of the command interaction data into a method ([@nickelc]) [c:0036620]
- [model] Clean up API around Mention/Mentionable ([@mkrasnitski]) [c:28e6732]
- [examples] Use the new builder method for ephemeral messages in example ([@nickelc]) [c:aada1b9]
- [utils] Replace custom trait with
Into<Content>
([@mkrasnitski]) [c:c9e4f27] - [model] Make the non-cache version of the
shard_id
methods synchronous ([@nickelc]) [c:787e7d9] - [model] Remove manual deserialization of
ApplicationCommandInteractionDataResolved
([@nickelc]) [c:56cab22] - [ci] Pin the Rust version for the build jobs with the nightly toolchain ([@nickelc]) [c:36eac42]
- [model] Use
ApplicationFlags
bitflags in the application info structs ([@nickelc]) [c:33d402f] - [misc] Unify
std::fmt
imports andDisplay
&Debug
trait implementations ([@nickelc]) [c:7a8f2cf] - [misc] Update
parking_lot
to 0.12 ([@xfix]) [c:d5b5970] - [misc] Update
async-tungstenite
to 0.17 ([@nickelc]) [c:4ff348e] - [misc] Increase MSRV to 1.53 ([@nickelc]) [c:87bb9a8]
- [misc] Put
tokio::task::Builder
usage behind a feature flag ([@Milo123459]) [c:9624af0] - [cache] Temporarily cache users and channels in the
to_user
andto_channel
functions ([@Milo123459]) [c:1be625b] - [model] Rename the enum sub types of the audit log actions ([@nickelc]) [c:56c40fc]
- [model] Make the
model::guild::audit_log
module public ([@nickelc]) [c:7d99bcb] - [collector] Make collector builders synchronous ([@vaporox]) [c:d640238]
- [model] Change the data mapping of
AuditLogs
([@nickelc]) [c:7823b6e] - [model] Move the audit log serde modules into a separate
utils
module ([@nickelc]) [c:5a4fd2a] - [model] Change the audit log
Change
struct into an enum with the actual types ([@nickelc]) [c:594a00d] - [model] Rework the audit log serde module for optional integer strings ([@nickelc]) [c:74bffd0]
- [misc] Update
dashmap
to v5.1.0 ([@acdenisSK] [@vicky5124] [@some-dood]) [c:6298f67] [c:342fdbb] [c:28e0311] - [model] Replace deserialization helper functions with the required types ([@nickelc]) [c:938936e]
- [model] Implement
serde
traits for the auditAction
enum directly ([@nickelc]) [c:0f77d31] - [http] Refactor
HttpBuilder
to avoidunwrap
calls ([@vaporox]) [c:89499b2] - [utils] Move token parse and validate functions into the
utils::token
module ([@nickelc]) [c:97ea22f] - [model] Make certain e...
v0.10.10
Thanks to the following for their contributions:
- @acdenisSK
- @AldanTanneo
- @almeidx
- @Atakku
- @drklee3
- @Friz64
- @HarmoGlace
- @JellyWX
- @JohnTheCoolingFan
- @KaDiWa4
- @kafinsalim
- @kangalioo
- @kristopherbullinger
- @lhjt
- @lo48576
- @mbenoukaiss
- @mdonoughe
- @Milo123459
- @mkrasnitski
- @nickelc
- @OverHash
- @pascalharp
- @Splingush
- @Squili
- @Th3-M4jor
- @Vaimer9
- @vicky5124
- @woongzeyi
Added
- [misc] Implement missing fields, methods, endpoints, and other values that are documented (@vicky5124) c:be5cb54
- [builder] Add a
timeout
doc alias to various methods (@Milo123459) c:1d05a1e - [builder] Add support for enabling slowmode on thread creation (@nickelc) c:69896e0
- [ci] Add GitHub Actions workflow for labeling pull requests (@nickelc) c:93b66d0
- [model] Add
banner
andaccent_color
fields toUser
(@drklee3) c:9e10d54 - [client] Add
get_*
methods for manyClientBuilder
fields (@kangalioo) c:90dae53 - [model] Add support for member timeout (@kristopherbullinger) [c:944cd54]
- [utils] Add
get_webhook_from_url
(@mkrasnitski) [c:b026f00] [c:6bd2f74] [c:7b89775] - [examples] Add an example for message components (@pascalharp) [c:ee00e92]
- [examples] Add step for installing
cargo make
to the Running Examples section (@kafinsalim) [c:47a297b] - [model] Add support for
min_value
andmax_value
to slash command options (@kangalioo) [c:cfd518e] - [model] Add
SUPPRESS_JOIN_NOTIFICATION_REPLIES
system channel flag (@almeidx) [c:6121fd0] - [model] Add support for Autocomplete interactions (@Th3-M4jor) [c:c322657]
- [misc] Format code in documentation comments (@acdenisSK) [c:5b84896]
- [client] Add a method to
ClientBuilder
for retrieving the current token (@kangalioo) [c:6f87d25] - [utils] Add Discord's new branding, CSS & role colours (@nickelc) [c:c0463c0]
- [misc] Add
poise
to the "Projects extending Serenity" section (@vicky5124) [c:bfb5f13] - [model] Add channel types to application command options (@vicky5124) [c:5a700f7]
- [model] Add new audit log models for
STAGE_INSTANCE
,STICKER
, andTHREAD
(@woongzeyi) [c:0bc3ce0] - [model] Add
defer
helper methods for deferring interactions (@Milo123459) [c:d50628e] - [examples] Add a database example using SQLite (@kangalioo) [c:02a5e15]
- [model] Add support for editing threads (@lhjt) [c:afeb76e]
- [ci] Use a better cache designed for Rust software in CI (@Milo123459) [c:c74162c]
- [examples] Add a simple web dashboard example (@vicky5124) [c:6c5aa4d]
- [model] Add new invite fields (@vicky5124) [c:cf4e216]
- [model] Add
ApplicationCommand::version
field (@HarmoGlace) [c:c85d44a] - [http] Add the guild active threads endpoint (@HarmoGlace) [c:93d6ab8]
- [builder] Implement
From<Datetime>
forTimestamp
(@drklee3) [c:b905554] - [command_attr] Add undocumented
#[required_permissions(perms)]
requirements (@woongzeyi) [c:f9de6c5] - [http] Add paths to HTTP errors (@Splingush) [c:2da46a8]
- [builder] Add a
set_component
method to respective builders (@JellyWX) [c:99eba2b] - [model] Support context menus (@HarmoGlace) [c:e87293e]
- [model] Add
ContextMenuCommand
message type (@HarmoGlace) [c:2a571d3]
Changed
- [model] Mark the
model::guild::GuildStatus
enum as deprecated (@nickelc) [c:bd1342e] - [model] Suppress deprecation warning for the use of
Region
(@nickelc) [c:2dcb9b3] - [builder] Deprecate
slow_mode_rate
/rate_limit
methods and field (@nickelc) [c:5c1e31e] - [builder] Update the notice about the max value for the "per user" ratelimit (@nickelc) [c:32f4430]
- [model] Mark the
model::guild::Region
enum as deprecated (@nickelc) [c:6d476cf] - [model] Improve the download of
Attachment
s by callingBytes::to_vec
(@nickelc) [c:f630f32] - [examples] Refactor examples 03 and 13 to better use the builder pattern (@mkrasnitski) [c:34c2f22]
- [examples] Refactor example 09 to more idiomatically use the builder pattern (@mkrasnitski) [c:4f7dad7]
- [misc] Increase MSRV to 1.51 (@acdenisSK) [c:04fc541]
- [model] Use the
write_all
variant in theAttachment::download
example (@acdenisSK) [c:a8b4e2f] - [misc] Use
Formatter::write_str
directly instead ofwriteln
for string literals (@nickelc) [c:6a0106c] - [model] Use the permission flags for the
permissions::PRESET_*
constants (@nickelc) [c:fc7c76a] - [model] Use bitshift notation for the values of Discord's bit flags (@nickelc) [c:57a2e4d]
- [model] Make the
u64
value ofAttachmentId
s public (@nickelc) [c:5379d3e] - [model] Simplify the
*Id::created_at
method by usingUtc.timestamp_millis
(@nickelc) [c:1977e9f] - [misc] Set
rustfmt
edition to match library edition (@mkrasnitski) [c:4f2a73b] - [misc] Remove old version of
time
from dependency tree (@KaDiWa4) [c:d9c8980] - [framework] Change
Configuration::prefix
to accept types that implementToString
(@mkrasnitski) [c:738465f] - [gateway] Remove guilds from cache if they were removed between a disconnect and a ready (@Squili) [c:b21f053]
- [internal] Put the internal
tokio
module behindtokio*
features (@nickelc) [c:921ff6f] - [examples] Use
ClientBuilder::type_map_insert
in examples where it makes sense (@nickelc) [c:c3358cf] - [examples] Simplify
tracing_subscriber
initialization in the examples (@nickelc) [c:46f7608] - [ci] Specify MSRV for clippy and use stable toolchain for the lint job (@nickelc) [c:bade6e5]
- [misc] Replace instances of
tokio::spawn
withspawn_named
(@Milo123459 @acdenisSK) [c:5f81d4a] [c:247c073] [c:b2197db] - [voice] Replace some instances of
match
with thematches!
macro (@Milo123459) [c:6987175] - [utils] Fall back to
Member
parsing ifUser
is not in the cache inArgumentConvert
(@kangalioo) [c:6085aad] - [model] Define
Sticker::pack_id
as optional (@Atakku) [c:cf040cb] - [model] Guarantee the
MessageComponentInteraction::message
to not be partial (@HarmoGlace) [c:f915fee]
Fixed
- [examples] Fix a typo in example 12 (@Vaimer9) [c:38b11da]
- [model] Fix documentation typo in
Message::crosspost
(@OverHash) [c:b180f21] - [model] Fix non-idiomatic comment (@nickelc) [c:f70112d]
- [model] Fix panic in
ReactionType
deserialization (@nickelc) [c:fe946df] - [model] Fix faulty (de)serialization of
InteractionApplicationCommandDataFlags
(@nickelc) [c:62b9c84] - [model] Fix the example for
permissions::PRESET_GENERAL
(@nickelc) [c:707697e] - [command_attr] Fix
#[help]
to generate its variables without an extra underscore (@JohnTheCoolingFan) [c:df47df1] - [model] Fix
Permissions
bitflags (@AldanTanneo) [c:0acabdf] - [misc] Make the library compilable with minimal dependency versions (@lo48576) [c:37e33bd]
- [model] Perform owner check when calculating permissions for a member (@acdenisSK) [c:ccf0d5b]
- [misc] Clean up Clippy errors (@mdonoughe) [c:2eeb336]
- [framework] Handle Unicode double-quote characters when parsing arguments (@acdenisSK) [c:9bfc1e7]
- [builder] Fix permission overwrites by sending Discord the correct overwrite types (@woongzeyi) [c:f36b4c1]
- [misc] Fix compilation without default features (@nickelc) [c:0611e2c]
- [framework] Check for discrepancies in default commands of groups (@acdenisSK) [c:cfbb7b3]
- [misc] Apply fixes by clippy (@Milo123459) [c:7e1a64e]
- [command_attr] Fix support for raw identifiers in
command_attr
's macros (@Friz64) [c:5b7a23c] - [utils] Use the correct method for formatting an emoji in
MessageBuilder
documentation (@mbenoukaiss) [c:eb29760] - [model] Make
CreateApplicationCommandPermissions
public and fix documentation links (@Squili) [c:7392f3f]
Removed
v0.10.9
Thanks to the following for their contributions:
- @acdenisSK
- @adumbidiot
- @Dinnerbone
- @drklee3
- @HarmoGlace
- @kangalioo
- @KangarooCoder
- @kotx
- @MelonShooter
- @rasm47
- @sbrocket
- @Splingush
- @squili
- @vicky5124
Added
- [model] Add model methods for creating public and private threads (@acdenisSK) c:dbf4d68
- [client/cache] Add support for defining cache settings in the
Client
builder. (@Splingush) c:ea8ec29 - [builder] Add 'number' type to
ApplicationCommandOption
(@Splingush) c:312ae16 - [collector] Add a generic collector for events (@sbrocket) c:3117f1d
- [model] Mention the type of event that failed to deserialise (@acdenisSK) c:1d446fe
- [model] Add methods to
Event
to get related user, guild, channel, and message IDs (@sbrocket) c:0aa1a6c - [model] Derive
PartialEq
,Eq
,PartialOrd
,Ord
, andHash
forUserPublicFlags
(@KangarooCoder) c:e7ba5bf - [cache] Add method
Cache::channel_messages_field
(@kangalioo) c:ca02662 - [http/builder/model] Add support for generation of invite links with custom OAuth2 scopes (@vicky5124) c:50cd285
- [model] Switch to API v9 and add support for threads (@HarmoGlace) c:4c53b48
- [model] Add field
Guild::stage_instances
(@HarmoGlace) c:13cf056 - [model] Support stage instances (@HarmoGlace) c:3e6d131
- [model] Add support for guild search members endpoint (@drklee3) c:09b523d
- [model] Add avatar field to member update event (@drklee3) c:4f488f8
- [http] Add support for fetching the current user's connections (@Dinnerbone) c:6a400f9
- [http] Allow passing bearer tokens to
Http::new_with_token
(@squili) c:537753b - [model] Add support for per guild avatars (@drklee3) c:eb09d13
- [builder] Support sending multiple embeds in a message (@drklee3) c:e215c9d
- [model] Add support to (Partial)Guild::nsfw_level (@HarmoGlace) c:59ab451
Changed
- [utils] Redesign the
Parse
trait and add support for most applicable model types (@kangalioo) c:eb14984 - [http] Include Discord's error explanations in
http::Error
'sDisplay
implementation (@kangalioo) c:ce97f9e - [model] Separate interaction stuctures per kind (@HarmoGlace) c:2b2006c
- [misc] Move workspace up to repo root, instead of under examples (@sbrocket) c:46ace1f
- [model] Clarify slash commands implementation (@HarmoGlace) c:ae09e57
- [builder] Improve implementations of embed methods on
Message
builders (@kangalioo) c:0be7d1a - [model] Guarantee the
Interaction::user
field (@HarmoGlace) c:9d18334
Fixed
- [model] Make
GuildChannel::send_message
work in threads (@kangalioo) c:fb203ae - [model] Fix broken
GuildChannel
collector functionality (@kotx) c:413e3ef - [model] Handle flags in
MessageUpdateEvent
(@sbrocket) c:6192107 - [builder] Clear the flag when passing
false
toEditMessage::suppress_embeds
(@sbrocket) c:47b9afb - [builder] Fix
cliend_id
typo (@vicky5124) c:5cb9cb9 - [misc] Apply automatic clippy fixes (@sbrocket) c:988bfcf
- [model] Default certain select menu fields that might not be always present (@HarmoGlace) c:87564a4
- [collector] Lazily clone structs only when collector filters are actually matched (@sbrocket) c:695bbef
- [misc] Replace unnecessary guild cloning with cheaper alternatives (@MelonShooter) c:fb83066
- [misc] Fix and/or remove broken links in documentation comments (@rasm47) c:504f5a4
- [model] Skip serializating
Interaction
'sOption
fields if they areNone
(@sbrocket) c:c21f052 - [collector] Remove collectors that have closed receivers (@drklee3) c:d3cf53a
- [model] Update all cached guild fields on guild update (@drklee3) c:7a7e8cc
- [client/http] Fix validation error in the last step of
parse_token
(@adumbidiot) c:3fba372 - [builder] Fix
CreateSelectMenuOption
'sdescription
method (@HarmoGlace) c:cb30408 - [builder] Re-export forgotten builder types for select menus (@acdenisSK) c:5d50c56
v0.10.8
This is a release primarily to publish support for slash command buttons and dropdowns, but includes improvements and fixes for other things. For instance:
CacheHttp
implementation forHttp
.- Consistency between
Guild
andPartialGuild
by implementing missing methods. - Fix the ability to mention other users when utilising
Message::reply
(andMessage::reply_ping
). - More accurate token checks.
Thanks to the following for their contributions:
- @acdenisSK
- @drklee3
- @Gabriel-Paulucci
- @HarmoGlace
- @JellyWX
- @kangalioo
- @Lakelezz
- @Max2408
- @NotNorom
- @TehPers
- @Unoqwy
- @vicky5124
Added
- [http] Implement
CacheHttp
forHttp
(@acdenisSK) c:5c9c194 - [model/builder/collector] Support components (buttons and dropdowns) (@HarmoGlace) c:47a0a14
- [model] Add support for
Activity
buttons (@HarmoGlace) c:2635f7b - [builder] Add
set_embed
toEditMessage
(@Gabriel-Paulucci) c:073c22f - [model] Add a
roles
method on GuildId for retrieving the guild's roles (@JellyWX) c:38a39f5 - [model] Add new user flag for Discord Certified Moderator (@Max2408) c:c60d504
- [model] Add a few missing methods for (Partial)Guild (@NotNorom) c:7c50e70
Changed
- [client/gateway] Improve documentation of gateway intents (@Lakelezz) c:b03d14b
- [misc] Update Github/Gitlab username in README and CHANGELOG for vicky5124 (@vicky5124) c:7b95b41
- [client] Implement stricter
validate_token
checks (@kangalioo) c:132fd68
Fixed
- [builder] Fix application command permission builder closures (@HarmoGlace) c:1c7e98b
- [misc] Prevent CI clippy errors (@Unoqwy) c:a788fe2
- [client] Remove early return when handling collector filters (@drklee3) c:cbfd92b
- [model] Fix embeds in interaction follow-up messages (@TehPers) c:f7907ed
- [client] Check existing
application_id
ofHttp
when creating aClient
(@drklee3) c:1744883 - [model] Fix being unable to mention additional users with
Message::reply(_ping)
(@kangalioo) c:22d2276 - [http] Fix paths in
DiscordJsonError
messages (@HarmoGlace) c:97c01ee - [model] Apply the same fix from #1330 for
create_webhook_with_avatar
(@JellyWX) c:d390ca1
v0.10.7
This is an amendment release to revert a breaking change that was overlooked when releasing 0.10.6
. The removed-then-reverted code no longer works because of a breaking change by Discord themselves in version 8 of their API, but regardless, minor versions (y
in 0.x.y
) cannot include breaking changes for parts of Serenity's stable API. To prevent users from depending on 0.10.6
, it has been yanked from https://crates.io.
Thanks to the following for their contributions:
Fixed
- [model/http] Fix GuildEmbed removal to avoid breaking change (@HarmoGlace) c:822406e
v0.10.6
This release adds a plethora of additions and changes (and a few bugfixes), mainly improving conformity to Discord's API. Speaking of which, special thanks goes to @HarmoGlace, who, with his hard work, generously added and improved support to features of the Discord API such as Slash Commands and other things.
Among the most important highlights of this release are:
- Full Slash Commands support.
- Support for new fields in model structures.
- Deprecation of the
region
field for theGuild
andPartialGuild
structures. The region is now set per voice channel. - HTTP Proxy support. You can now route all HTTP requests through a proxy like Twilight's HTTP proxy.
- Model type robustness. Types that designate the type/kind of a model (like a channel) will now default to the newly introduced
Unknown
variant whenever Discord adds a type/kind. This prevents runtime errors resulting from deserialisation of model types due to unrecognised types/kinds. - Better error messages for
#[command]
,#[help]
, and#[check]
functions. With a little hint, the compiler should report more detailed and accurate error messages for the return type of the functions. - Support for the "Watching..." activity.
- Better HTTP errors. Since version 8 of Discord's API, Discord provides more thorough error messages for invalid HTTP requests, and with this release, those error messages can now be displayed when printing
serenity::http::DiscordJsonError
.
Thanks to the following for their contributions:
- @acdenisSK
- @drklee3
- @HarmoGlace
- @kangalioo
- @Lakelezz
- @legendofmiracles
- @mTvare6
- @nickelc
- @nitsuga5124
- @Sei4or
- @sudomann
- @zacck
Added
- [model/gateway/client] Support command create, update, and delete events (@HarmoGlace) c:aa9748e
- [model] Support the
Team::name
field (@HarmoGlace) c:07f15ad - [model] Support getting interaction response, editing/deleting followup and flags (@HarmoGlace) c:59bc14c
- [model] Support mentionable application command option type (@HarmoGlace) c:a710113
- [builder] Support editing voice channel region and video quality mode (@HarmoGlace) c:7983a8e
- [model] Add support for all guild fields (welcome screen, rules channel, nsfw, etc.) (@HarmoGlace) c:9b8a31a
- [http] Support more detailed HTTP errors from Discord (@HarmoGlace) c:f88355b
- [model] Support member field on message reaction add event (@HarmoGlace) c:879f193
- [model] Support all interactions features (@HarmoGlace) c:d6e86df
- [model] Add role tags support (@HarmoGlace) c:7b25308
- [http] Add Discord API proxy support (@drklee3) c:badb448
- [model] Handle voice status (deaf, mute) in the
MemberUpdate
event (@nitsuga5124) c:3a6eb58 - [model] Add the
content_type
field toAttachment
(@nitsuga5124) c:1b17732 - [model] Add the invite reminder system message and flag (@nitsuga5124) c:f238a46
- [model] Add watching activity (@nitsuga5124) c:47d9d1c
- [model] Adds support to message crossposting (@HarmoGlace) c:25ecaa6
- [builder] Add a space in the example for
CreateEmbed::timestamp
(@legendofmiracles) c:d0b404d
Changed
- [model] Use
Permissions
instead ofString
for thePartialMember::permissions
field (@HarmoGlace) c:3b662e0 - [misc] Update link to Lavalink to account for the author's name change (@mTvare6) c:7315d78
- [model] Default to the
Unknown
variant for new model types (@acdenisSK) c:cdbd14b - [misc] Introduce intradoc-links in a lot of places (@kangalioo) c:b2565da
- [misc] Update Discord guild badge (@Lakelezz) c:5e5feea
- [framework] Type check the return type of the body of async functions (@acdenisSK) c:fa0bdd8
- [examples] Rephrase documentation of
before
for accuracy in the framework example (@sudomann) c:392a534 - [model] Update the documentation for
Message::mention_channels
with constraints (@zacck) c:8ab0800
Fixed
- [model] Fix message link when Discord does not provide
guild_id
(@HarmoGlace) c:01f70db - [model] Fix webhook creation on news channel (@HarmoGlace) c:f34c7bb
- [misc] Fix clippy warnings (@nickelc) c:6f30b0e
- [http] Only deserialise the
DiscordJsonError::errors
field if present (@HarmoGlace) c:bab4d78 - [framework] Consider group restrictions when displaying command availability (@acdenisSK) c:d508c35
- [model] Silence warnings related to the deprecation of
(Partial)Guild::region
(@acdenisSK) c:b995482 - [framework/client] Avoid cloning messages if the framework feature is disabled (@acdenisSK) c:c7caedd
- [client] Silence
dead_code
lint forClientBuilder::token
(@acdenisSK) c:8e13e74 - [misc] Remove debug tool (@HarmoGlace) c:cfe5f01
- [model] Fix misspelling of custom in
ActivityType
's documentation (@Sei4or) c:dca5c45
Removed
- [builder] Remove useless
mut
modifiers in builder code (@acdenisSK) c:9334af5