変更履歴¶
このページでは、特定のバージョンの新機能や変更された機能を人にやさしい形でレンダリングしています。
v1.0.0¶
The changeset for this version are too big to be listed here, for more information please see the migrating page.
v0.16.6¶
v0.16.1¶
このリリースはバグ修正であり、いくつかのレート制限の実装が改善されています。
v0.16.0¶
新機能¶
Add
Channel.overwrites
to get all the permission overwrites of a channel.Add
Server.features
to get information about partnered servers.
バグ修正¶
Timeout when waiting for offline members while triggering
on_ready()
.The fact that we did not timeout caused a gigantic memory leak in the library that caused thousands of duplicate
Member
instances causing big memory spikes.
Discard null sequences in the gateway.
The fact these were not discarded meant that
on_ready()
kept being called instead ofon_resumed()
. Since this has been corrected, in most caseson_ready()
will be called once or twice withon_resumed()
being called much more often.
v0.15.1¶
Fix crash on duplicate or out of order reactions.
v0.15.0¶
新機能¶
Rich Embeds for messages are now supported.
To do so, create your own
Embed
and pass the instance to theembed
keyword argument toClient.send_message()
orClient.edit_message()
.
Add
Client.clear_reactions()
to remove all reactions from a message.Add support for MESSAGE_REACTION_REMOVE_ALL event, under
on_reaction_clear()
.Add
Permissions.update()
andPermissionOverwrite.update()
for bulk permission updates.This allows you to use e.g.
p.update(read_messages=True, send_messages=False)
in a single line.
Add
PermissionOverwrite.is_empty()
to check if the overwrite is empty (i.e. has no overwrites set explicitly as true or false).
コマンド拡張の場合、以下のことが変更されます。
Context
is no longer slotted to facilitate setting dynamic attributes.
v0.14.2¶
新機能¶
Client.wait_for_reaction()
now returns a namedtuple withreaction
anduser
attributes.This is for better support in the case that
None
is returned since tuple unpacking can lead to issues.
バグ修正¶
Fix bug that disallowed
None
to be passed foremoji
parameter inClient.wait_for_reaction()
.
v0.14.1¶
バグ修正¶
- Fix bug with Reaction not being visible at import.
This was also breaking the documentation.
v0.14.0¶
このアップデートには、新しいAPI機能といくつかのバグ修正が含まれています。
新機能¶
Add support for Manage Webhooks permission under
Permissions.manage_webhooks
Add support for
around
argument in 3.5+Client.logs_from()
.- リアクションのサポートを追加します。
Client.add_reaction()
to add a reactionsClient.remove_reaction()
to remove a reaction.Client.get_reaction_users()
to get the users that reacted to a message.Permissions.add_reactions
permission bit support.Two new events,
on_reaction_add()
andon_reaction_remove()
.Message.reactions
to get reactions from a message.Client.wait_for_reaction()
to wait for a reaction from a user.
バグ修正¶
Fix bug with Paginator still allowing lines that are too long.
Fix the
Permissions.manage_emojis
bit being incorrect.
v0.13.0¶
This is a backwards compatible update with new features.
新機能¶
Add the ability to manage emojis.
新しい絵文字を作成する
Client.create_custom_emoji()
。Client.edit_custom_emoji()
to edit an old emoji.Client.delete_custom_emoji()
to delete a custom emoji.
Add new
Permissions.manage_emojis
toggle.This applies for
PermissionOverwrite
as well.
Add new statuses for
Status
.Status.dnd
(aliased withStatus.do_not_disturb
) for Do Not Disturb.Status.invisible
for setting your status to invisible (please see the docs for a caveat).
Deprecate
Client.change_status()
Use
Client.change_presence()
instead for better more up to date functionality.This method is subject for removal in a future API version.
Add
Client.change_presence()
for changing your status with the new Discord API change.This is the only method that allows changing your status to invisible or do not disturb.
v0.12.0¶
This is a bug fix update that also comes with new features.
新機能¶
Add custom emoji support.
Adds a new class to represent a custom Emoji named
Emoji
Adds a utility generator function,
Client.get_all_emojis()
.Adds a list of emojis on a server,
Server.emojis
.Adds a new event,
on_server_emojis_update()
.
Add new server regions to
ServerRegion
ServerRegion.eu_central
andServerRegion.eu_west
.
Add support for new pinned system message under
MessageType.pins_add
.Add order comparisons for
Role
to allow it to be compared with regards to hierarchy.This means that you can now do
role_a > role_b
etc to check ifrole_b
is lower in the hierarchy.
Add
Server.role_hierarchy
to get the server's role hierarchy.Add
Member.server_permissions
to get a member's server permissions without their channel specific overwrites.Add
Client.get_user_info()
to retrieve a user's info from their ID.Add a new
Player
property,Player.error
to fetch the error that stopped the player.To help with this change, a player's
after
function can now take a single parameter denoting the current player.
Add support for server verification levels.
Adds a new enum called
VerificationLevel
.This enum can be used in
Client.edit_server()
under theverification_level
keyword argument.Adds a new attribute in the server,
Server.verification_level
.
Add
Server.voice_client
shortcut property forClient.voice_client_in()
.This is technically old (was added in v0.10.0) but was undocumented until v0.12.0.
For the command extension, the following are new:
Add custom emoji converter.
All default converters that can take IDs can now convert via ID.
Add coroutine support for
Bot.command_prefix
.Add a method to reset command cooldown.
バグ修正¶
Fix bug that caused the library to not work with the latest
websockets
library.Fix bug that leaked keep alive threads (issue 309)
Fix bug that disallowed
ServerRegion
from being used inClient.edit_server()
.Fix bug in
Channel.permissions_for()
that caused permission resolution to happen out of order.Fix bug in
Member.top_role
that did not account for same-position roles.
v0.11.0¶
This is a minor bug fix update that comes with a gateway update (v5 -> v6).
破壊的変更¶
Permissions.change_nicknames
has been renamed toPermissions.change_nickname
to match the UI.
新機能¶
Add the ability to prune members via
Client.prune_members()
.Switch the websocket gateway version to v6 from v5. This allows the library to work with group DMs and 1-on-1 calls.
Add
AppInfo.owner
attribute.Add
CallMessage
for group voice call messages.Add
GroupCall
for group voice call information.Add
Message.system_content
to get the system message.Add the remaining VIP servers and the Brazil servers into
ServerRegion
enum.Add
stderr
argument toVoiceClient.create_ffmpeg_player()
to redirect stderr.The library now handles implicit permission resolution in
Channel.permissions_for()
.Add
Server.mfa_level
to query a server's 2FA requirement.Add
Permissions.external_emojis
permission.Add
Member.voice
attribute that refers to aVoiceState
.For backwards compatibility, the member object will have properties mirroring the old behaviour.
For the command extension, the following are new:
Command cooldown system with the
cooldown
decorator.UserInputError
exception for the hierarchy for user input related errors.
バグ修正¶
Client.email
is now saved when using a token for user accounts.Fix issue when removing roles out of order.
Fix bug where discriminators would not update.
Handle cases where
HEARTBEAT
opcode is received. This caused bots to disconnect seemingly randomly.
For the command extension, the following bug fixes apply:
Bot.check
decorator is actually a decorator not requiring parentheses.Bot.remove_command
andGroup.remove_command
no longer throw if the command doesn't exist.Command names are no longer forced to be
lower()
.Fix a bug where Member and User converters failed to work in private message contexts.
HelpFormatter
now ignores hidden commands when deciding the maximum width.
v0.10.0¶
For breaking changes, see v0.10.0への移行. The breaking changes listed there will not be enumerated below. Since this version is rather a big departure from v0.9.2, this change log will be non-exhaustive.
新機能¶
The library is now fully
asyncio
compatible, allowing you to write non-blocking code a lot more easily.The library now fully handles 429s and unconditionally retries on 502s.
A new command extension module was added but is currently undocumented. Figuring it out is left as an exercise to the reader.
Two new exception types,
Forbidden
andNotFound
to denote permission errors or 404 errors.Added
Client.delete_invite()
to revoke invites.Added support for sending voice. Check
VoiceClient
for more details.Added
Client.wait_for_message()
coroutine to aid with follow up commands.Added
version_info
named tuple to check version info of the library.Login credentials are now cached to have a faster login experience. You can disable this by passing in
cache_auth=False
when constructing aClient
.New utility function,
discord.utils.get()
to simplify retrieval of items based on attributes.All data classes now support
!=
,==
,hash(obj)
andstr(obj)
.Added
Client.get_bans()
to get banned members from a server.Added
Client.invites_from()
to get currently active invites in a server.Added
Server.me
attribute to get theMember
version ofClient.user
.Most data classes now support a
hash(obj)
function to allow you to use them inset
ordict
classes or subclasses.Add
Message.clean_content()
to get a text version of the content with the user and channel mentioned changed into their names.Added a way to remove the messages of the user that just got banned in
Client.ban()
.Added
Client.wait_until_ready()
to facilitate easy creation of tasks that require the client cache to be ready.Added
Client.wait_until_login()
to facilitate easy creation of tasks that require the client to be logged in.Add
discord.Game
to represent any game with custom text to send toClient.change_status()
.Add
Message.nonce
attribute.Add
Member.permissions_in()
as another way of doingChannel.permissions_for()
.Add
Client.move_member()
to move a member to another voice channel.You can now create a server via
Client.create_server()
.Added
Client.edit_server()
to edit existing servers.Added
Client.server_voice_state()
to server mute or server deafen a member.If you are being rate limited, the library will now handle it for you.
Add
on_member_ban()
andon_member_unban()
events that trigger when a member is banned/unbanned.
Performance Improvements¶
All data classes now use
__slots__
which greatly reduce the memory usage of things kept in cache.Due to the usage of
asyncio
, the CPU usage of the library has gone down significantly.A lot of the internal cache lists were changed into dictionaries to change the
O(n)
lookup intoO(1)
.Compressed READY is now on by default. This means if you're on a lot of servers (or maybe even a few) you would receive performance improvements by having to download and process less data.
While minor, change regex from
\d+
to[0-9]+
to avoid unnecessary unicode character lookups.
バグ修正¶
Fix bug where guilds being updated did not edit the items in cache.
Fix bug where
member.roles
were empty upon joining instead of having the@everyone
role.Fix bug where
Role.is_everyone()
was not being set properly when the role was being edited.Client.logs_from()
now handles cases where limit > 100 to sidestep the discord API limitation.Fix bug where a role being deleted would trigger a
ValueError
.Fix bug where
Permissions.kick_members()
andPermissions.ban_members()
were flipped.Mentions are now triggered normally. This was changed due to the way discord handles it internally.
Fix issue when a
Message
would attempt to upgrade aMessage.server
when the channel is aObject
.Unavailable servers were not being added into cache, this has been corrected.