Changelog.md
<!--
# @title Changelog
-->
# Changelog
## v0.20
### v0.20.0
- Update!: All flags are updated. `User::Flag` has many renames.
- Change!: Gateway version is always 10 now.
- Add: Add permissions field.
- Add: Support resume_gateway_url.
- Add: Add `AutoModRule#mention_total_limit`, `AutoModRule#allow_list`, and parameters to `Guild#create_automod_rule`.
## v0.19
### v0.19.0
- Change!: All bang methods don't have bang anymore. (ex: `Message#delete!`)
- Add: Add `%a{pure}` annotation to rbs.
- Add: Add low level APIs to Interaction.
- Update: Update IDENTIFY key.
## v0.18
### v0.18.1
- Add: Support `:length` option for `:string` type.
- Add: Add `Interaction#app_permissions`
- Fix: Fix typing of `:autocomplete` option.
### v0.18.0
- Change!: `XXX#fired_by` is now `XXX#user` or `XXX#member`.
- Change!: `Message#to_reference` returns `Message::Reference`.
- Change!: `TextChannel#default_auto_archive_duration` is now Integer.
- Add: Support AutoMod.
- Change: `discorb new` doesn't do initial commit.
## v0.17
### v0.17.1
- Add: Add valid rbs file.
- Change: Message content intent warning will show only once.
- Update: Update audit log events.
### v0.17.0
- Change!: Delete `Interaction#target` and `Interaction#fired_by`.
- Change: `Interaction#user` and `Interaction#member` are same.
- Add: Include Messageable in VoiceChannel
- Add: Add `--[no-]bundler` option to `discorb` command.
- Add: Add `--[no-]comment` option to `discorb new` command.
- Fix PermissionOverwrite was initialized with string.
- Fix emoji with different skin tones raises ArgumentError.
- Fix `Asset#endpoint` raises NameError.
- Fix `:error` event may call itself.
## v0.16
### v0.16.0
- Change!: Use built-in Logger instead of custom Logger.
- Delete!: `--log-level`, `--[no-]log-color` is deleted.
- Add: Support sharding
- Add: Use Mutex for preventing connection duplications.
## v0.15
### v0.15.1
- Add: Add `Member#can_manage?`
- Add: Add `Discorb::VERSION_ARRAY`
- Fix: `Snowflake#timestamp` includes milliseconds now
- Fix: `TextChannel#create_invite` will no longer return `ArgumentError`
- Fix: Connection will not closed with 4001 when `Client#update_presence`
is called
### v0.15.0
- Add: Migrate to API v10
- Add: Add `TextChannel#threads`
- Add: Support editing attachments
- Delete!: Delete File class - Use Attachment class instead
## v0.14
### v0.14.0
- Add: Support Modal interaction
- Add: Support attachment option type in slash command
- Fix: Connections will no longer stacked
- Fix: Fix Client#fetch_nitro_sticker_packs returning 404
- Fix: Fix `self` reference in subcommand of extension
- Refactor: Refactored many things
- Refactor: Add Rubocop
## v0.13
### v0.13.4
- Add: Show command on `discorb setup`
- Fix: Fix issue when logging in to file(#6, thanks `deanpcmad`)
- Fix: Fix rate limit handing
- Fix: Fix `Client#users`, it was always empty
- Fix: Fix sorting dictionary
### v0.13.3
- Fix: Fix INTEGRATION_xxx event
- Change: Change description
### v0.13.2
- Fix: Fix MESSAGE_DELETE_BULK event
- Fix: Delete VoiceState from `Guild#voice_states` when member leaves
- Add: Add `VoiceChannel#members`, `VoiceChannel#voice_states`
- Add: Add `StageChannel#members`, `StageChannel#voice_states`, `StageChannel#audiences`, `StageChannel#speakers`
- Fix: Ignore errors on closing websocket
### v0.13.1
- Add: `Discorb::Integration#locale`, `Discorb::Integration#guild_locale`
- Fix: Fix grammers
- Change: Use `Discorb::Unset` instead of `:unset`
- Add: `Member#timeout`
- Improve: Improve sending attachments
- Fix: Handle `EPIPE` errors
### v0.13.0
- Change!: Event is now EventHandler.
- Add: Support for scheduled events.
- Fix: Fix bug in sticker initialization.
- Add: Support application flags
- Add: Add `#inspect` method to many classes.
## v0.12
### v0.12.4
- Update: Update emoji table
- Add: Support min_value and max_value for numeric options in slash command
- Fix: Fix sending images
### v0.12.3
- Fix: Fix NoMethodError in command interaction
- Fix: Fix NoMethodError in Integration#initialize
### v0.12.2
- Fix: Fix `Message#type`
- Change: `discorb run` will look up for `main.rb` in parent directories
### v0.12.1
- Fix: Fix some texts
- Add: Add `User#mention`
### v0.12.0
- Refactor: Refactor the code
- Fix: Fix resuming gateway, finally
- Fix: Fix `@client` in slash command handler in extension
## v0.11
### v0.11.4
- Fix: Fix unpinning messages
### v0.11.3
- Add: Add `Snowflake#id` as alias for `Snowflake#to_s`
- Fix: Fix `Message#unpin`
### v0.11.2
- Add: Add `setup` event
- Fix: Fix gateway resuming
- Add: Add GitHub Packages
### v0.11.1
- Improve: Improve rate limit handling
- Fix: Fix bug in Integration initalization
- Change: Change log style
- Add: Support OP code 7
### v0.11.0
- Add: Improve documents
- Add: Implement global rate limits
- Add: Add support autocomplete
- Add: Add role icon editting
- Change: Use `include Discorb::Extension` instead of `< Discorb::Extension`
- Fix: Fix role operation
## v0.10
### v0.10.3
- Add: Support role icons
- Fix: Fix version order
- Change: Use `exec` instead of `system` in `discorb run`
- Add: Add `Extension.loaded`
### v0.10.2
- Change: `discorb init` is now `discorb new`
- Add: Add `:channel_types` parameter to `ApplicationCommand::Handler#slash` and some
### v0.10.1
- Add: Add `Client#extensions`
- Change: `Client#load_extension` allows instance of `Extension`
- Add: Add `-b` option to `discorb run`
### v0.10.0
- Change: Sort versions
- Change: Snowflake is now String
- Change: Extension is now Class
- Add: Add `SelectMenu#disabled=`
## v0.9
### v0.9.6
- Add: Add `Messageable#send_message` as alias of `Messageable#post`
- Fix: Fix interaction responding with updating message
- Fix: Fix `MessageComponentInteraction#message`
### v0.9.5
- Fix: Fix editing message
- Add: Add `required` in slash command argument
- Add: Add `default` in slash command argument
### v0.9.4
- Change: `Messageable#typing` with block is now synchronous
- Fix: Fix some issues in document
- Add: Add some attributes to `Message`
- Fix: Fix guild parameter in message of message command
### v0.9.3
- Fix: Fix interaction responding
### v0.9.2 (yanked)
- Add: Make `Async::Task#inspect` shorter
- Add: `SourceResponse#post` will return message now
- Fix: Fix member caching
### v0.9.1
- Fix: Fix member fetching
### v0.9.0
- Delete: Delete `-d` parameter from `discorb run`; This is caused by segement fault error.
- Change: Rename `-t`, `--token` to `-e`, `--env` parameter
- Add: Add `-t`, `--title` parameter to `discorb run`
- Add: Add `title` parameter to `Client#initialize`
## v0.8
### v0.8.2
- Fix: Fix `Client#initialize`
### v0.8.1
- Add: Add FAQ
- Fix: Fix sending files
- Add: Add `File.from_string`
- Fix: Fix `Client#update_presence`
- Add: Add information in `discorb run -d`
### v0.8.0
- Add: Add `Guild#fetch_members`
- Add: Add `Guild#fetch_member_list` as alias of `Guild#fetch_members`
- Add: Add `Intents#to_h`
- Add: Add `fetch_member` parameter to `Client#initialize`; Note you should set `false` if your bot doesn't have `GUILD_MEMBERS` intent
- Change: Change `ready` to `standby` event
- Change: `ready` will be fired when client receives `READY` event
## v0.7
### v0.7.6
- Fix: Fix heartbeating error
### v0.7.5 (yanked)
- Fix: Fix critical error
### v0.7.4 (yanked)
- Fix: Fix disconnected client
### v0.7.3
- Add: Improve `discorb init`
### v0.7.2
- Add: Add `Member#owner?`
- Fix: Fix `Member#permissions`
- Add: Add `Member#guild_permissions` as alias of `Member#permissions`
- Add: Add default role to `Member#roles`
- Fix: Fix error in `Integration#_set_data`
- Change: Reverse `Member#roles`
### v0.7.1
- Fix: Fix error of responding to interaction
### v0.7.0
- Add: Add `error` event
- Fix: Fix some issues with client without guild intent
- Add: Add alias for `#fired_by`
- Change!: Change block usage of `ApplicationCommand::Handler#group`
```ruby
# before
client.slash_group do
slash "help", "Help" do |interaction|
# ...
end
end
# after
client.slash_group do |group|
group.slash "help", "Help" do |interaction|
# ...
end
end
```
## v0.6
### v0.6.1
- Change: Rename `Event#discriminator` to `Event#metadata`
- Add: Add `:override` to `Client#on`
### v0.6.0
- Fix: Fix issue with client with no guilds
- Add: Add rbs (experimental)
- Add: Add `-t`, `--token` option to `discorb run`
- Add: Add `-g`, `--guild` option to `discorb setup`
- Change: Use `Async::Task<R>` instead of `R` in return value
## v0.5
### v0.5.6
- Add: Raise error when intents are invalid
- Fix: Fix Emoji#==
### v0.5.5
- Fix: Fix some bugs
### v0.5.4
- Fix: Fix issue of receiving component events
### v0.5.3
- Add: Add way to handle raw events with `event_xxx`
- Add: Add `Client#session_id`
- Add: Add `Connectable`
- Fix: Fix error by sending DM
### v0.5.2
- Fix: Fix bug of registering commands
- Add: Add way to register commands in Extension
### v0.5.1
- Add: Can use block for defining group commands
- Fix: Fix bug in subcommands
- Fix: Fix bug in receiving commands
### v0.5.0
- Change: Use zlib stream instead
- Add: Add tutorials
- Add: Add ratelimit handler
- Change: Make `--git` option in `discorb init` false
## v0.4
### v0.4.2
- Fix: Fix error in `discorb run`
### v0.4.1
- Add: Add `-s` option to `discorb run`
### v0.4.0
- Add: Add `discorb setup`
- Add: Add `discorb run`
- Add: Add realtime documentation
## v0.3
### v0.3.1
- Add: Add `discorb show`
- Fix: Fix documenting
### v0.3.0
- Add: Improve CLI tools
- Add: Add `discorb init`
- Change: Change `discord-irb` to `discorb irb`
## v0.2
### v0.2.5
- Add: Add way to add event listener
- Change: Move document to https://discorb-lib.github.io/
### v0.2.4
- Fix: Fix error in `Embed#image=`, `Embed#thumbnail=`
### v0.2.3
- Fix: Fix critical error
### v0.2.2 (yanked)
- Add: Add `Snowflake#to_str`
### v0.2.1
- Fix: Fix NoMethodError in reaction event
- Add: Add Changelog.md to document
### v0.2.0
- Fix: Fix unused dependency
- Add: Add `Client#close!`
- Add: Add discord-irb
## v0.1
### v0.1.0
- Add: Add `User#created_at`
- Add: Add `Member#to_s_user`
- Add: Add `DefaultAvatar`
- Add: Support application commands
- Add: Add `Client#ping`
- Add: Allow `String` for `Embed#initialize`
- Change: Change log format
## v0.0
### v0.0.8
- Delete: Delete task parameter
### v0.0.7
- Fix: Fix `member_xxx` event
### v0.0.6
- Fix: Fix error in client without members intent
- Add: Add ThreadChannel::News
- Add: Add official discord link
### v0.0.5
- Fix: Fix GitHub link
- Change: Internet to HTTP
### v0.0.4
- Fix: Fix NoMethodError by webhook message
- Add: Add `#author` to webhook message
- Fix: Add `#bot?` to webhook author
### v0.0.3
- Fix: Fix no dependencies
### v0.0.2
- Fix: Fix rubygems description
### v0.0.1
- Initial release