Skip to content

0.6.0

Choose a tag to compare

@jchristgit jchristgit released this 01 Jun 21:30
· 738 commits to master since this release
v0.6.0
60541c2

nostrum_06_cropped

Welcome to nostrum 0.6.0, bringing you message content intents, API v10, voice
improvements, new permissions, and more!

A huge thanks to @Th3-M4jor, @BrandtHill and @daskycodes for their contributions
to this release!

Breaking changes

  • If your bot relies on message content, you will need to add :message_content
    in your :gateway_intents configuration setting.
  • Voice listening now automatically parses RTP and Opus. You can pass false as
    the third argument to listen/2-3 to reuse the previous behaviour.
  • The :manage_emojis permission was renamed to :manage_emojis_and_stickers

Functionality

  • API v10
    • Added the :message_content intent
    • Added the following permissions:
      • Guild
        • :view_guild_insights
        • :use_application_commands
        • :moderate_members
      • Text
        • :use_external_stickers
      • Voice
        • :stream
        • :request_to_speak
        • :manage_events
        • :use_embedded_activities
  • Interactions
    • Add the :locale and :guild_locale fields
  • Voice
    • Add asynchronous listening to voice packet events via
      Nostrum.Voice.start_listen_async/1
    • Add a ssrc map (see t:Nostrum.Voice.VoiceWSState.ssrc_map/0 and
      Nostrum.Voice.get_ssrc_map/1 for details)
    • Automatic parsing of RTP and Opus (see breaking changes above)
    • Add a function to interleave silence within spaced RTP packets (see
      Nostrum.Voice.pad_opus/1 for details)
    • Track the last played URL for a guild, see Nostrum.Voice.get_current_url/1
    • Add plenty of types
  • Caching
    • Add a NoOp guild cache for effectively disabling the guild cache
  • Garbage collect ratelimiter buckets that have a reset time more than 1 hour
    ago
  • Add Nostrum.Token for verifying Discord Bot tokens
  • Rework message handling with attachments (the multipart-generating code)
  • Allow mime version 1 and 2

Bugfixes

  • Voice
    • Fix a bug with generating ogg pages with incorrect page_segments value
    • Properly skip over RTP header extension
    • Safely close ports on teardown
    • Fix bug where playing new audio immediately after stopping one would
      sometimes result in rogue watchdog timer cancelling new audio
  • Fix ratelimiting of reaction and webhook API endpoints
  • Fix check_token/1 to work with newer token formats
  • Fix Message.to_url/1 breaking on numeric IDs
  • Fix an improper call to Util.cast in the Integration and
    Integration.Application structs
  • Handle unexpected nofin responses in the ratelimiter. Please report these
    cases

Documentation

  • Document required :message_content intent if relying on content for e.g.
    commands
  • Update the audio player example to use application commands
  • Correct a few typos in the Api module