2 changed files with 72 additions and 0 deletions
@ -0,0 +1,71 @@ |
|||||
|
.. currentmodule:: discord |
||||
|
|
||||
|
.. _whats_new: |
||||
|
|
||||
|
What's New |
||||
|
============ |
||||
|
|
||||
|
This page keeps a detailed human friendly rendering of what's new and changed |
||||
|
in specific versions. |
||||
|
|
||||
|
.. _v0p10p0: |
||||
|
|
||||
|
v0.10.0 |
||||
|
------- |
||||
|
|
||||
|
For breaking changes, see :ref:`migrating-to-async`. The breaking changes listed there will not be enumerated below. |
||||
|
|
||||
|
New Features |
||||
|
~~~~~~~~~~~~~ |
||||
|
|
||||
|
- The library is now fully ``asyncio`` compatible, allowing you to write non-blocking code a lot more easily. |
||||
|
- Two new exception types, :exc:`Forbidden` and :exc:`NotFound` to denote permission errors or 404 errors. |
||||
|
- Added :meth:`Client.delete_invite` to revoke invites. |
||||
|
- Added support for sending voice. Check :class:`VoiceClient` for more details. |
||||
|
- Added :meth:`Client.wait_for_message` coroutine to aid with follow up commands. |
||||
|
- Added :data:`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 a :class:`Client`. |
||||
|
- New utility function, :func:`discord.utils.get` to simplify retrieval of items based on attributes. |
||||
|
- All data classes now support ``!=``, ``==`` and ``str(obj)``. |
||||
|
- Added :meth:`Client.get_bans` to get banned members from a server. |
||||
|
- Added :meth:`Client.invites_from` to get currently active invites in a server. |
||||
|
- Added :attr:`Server.me` attribute to get the :class:`Member` version of :attr:`Client.user`. |
||||
|
- Most data classes now support a ``hash(obj)`` function to allow you to use them in ``set`` or ``dict`` classes or subclasses. |
||||
|
- Add :meth:`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 :meth:`Client.ban`. |
||||
|
- Added :meth:`Client.wait_until_ready` to facilitate easy creation of tasks that require the client cache to be ready. |
||||
|
- Added :meth:`Client.wait_until_login` to facilitate easy creation of tasks that require the client to be logged in. |
||||
|
- Add :class:`discord.Game` to represent any game with custom text to send to :meth:`Client.change_status`. |
||||
|
- Add :attr:`Message.nonce` attribute. |
||||
|
- Add :meth:`Member.permissions_in` as another way of doing :meth:`Channel.permissions_for`. |
||||
|
- Add :meth:`Client.move_member` to move a member to another voice channel. |
||||
|
- You can now create a server via :meth:`Client.create_server`. |
||||
|
- Added :meth:`Client.edit_server` to edit existing servers. |
||||
|
- Added :meth:`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 :func:`on_member_ban` and :func:`on_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 into ``O(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. |
||||
|
|
||||
|
Bug Fixes |
||||
|
~~~~~~~~~~ |
||||
|
|
||||
|
- 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 :meth:`Role.is_everyone` was not being set properly when the role was being edited. |
||||
|
- :meth:`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 :meth:`Permissions.kick_members` and :meth:`Permissions.ban_members` were flipped. |
||||
|
- Mentions are now triggered normally. This was changed due to the way discord handles it internally. |
||||
|
- Fix issue when a :class:`Message` would attempt to upgrade a :attr:`Message.server` when the channel is |
||||
|
a :class:`Object`. |
||||
|
- Unavailable servers were not being added into cache, this has been corrected. |
Loading…
Reference in new issue