github serenity-rs/serenity v0.1.4
OOP and general stuff

latest releases: v0.12.1, v0.12.0, v0.12.0-rc2...
7 years ago

This is a general release for pretty much everything, from new features to
bugfixes to a switch to a more OOP style. The current minimum supported version
is rustc 1.13+.

The next release will be v0.2.0, which will feature serde codegen support along
with a rewrite of the framework. It will be a more modularized version of the
library. v0.2.0 will require rustc 1.15+, due to the stabilization of Macros
1.1.

Thanks to the following for contributions this release:

Two of the major highlights of this release are that the broken pipe issue has
been fixed, and the library is more OOP now and therefore no longer relies on
the Context to get stuff done. The methods feature flag has been removed.

Added

  • the voice feature no longer requires the cache feature to be enabled
    c:7b45f16
  • the framework feature no longer requires the cache feature to be enabled
    c:86cd00f
  • Guild, InviteGuild, and PartialGuild now have splash_url methods
    c:d58c544
  • Expose Message::webhook_id for messages sent via webhooks (@fwrs)
    c:a2cbeb6
  • Framework: add option to ignore webhooks or DMs (@fwrs) c:8e2c052
  • Added documentation for creating embed timestamps (@foxbot) c:66546d3
  • Allow time::Tm to be passed into the embed timestamp field, in addition to
    a direct string c:b001234
  • Add Client::on_message() example (@indiv0) c:bcb70e8
  • Support webp/gif avatars/icons in URL methods c:ab778f8
  • Update current user presence in cache on set c:5b275fc
  • Add CurrentUser/User::static_avatar_url() methods to generate webp URLs
    c:c36841d
  • Command (batch) alias support (@fwrs) c:f96b6cc
  • Command example field for help command (@fwrs) c:f96b6cc
  • Added "Meibi Pink" to the Colour struct (@hsiW) c:2cb607d
  • Register support for 4011 code (too many shards) (@SunDwarf) c:93f3c60
  • Added "Rohrkatze Blue" to the Colour struct (@bippum) c:345e140
  • Add User::default_avatar_url() c:e85e901
  • Add Message::content_safe() to avoid @everyone/@heres (@fwrs)
    c:e5a83dd
  • Add Member::distinct(), User::distinct() (@fwrs) c:e5a83dd
  • Document that messages can't be older than 14 days when bulk deleting
    (@fwrs) c:0a2f5ab
  • Add shard latency tracking (stolen borrowed from brayzure/Eris)
    c:096b0f5
  • Add guild chunking c:3ca7ad9

Fixes

  • User::avatar_url no longer mentions the user in the generated URL
    c:0708ccf
  • Framework: owners_only check now functions only if the author of a message
    is an owner (@fwrs) c:6355288
  • Framework: fix command cooldown timer (would always say to wait i64::MAX
    seconds) c:fafa363
  • Framework: the before closure is now properly run when a message is sent by
    the owner c:760a47a
  • CurrentApplicationInfo now properly decodes due to flags no longer being
    sent c:2a743ce
  • Fix Message::delete() permission check c:4229034
  • Framework: properly split messages on character boundary limits; aka thanks
    Unicode c:c01f238
  • Remove need to import Context/Message in command macros (@acdenisSK)
    c:abd22d2
  • Fix a ton of gateway stuff [c:94fc85b], c:f894cfd, c:f894cfd
  • Specify command! macro signature as returning std::result::Result
    c:e9aae9c
  • Fix dependency description in example 06 (@DeltaEvo) c:92309b2
  • Return a User from rest::get_user -- not a CurrentUser c:f57a187
  • Fix shards always booting at index 0 c:83b29d5
  • Wait 5 seconds between shard boots to avoid session invalidations c:fb4d411
  • Use CDN for default avatars c:69ec62a
  • Fix Resumed event payload decoding c:c2e8b69
  • Fix CurrentApplicationInfo decoding without rpc_origins c:38db32e
  • Reboot shard on broken pipe; fixes a lot of gateway problems c:76f9095
  • Make rest::execute_webhook be a POST c:c050c59

Changed

  • Framework: argument number is now displayed on parsing error (@fwrs)
    c:fb07751
  • Id display formatters use the direct u64 instead of mentioning;
    format!("{}", UserId(7)) will format into "7" instead of "<@7>"
    c:933ee89
  • Default the framework's use_quotes for quote parsing to false (was true)
    c:38a484d
  • The CreateEmbed builder now has direct image and thumbnail methods
    instead of one-method builders c:68c473d
  • Accept u64 shard counts to allow using more than 255 shards (instead of
    u8s) c:ada07fa
  • Remove user logout endpoint c:70bf22a
  • Don't abuse unicode for message content sanitization (@fwrs) c:2b237e7
  • Change Colour struct to be a tuplestruct c:a8acd61
  • Make a single POST on guild role create c:147cf01
  • Switch to a mostly-fully OOP approach c:651c618
  • Rename webhooks methods to get_webhooks
    (eg: GuildChannel::webhooks() --> GuildChannel::get_webhooks())
    c:e8a9086
  • Make Guild::create_channel and related functions return a GuildChannel
    c:5918d01

Misc.

  • Cleaned up YAML definition layouts c:00fb61b
  • Gateway identify compression code is now simplified c:2416813
  • Gateway Event decoders are now abstracted to individual struct implementations
    c:5fe6a39
  • Simplify Role's' Ord impl (@emoticon) c:6a887b2
  • Slightly simplify Shard::set_presence c:5c40e85
  • Rename repo references from serenity.rs to serenity (@fwrs) c:3348178
  • Simplify Reaction::delete() c:1594961
  • Abstract large threshold number to a constant c:f3f74ce
  • Avoid a needless string clone on login c:d3389be
  • Avoid a lot of Arc/Message/RwLock clones c:8c5ee70

Don't miss a new serenity release

NewReleases is sending notifications on new releases.