変更履歴¶
このページでは、特定のバージョンの新機能や変更された機能をわかりやすい形で詳細に記載しています。
v2.7.1¶
バグ修正¶
Fix memory leak when using
ui.LayoutViewand removing items but those items not being removed from internal cache.Fix
aiohttpdeprecation warning for websocket timeouts (GH-10418)
その他¶
Show
daveydependency output inpython -m discord --versionto debug DAVE issuesRaise an error and warn when
daveyis not installed and using voiceChange how views are bound to the internal cache when using interactions
v2.7.0¶
新機能¶
Add DAVE protocol support for voice connections (GH-10300)
- Add support for new
ui.Modalcomponents (GH-10390) CheckboxGroupComponentcorresponds toui.CheckboxGroupCheckboxComponentcorresponds toui.CheckboxRadioGroupComponentcorresponds toui.RadioGroupCheckboxGroupOptionandRadioGroupOptionallow creating these options
- Add support for new
- Add timestamp converter and transformer for use with new
@timemarkdown option (GH-10388) This is accessible via
app_commands.Timestampandext.commands.Timestampas an annotation
- Add timestamp converter and transformer for use with new
- Add several new permissions:
Add
clientparameter toPartialEmoji.from_str()(GH-10407)Add support for user collectibles accessible via
User.collectiblesandMember.collectibles(GH-10277)Add
Message.is_forwardable()to check if a message can be forwarded (GH-10353)Add support for getting an integration's scopes (GH-10352)
Add
Interaction.command_idandInteraction.custom_idhelpers (GH-10321)Support new fields in
Member.edit()(GH-10303)Add support for getting role member counts via
Guild.role_member_counts()Add
reasonkeyword argument toClient.delete_invite()(GH-10318, GH-10340)Add
silentparameter toForumChannel.create_thread()(GH-10304)Add support for
MessageType.emoji_added(GH-10284)Add channel attribute to automod quarantine user AuditLogAction (GH-10274)
バグ修正¶
Fix FFmpeg errors not sent to after callback (GH-10387)
Fix
Webhook.edit_message()missing the view parameter (GH-10395, GH-10398)Fix
TextChannel.purge()failing when encountering certain system messagesFix
Message.callraising an attribute error when accessed (GH-10404)Fix certain component IDs not being able to be settable afterwards
Fix
ui.Modalnot raising when hitting the 5 item limitFix
ui.Item.rownot being set appropriately when used in aui.Modal(GH-10397)Fix
compression.zstdnot working as expected when Discord does not send encoding information (GH-10344)Fix rare bug where
Client.latencywas incorrect due to not updating heartbeat stateFix overzealous exporting of symbols within an internal
primary_guildmodule (GH-10295)Close websocket when reconnecting websocket during polling (GH-10409)
Use
ui.View.walk_children()when removing items from the view cache (GH-10402)[ext.commands] Fix flag annotations not working under Python 3.14
[ext.commands] Fix decorator order mattering for hybrid commands
[ext.commands] Fix
from_interaction()derivedMessage.typebeing incorrect
その他¶
Allow
ui.Viewinitialization without a running event loop (GH-10367)Optimise
utils.find()and specialiseutils.as_chunks()(GH-10351)Detach
ui.Item.viewwhen the item is removed (GH-10348)Change
descriptionto be optional when creating emoji (GH-10346)Don't assume Python 3.14 always has
compression.zstd(GH-10328)Use webp as the default emoji URL format
[ext.tasks] Log handled exceptions before sleeping
v2.6.4¶
バグ修正¶
Fix
InviteTypeandReactionTypenot being exported (GH-10310)Fix
ui.Modalsubmits not working for components without acustom_id(GH-10307)Fix
requiredkeyword argument missing in mostui.Selectclasses (GH-10307)Fix incorrect handling of
ui.Modalsubmit data when using selects (GH-10307)Fix potential exception when assigning
ui.Container.childrenFix
ui.Section.accessorysetter not updating internal state leading to an exception
その他¶
Use
compression.zstdfrom the standard library if available on Python 3.14 (GH-10323)
v2.6.3¶
バグ修正¶
Fix
ui.Select.requirednot being applied properlyFix potential attribute error when accessing
LabelComponentFix issue when stacking decorators such as
app_commands.guild_install()andapp_commands.user_install()
v2.6.2¶
バグ修正¶
Fix a bug with
ui.DynamicItemcausing it to fail at runtime when passing a generic.
v2.6.1¶
バグ修正¶
Fix
ui.Section.childrenandui.Section.accessoryhavingNoneas theItem.parent(GH-10269)Fix error when using a
ui.DynamicIteminside anui.SectionFix
ui.DynamicItemnot working when set as anui.Section.acessory(GH-10271)Fix
ui.LayoutView.total_children_countbeing inaccurate when adding nested itemsFix crash when accessing
AuditLogEntry.categoryfor unknown audit log actions[ext.tasks] Add logging statement when a handled exception occurs (GH-10276)
v2.6.0¶
新機能¶
- Add support for Discord's "Components v2" (GH-10166)
A new
ui.LayoutViewis used to use these components which requires manual layouting.Backwards compatibility is maintained with everything, including
ui.DynamicItem.- Adds the following new components with their UI counterpart
SectionComponentcorresponds toui.SectionTextDisplaycorresponds toui.TextDisplayThumbnailComponentcorresponds toui.ThumbnailMediaGalleryComponentcorresponds toui.MediaGalleryFileComponentcorresponds toui.FileSeparatorComponentcorresponds toui.SeparatorContainercorresponds toui.ContainerActionRowcorresponds toui.ActionRow
- Add support for the first phase for
discord.ui.Modalimprovements. This allows
discord.ui.Selectwithin modalsThis also allows
discord.ui.Labelfor better control of the forms within modals.This changes
discord.ui.TextInput.labelto be optional and is deprecated overdiscord.ui.Label.As of this writing, this Discord update is not available to users yet.
- Add support for the first phase for
- Add support for guild tags (also known as primary guilds) (GH-10211)
This is through the
PrimaryGuildclass.You retrieve this via
Member.primary_guild.
- Add support for the new pins endpoint (GH-10205)
This turns
abc.Messageable.pins()into an async iterator.The old eager behaviour of using
awaitis still supported, but is now deprecated.
Add support for
MemberFlags.automod_quarantined_guild_tag(GH-10236)Add support new gradient and holographic role colours (GH-10214, GH-10225)
Add
Locale.language_codeattribute (GH-10222)Add support for guest invites (GH-10220)
Add
File.urito get theattachment://<filename>URI of a fileAdd support for
InteractionResponse.launch_activity()responses (GH-10193)Add ability to create a media-only forum channel via
mediaparameter inGuild.create_forum()(GH-10170)- Add new colours from the new Discord themes (GH-10152)
This updates the old
Colour.dark_theme(),Colour.light_theme(),Colour.light_embed()andColour.dark_embed()This adds
Colour.ash_theme(),Colour.ash_embed(),Colour.onyx_theme(), andColour.onyx_embed()
- Add support for new fields to read in
Activity(GH-10227) Adds the new
StatusDisplayTypeenum
- Add support for new fields to read in
Add
Permissions.apps()classmethod category (GH-10147)Add more attributes to
app_commands.AppCommandThreadandapp_commands.AppCommandChannel(GH-10180, GH-10252)
バグ修正¶
Fix context install decorators to explicitly restrict commands
Fix error when sending non-interactive views via partial webhooks (GH-10235)
Fix voice connection issues and upgrade the voice version to 8 (GH-10210)
Fix calculation of hashed rate limit keys (GH-10215)
Fix
Thread.applied_tagsbeing empty for media channels (GH-10178)Fix
Embed.to_dict()for user-inherited Embed classes (GH-10173)Fix potentially stuck ratelimit buckets in certain circumstances (GH-10160)
Fix audit log
automod_rule_trigger_typeextra being missing (GH-10244)Properly transform media channels in app commands (GH-10177)
[ext.commands] Fix certain converters not working under
Optionaltype hint in hybrids (GH-10239, GH-10245)
その他¶
Skip
GUILD_MEMBER_ADDif the member is already cached (GH-10238)Deprecate various methods involving guild creation (GH-10164, GH-10246)
Deprecate the
with_expirationparameter inClient.fetch_invite()(GH-10259)Allow creating NSFW voice/stage channels (GH-10200)
The
Inviteis now returned when usingInvite.delete()orClient.delete_invite()(GH-10181)Copy Select options when creating View class (GH-10143)
Update PyNaCl minimum version dependency (GH-10127)
v2.5.2¶
バグ修正¶
Fix a serialization issue when sending embeds (GH-10126)
v2.5.1¶
バグ修正¶
Fix
InteractionCallbackResponse.resourcehaving incorrect state (GH-10107)Create
ScheduledEventon cache miss foron_scheduled_event_delete()(GH-10113)Add defaults for
Messagecreation preventing some crashes (GH-10115)Fix
Attachment.is_spoiler()andAttachment.is_voice_message()being incorrect (GH-10122)
v2.5.0¶
新機能¶
- Add support for message forwarding (GH-9950)
Adds
MessageReferenceTypeAdds
MessageSnapshotAdds
typeparameter toMessageReference,MessageReference.from_message(), andPartialMessage.to_reference()
- Add SKU subscriptions support (GH-9930)
Adds new events
on_subscription_create(),on_subscription_update(), andon_subscription_delete()Add
SubscriptionStatusenumAdd
Subscriptionmodel
- Add support for application emojis (GH-9891)
- Support for Soundboard and VC effects (GH-9349)
Add
BaseSoundboardSound,SoundboardDefaultSound, andSoundboardSoundAdd new audit log actions:
AuditLogAction.soundboard_sound_create,AuditLogAction.soundboard_sound_update, andAuditLogAction.soundboard_sound_delete.Add
Intents.expressionsand makeIntents.emojisandIntents.emojis_and_stickersaliases of that intent.Add new events:
on_soundboard_sound_create(),on_soundboard_sound_update(),on_soundboard_sound_delete(), andon_voice_channel_effect().- Add methods and properties dealing with soundboards:
- Add support for retrieving interaction responses when sending a response (GH-9957)
Methods from
InteractionResponsenow returnInteractionCallbackResponseDepending on the interaction response type,
InteractionCallbackResponse.resourcewill be different
Add
PartialWebhookChannel.mentionattribute (GH-10101)Add support for sending stateless views for
SyncWebhookor webhooks with no state (GH-10089)Add richer
Role.move()interface (GH-10100)Add support for
EmbedFlagsviaEmbed.flags(GH-10085)Add new flags for
AttachmentFlags(GH-10085)- Add
on_raw_presence_update()event that does not depend on cache state (GH-10048) This requires setting the
enable_raw_presenceskeyword argument withinClient.
- Add
Add
ForumChannel.membersproperty. (GH-10034)Add
exclude_deletedparameter toClient.entitlements()(GH-10027)Add
AutoShardedClient.fetch_session_start_limits()(GH-10007)Add
Message.forwardflag (GH-9978)- Add support for purchase notification messages (GH-9906)
Add new type
MessageType.purchase_notificationAdd new models
GuildProductPurchaseandPurchaseNotification
Add
categoryparameter toabc.GuildChannel.clone()(GH-9941)- Add support for message call (GH-9911)
Add new models
CallMessageAdd
Message.callattribute
- Parse full message for message edit event (GH-10035)
Adds
RawMessageUpdateEvent.messageattributePotentially speeds up
on_message_edit()by no longer copying data
- Add support for retrieving and editing integration type configuration (GH-9818)
This adds
IntegrationTypeConfigRetrievable via
AppInfo.guild_integration_configandAppInfo.user_integration_config.Editable via
AppInfo.edit()
Allow passing
Noneforscopesparameter inutils.oauth_url()(GH-10078)Add support for
MessageType.poll_resultmessages (GH-9905)Add various new
MessageFlagsAdd
Member.fetch_voice()(GH-9908)Add
Guild.dm_spam_detected_atandGuild.is_dm_spam_detected()(GH-9808)Add
Guild.raid_detected_atandGuild.is_raid_detected()(GH-9808)Add
Guild.fetch_role()(GH-9921)Add
Attachment.title(GH-9904)Re-add
connectorparameter that was removed during v2.0 (GH-9900)
バグ修正¶
Change the default file size limit for
Guild.filesize_limitto match new Discord limit of 10 MiB (GH-10084)- Handle improper 1000 close code closures by Discord
This fixes an issue causing excessive IDENTIFY in large bots
Fix potential performance regression when dealing with cookies in the library owned session (GH-9916)
- Add support for AEAD XChaCha20 Poly1305 encryption mode (GH-9953)
This allows voice to continue working when the older encryption modes eventually get removed.
Support for DAVE is still tentative.
Fix large performance regression due to polls when creating messages
Fix cases where
Member.rolescontains aNonerole (GH-10093)Update all channel clone implementations to work as expected (GH-9935)
Fix bug in
Client.entitlements()only returning 100 entries (GH-10051)Fix
TextChannel.clone()always sending slowmode when not applicable to news channels (GH-9967)Fix
Message.system_contentforMessageType.role_subscription_purchaserenewals (GH-9955)Fix
Sticker.urlfor GIF stickers (GH-9913)Fix
User.default_avatarfor team users and webhooks (GH-9907)Fix potential rounding error in
Poll.duration(GH-9903)Fix introduced potential TypeError when raising
app_commands.CommandSyncFailureFix
AuditLogEntry.targetcausing errors forAuditLogAction.message_pinandAuditLogAction.message_unpinactions (GH-10061).Fix incorrect
ui.Selectmaximum option check (GH-9878, GH-9879)Fix path sanitisation for absolute Windows paths when using
__main__(GH-10096, GH-10097)[ext.tasks] Fix race condition when setting timer handle when using uvloop (GH-10020)
[ext.commands] Fix issue with category cooldowns outside of guild channels (GH-9959)
[ext.commands] Fix
Context.deferunconditionally deferring[ext.commands] Fix callable FlagConverter defaults on hybrid commands not being called (GH-10037)
[ext.commands] Unwrap
Parameterif given as default toparameter()(GH-9977)[ext.commands] Fix fallback behaviour not being respected when calling replace for
Parameter(GH-10076, GH-10077)[ext.commands] Respect
enabledkeyword argument for hybrid app commands (GH-10001)
その他¶
Use a fallback package for
audioopto allow the library to work in Python 3.13 or newer.Remove
aiodnsfrom being used on Windows (GH-9898)- Add zstd gateway compression to
speedextras (GH-9947) This can be installed using
discord.py[speed]
- Add zstd gateway compression to
Add proxy support fetching from the CDN (GH-9966)
Remove
/from being safe from URI encoding when constructing paths internallySanitize invite argument before calling the invite info endpoint
Avoid returning in finally in specific places to prevent exception swallowing (GH-9981, GH-9984)
Enforce and create random nonces when creating messages throughout the library
Revert IPv6 block in the library (GH-9870)
Allow passing
Permissionsobject toapp_commands.default_permissions()decorator (GH-9951, GH-9971)
v2.4.0¶
新機能¶
- Add support for allowed contexts in app commands (GH-9760).
An "allowed context" is the location where an app command can be used.
This is an internal change to decorators such as
app_commands.guild_only()andapp_commands.dm_only().
- Add support for user-installable apps (GH-9760).
Add
Interaction.context.
- Add support for Polls (GH-9759).
Polls can be created using
Polland thepollkeyword-only parameter in various message sending methods.Add
PollAnswerandPollMedia.Add
Intents.polls,Intents.guild_pollsandIntents.dm_pollsintents.Add
Message.end_poll()method to end polls.Add new events,
on_poll_vote_add(),on_poll_vote_remove(),on_raw_poll_vote_add(), andon_raw_poll_vote_remove().
Voice handling has been completely rewritten to hopefully fix many bugs (GH-9525, GH-9528, GH-9536, GH-9572, GH-9576, GH-9596, GH-9683, GH-9699, GH-9772, etc.)
Add
DMChannel.recipientsto get all recipients of a DM channel (GH-9760).Add support for
RawReactionActionEvent.message_author_id.Add support for
AuditLogAction.creator_monetization_request_createdandAuditLogAction.creator_monetization_terms_accepted.Add support for
AttachmentFlags, accessed viaAttachment.flags(GH-9486).Add support for
RoleFlags, accessed viaRole.flags(GH-9485).Add support for
ChannelType.media, accessed viaForumChannel.is_media().Add shortcut for
CategoryChannel.forums.Add encoder options to
VoiceClient.play()(GH-9527).- Add support for team member roles.
Add
TeamMemberRole.Add
TeamMember.role.Updated
Bot.owner_idsto account for team roles. Team owners or developers are considered Bot owners.
Add optional attribute
integration_typeinAuditLogEntry.extraforkickormember_role_updateactions.- Add support for "dynamic"
ui.Itemthat let you parse state out of acustom_idusing regex. In order to use this, you must subclass
ui.DynamicItem.This is an alternative to persistent views.
Check the dynamic_counter example for more information.
- Add support for "dynamic"
- Add support for reading burst reactions. The API does not support sending them as of currently.
Add
Reaction.burst_count.Add
Reaction.me_burst.
- Add support for default values on select menus (GH-9577).
Add
SelectDefaultValue.Add a
default_valuesattribute to each specialised select menu.
Add
scheduled_eventparameter forStageChannel.create_instance()(GH-9595).- Add support for auto mod members (GH-9328).
Add
typekeyword argument toAutoModRuleAction.
- Add support for premium app integrations (GH-9453).
Add multiple SKU and entitlement related classes, e.g.
SKU,Entitlement,SKUFlags.Add multiple enums, e.g.
SKUType,EntitlementType,EntitlementOwnerType.Add
Client.fetch_skus()andClient.fetch_entitlement()to fetch from the API.Add
Client.create_entitlement()to create entitlements.Add
Client.entitlements.Add
ButtonStyle.premiumandui.Button.sku_idto send a button asking the user to buy an SKU (GH-9845).Add support for one time purchase (GH-9803).
- Add support for editing application info (GH-9610).
Add
AppInfo.edit().
- Add support for getting/fetching threads from
Message(GH-9665). Add
Message.thread.
- Add support for getting/fetching threads from
- Add support for platform and assets to activities (GH-9677).
Add
Activity.platform.Add
Game.platform.Add
Game.assets.
Add support for suppressing embeds in an interaction response (GH-9678).
Add support for adding forum thread tags via webhook (GH-9680) and (GH-9783).
Add support for guild incident message types (GH-9686).
Add support for setting voice channel status (GH-9603).
Add a shard connect timeout parameter to
AutoShardedClient.- Add support for guild incidents (GH-9590).
Updated
Guild.edit()withinvites_disabled_untilanddms_disabled_untilparameters.Add
Guild.dms_paused().
Add support for
abc.User.avatar_decoration(GH-9343).Add support for GIF stickers (GH-9737).
Add support for updating
ClientUserbanners (GH-9752).Add support for bulk banning members via
Guild.bulk_ban().Add
reasonkeyword argument toThread.delete()(GH-9804).Add support for
Message.interaction_metadata(GH-9817).Add support for reaction types to raw and non-raw models (GH-9836).
[ext.tasks] Add
nameparameter toloop()to name the internalasyncio.Task.[ext.commands] Add fallback behaviour to
CurrentGuild.[ext.commands] Add logging for errors that occur during
cog_unload().- [ext.commands] Add support for
typing.NewTypeandtypekeyword type aliases (GH-9815). Also supports application commands.
- [ext.commands] Add support for
[ext.commands] Add support for positional-only flag parameters (GH-9805).
[ext.commands] Add support for channel URLs in ChannelConverter related classes (GH-9799).
バグ修正¶
Fix emoji and sticker cache being populated despite turning the intent off.
Fix outstanding chunk requests when receiving a gateway READY event not being cleared (GH-9571).
Fix escape behaviour for lists and headers in
escape_markdown().Fix alias value for
Intents.auto_moderation(GH-9524).Fixes and improvements for
FFmpegAudioand all related subclasses (GH-9528).Fix
Template.source_guild()attempting to resolve from cache (GH-9535).Fix
IndexErrorbeing raised instead ofValueErrorwhen callingColour.from_str()with an empty string (GH-9540).Fix
View.from_message()not correctly creating the varyingui.Selecttypes (GH-9559).Fix logging with autocomplete exceptions, which were previously suppressed.
Fix possible error in voice cleanup logic (GH-9572).
Fix possible
AttributeErrorduringapp_commands.CommandTree.sync()when a command is regarded as 'too large'.Fix possible
TypeErrorif aapp_commands.Groupdid not have a name set (GH-9581).Fix possible bad voice state where you move to a voice channel with missing permissions (GH-9596).
Fix websocket reaching an error state due to received error payload (GH-9561).
Fix handling of
AuditLogDiffwhen relating to auto mod triggers (GH-9622).Fix race condition in voice logic relating to disconnect and connect (GH-9683).
Use the
Interaction.userguild as a fallback forInteraction.guildif not available.Fix restriction on auto moderation audit log ID range.
Fix check for maximum number of children per
ui.View.Fix comparison between
Objectclasses with atypeset.Fix handling of an enum in
AutoModRule.edit()(GH-9798).Fix handling of
Client.close()withinClient.__aexit__()(GH-9769).Fix channel deletion not evicting related threads from cache (GH-9796).
Fix bug with cache superfluously incrementing role positions (GH-9853).
Fix
exempt_channelsnot being passed along inGuild.create_automod_rule()(GH-9861).Fix
abc.GuildChannel.purge()failing on single-message delete mode if the message was deleted (GH-9830, GH-9863).[ext.commands] Fix localization support for
HybridGroupfallback.[ext.commands] Fix nested
HybridGroup's inserting manual app commands.[ext.commands] Fix an issue where
HybridGroupwrapped instances would be out of sync.[ext.commands] Fix
HelpCommanddefined checks not carrying over during copy (GH-9843).
その他¶
Additional documentation added for logging capabilities.
Performance increases of constructing
Permissionsusing keyword arguments.Improve
__repr__ofSyncWebhookandWebhook(GH-9764).Change internal thread names to be consistent (GH-9538).
v2.3.2¶
バグ修正¶
Fix the
nameparameter not being respected when sending aCustomActivity.Fix
Intents.emojiandIntents.emojis_and_stickershaving swapped alias values (GH-9471).Fix
NameErrorwhen usingabc.GuildChannel.create_invite()(GH-9505).Fix crash when disconnecting during the middle of a
HELLOpacket when usingAutoShardedClient.Fix voice websocket not being closed before being replaced by a new one (GH-9518).
[ext.commands] Fix the wrong
on_help_command_error()being called when ejected from a cog.[ext.commands] Fix
=Nonebeing displayed insignature.
v2.3.1¶
バグ修正¶
Fix username lookup in
Guild.get_member_named()(GH-9451).- Use cache data first for
Interaction.channelinstead of API data. This bug usually manifested in incomplete channel objects (e.g. no
overwrites) because Discord does not provide this data.
- Use cache data first for
Fix false positives in
PartialEmoji.from_str()inappropriately settinganimatedtoTrue(GH-9456, GH-9457).Fix certain select types not appearing in
Message.components(GH-9462).[ext.commands] Change lookup order for
MemberConverterandUserConverterto prioritise usernames instead of nicknames.
v2.3.0¶
新機能¶
- 新しいユーザー名システム ("pomelo"とも呼ばれます) のサポートを追加しました。
グローバルのニックネーム、つまり「表示名」を取得する
User.global_nameを追加しました。User.display_nameとMember.display_nameを、グローバルのニックネームを使用するように変更しました。Userの__str__が、移行したユーザーのタグを含まないよう、変更しました。移行したユーザーでも動くよう
Guild.get_member_named()を変更しました。移行したユーザーでも動くよう
User.default_avatarを変更しました。[ext.commands] 移行したユーザーを解釈するよう、ユーザーとメンバーコンバータを変更しました。
新しいピンクのデフォルトアバタ―用の
DefaultAvatar.pinkを追加しました。ピンクのデフォルトアバターの色を取得する
Colour.pink()を追加しました。- ボイスメッセージのサポートを追加しました。 (GH-9358)
MessageFlags.voiceを追加しました。Attachment.durationとAttachment.waveformを追加しました。Attachment.is_voice_message()を追加しました。ボイスメッセージの 送信 は現在APIで対応していないため、サポートされていません。
API更新で追加された
Interaction.channel属性のサポートを追加しました。 (GH-9339)TextChannel.default_thread_slowmode_delayのサポートを追加しました。 (GH-9291)ForumChannel.default_sort_orderのサポートを追加しました。 (GH-9290)Guild.create_forum()にて、default_reaction_emojiとdefault_forum_layoutのサポートを追加しました。 (GH-9300)Guild.edit()にて、widget_channel、widget_enabled、mfa_levelのサポートを追加しました。(GH-9302 、 GH-9303)- 新しい
Permissionsを追加しました。 (GH-9312 、 GH-9325 、 GH-9358 、 GH-9378) 新しい
manage_expressions、use_external_sounds、use_soundboard、send_voice_messages、create_expressions権限を追加しました。Permissions.manage_emojisをmanage_expressionsのエイリアスに変更しました。
- 新しい
PartialAppInfoとAppInfoにさまざまな新しいプロパティを追加しました。 (GH-9298)Client.fetch_guilds()にwith_counts引数のサポートを追加しました。 (GH-9369)新しく
Guild.get_emoji()ヘルパーを追加しました。 (GH-9296)ApplicationFlags.auto_mod_badgeを追加しました。 (GH-9313)Guild.max_stage_video_usersとGuild.safety_alerts_channelを追加しました。 (GH-9318)Guild.edit()にてraid_alerts_disabledとsafety_alerts_channelのサポートを追加しました。 (GH-9318)[ext.commands] 失敗した引数の値を取得するための
BadLiteralArgument.argumentを追加しました。 (GH-9283)[ext.commands]
Context.filesize_limit属性を追加しました。 (GH-9416)[ext.commands]
Parameter.displayed_nameのサポートを追加しました。 (GH-9427)
バグ修正¶
- PyCharm 内でボットが実行された場合、
FileHandlerハンドラにANSI 文字が出力されるのを修正しました。 PyCharmのTTY検出のバグの影響により、PyCharm ターミナル内でログに色が付かなくなる副作用があります。このバグは PY-43798 で追跡されています。
- PyCharm 内でボットが実行された場合、
Webhook.edit()でチャンネルを編集するときに2回リクエストが行われるバグを修正しました。StageChannel.last_message_idが常にNoneとなるのを修正しました。 (GH-9422)custom_idが後で設定された場合、ui.TextInputの永続的な検出が正しくない問題を修正しました。 (GH-9438)app_commands.Groupから継承するときにカスタム属性がコピーされない問題を修正しました。 (GH-9383)空の channel_id により自動管理の監査ログ項目でエラーが発生するのを修正しました。 (GH-9384)
abc.Messageable.history()のaround引数の扱いを修正しました。 (GH-9388)ClientUser.mutual_guildsプロパティにアクセスするとき時々AttributeErrorが発生する問題を修正しました。 (GH-9387)utils.escape_markdown()が新しいマークダウンを正しくエスケープしない問題を修正しました。 (GH-9361)監査ログでWebhookターゲットが変換されない問題を修正しました。 (GH-9332)
Guild.create_automod_rule()でenabledを渡さないときに生じるエラーを修正しました。 (GH-9292)Guild.create_scheduled_event()のパラメータの扱いを修正しました。 (GH-9275)SPEAKING ペイロードの送信時に
ssrcパラメータを送信しない問題を修正しました。 (GH-9301)インタラクションで受け取った
Message.guildが時々Noneになる問題を修正しました。MessageType.channel_icon_changeのMessage.system_contentを修正しました。 (GH-9410)
その他¶
基本の
Guild.filesize_limitを 25MiB に更新しました。 (GH-9353)Webhook.from_url()でインタラクション Webhook URLを使用できるようになりました。IPv6 接続を防ぐために、内部コネクタのソケットファミリを
AF_INETに設定するようにしました。 (GH-9442 、 GH-9443)
v2.2.3¶
バグ修正¶
Discordが自動管理の監査ログに関し null の
channel_idを送ることによって生じたクラッシュを修正しました。Webhook.edit()を使用してchannelを変更するときに2回リクエストが送信されるバグを修正しました。招待に関し
AuditLogEntry.targetがNoneとなるのを修正しました。 (GH-9336)GuildStickerのデータにアクセスするときのKeyErrorを修正しました。 (GH-9324)
v2.2.2¶
バグ修正¶
v2.2.0¶
新機能¶
新しい
on_audit_log_entry_create()イベントのサポートを追加しました。- サイレントメッセージを送信する
abc.Messageable.send()のsilentパラメータのサポートを追加しました。 これは
MessageFlags.suppress_notificationsから確認できます。
- サイレントメッセージを送信する
StageChannelがabc.Messageableを実装するようにしました。 (GH-9248)discord.ui.ChannelSelect.channel_typesのセッターを追加しました。 (GH-9068)AutoModRuleAction.custom_messageで、自動管理のカスタムメッセージのサポートを追加しました。 (GH-9267)ForumChannel.get_thread()を追加しました。 (GH-9106)StageChannel.slowmode_delayとVoiceChannel.slowmode_delayを追加しました。 (GH-9111)StageChannelとVoiceChannelの低速モードの変更のサポートを追加しました。 (GH-9111)Locale.indonesianを追加しました。Interaction.edit_message()にdelete_afterキーワード引数を追加しました。 (GH-9415)InteractionMessage.edit()にdelete_afterキーワード引数を追加しました。 (GH-9206)- メンバーフラグのサポートを追加しました。 (GH-9204)
Member.flagsでアクセスでき、型はMemberFlagsです。Member.edit()にてbypass_verificationのサポートを追加しました。
Webhook.from_url()とWebhook.partial()にクライアントを渡せるようにしました。これにより、ビューを使用することができます (「ボット所有」Webhookである場合は)。
Colour.dark_embed()とColour.light_embed()を追加しました。 (GH-9219)Guild.create_stage_channel()で対応するパラメータを追加しました。 (GH-9245)ForumChannel.default_layoutのサポートを追加しました。ステージチャンネルやロールサブスクリプションに関連するものなど、新しい
MessageType値を追加しました。- ロールサブスクリプション関連属性のサポートを追加しました。
RoleTags.is_guild_connection()で、ロールが紐づいたロールかの確認のサポートを追加しました。GIFスタンプタイプのサポートを追加しました。
Message.application_idとMessage.positionのサポートを追加しました。utils.maybe_coroutine()ヘルパーを追加しました。ScheduledEvent.creator_id属性を追加しました。[ext.commands]
GroupCogにてinteraction_check()のサポートを追加しました。 (GH-9189)
バグ修正¶
アプリケーションコマンドから使用されたビューがメッセージストアから除去されず、メモリリークを引き起こすバグを修正しました。
非同期イテレータが
oldest_firstとafterまたはbeforeを指定した場合に境界を越えてリクエストをするのを修正しました。 (GH-9093)Guild.audit_logs()にて、afterを使用したときにページネーションで発生するバグを修正しました。 (GH-9269)Message.channelが時々PartialMessageableではなくObjectとなるバグを修正しました。ui.Viewがsuper().__init_subclass__を適切に呼び出さないのを修正しました。 (GH-9231)Guild.create_forum()で渡されたavailable_tagsとdefault_thread_slowmode_delayが使用されない問題を修正しました。AutoModTriggerが type キーワードのあるallow_listを無視するバグを修正しました。 (GH-9107)AutoModRule.edit()を、Objectのようなスノウフレーク型で動くよう修正しました。 (GH-9159)Webhook.send()がWebhookMessage.channelに関しForumChannelを返すのを修正しました。AuditLogEntry.targetの検索が失敗したとき、適切なObject.typeをもつObjectにフォールバックするようにしました。 (GH-9171)インテグレーションの
AuditLogDiff.typeがstrではなくChannelTypeを返すのを修正しました。 (GH-9200)Webhookの
AuditLogDiff.typeがWebhookTypeではなくChannelTypeを返すのを修正しました。 (GH-9251)Webhookとインタラクションが、リクエストが完了した後にファイルを正しく閉じないバグを修正しました。
アプリケーションコマンドの監査ログターゲットでの
NameErrorを修正しました。ScheduledEvent.edit()にて不必要な引数が必須とされるバグを修正しました。 (GH-9261 、 GH-9268)[ext.commands] ハイブリッドコマンドを呼び出すとき、明示的にトレースバックを設定するようにしました。 (GH-9205)
その他¶
Colourで定義された色のプレビューを追加しました。終了したビューは送信時にライブラリで保管されないようになりました。 (GH-9235)
Docker下で実行するときに、デフォルトの logging ハンドラで色のついたログを常に有効にするようにしました。
静的解析のために、
Client.wait_for()のオーバーロードを追加しました。 (GH-9184)Interactionは、オプションでジェネリックのパラメータClientTをとり、Interaction.clientの型を指定できるようになりました。[ext.commands]
FlagConverterキーワードのみのパラメータでも、ignore_extraに従うようにしました。[ext.commands]
Paginator.pagesを早期に閉じないように変更しました。 (GH-9257)
v2.1.1¶
バグ修正¶
GIF スタンプのファイル名の拡張子を検索するときのクラッシュを修正しました。
v2.1.0¶
新機能¶
Guild.ban()にdelete_message_secondsへのサポートを追加しました。 (GH-8391)AutoMod関連の監査ログアクションのサポートを追加しました。 (GH-8389)
アプリケーションコマンドで
ForumChannelアノテーションのサポートを追加しました。ForumChannel.default_thread_slowmode_delayのサポートを追加しました。ForumChannel.default_reaction_emojiのサポートを追加しました。ForumTagにて、フォーラムタグのサポートを追加しました。タグは
ForumChannel.available_tagsまたはForumChannel.get_tag()で取得できます。タグの変更方法や使い方については
Thread.edit()とForumChannel.edit()を参照してください。
- 新しい選択メニューの種類のサポートを追加しました。 (GH-9013, GH-9003)
これらは、
ChannelSelect、RoleSelect、UserSelect、MentionableSelectに分割されています。デコレータはこれまで通り単一の関数
select()を使用しています。選択メニューの種類の変更はclsキーワード引数によって行われます。
Guild.edit()で、discoverable と invites_disabled 機能を切り替えるためのサポートを追加しました。 (GH-8390)Interaction.translate()ヘルパーメソッドを追加しました。 (GH-8425)Forum.archived_threads()を追加しました。 (GH-8476)ApplicationFlags.active、UserFlags.active_developer、およびPublicUserFlags.active_developerを追加しました。InteractionResponse.send_message()にdelete_afterを追加しました。 (GH-9022)AutoModTrigger.regex_patternsのサポートを追加しました。[ext.commands]
app_commands.Group.extrasを設定できるGroupCog.group_extrasを追加しました。 (GH-8405)[ext.commands] 通常のコマンドでパラメータの説明を設定するのに NumPy スタイルの docstring が利用できるようになりました。
[ext.commands]
Greedyが呼び出し間で状態を維持できるようにしました。[ext.commands]
Cog.has_app_command_error_handlerを追加しました。 (GH-8991)[ext.commands]
Context.sendでdelete_afterが利用できるようになりました。 (GH-9021)
バグ修正¶
app_commands.Groupをモジュールなしで構築したときにKeyErrorが発生する問題を修正しました。 (GH-8411)Webhook URLの正規表現でピリオドがエスケープされていない問題を修正しました。 (GH-8443)
他の400ステータスコードエラーで
app_commands.CommandSyncFailureが送出される問題を修正しました。app_commands.CommandSyncFailureで_errorsを表示するかもしれないフォーマットの問題を修正しました。Guild.stage_instancesとGuild.schedule_eventsがGUILD_UPDATE時に空になる問題を修正しました。オーバーライドされた
app_commands.Group.on_error()の検出を修正しました。エラーハンドラが設定されている場合にも、
app_commands.CommandTree.on_error()が呼び出されているのを修正しました。DMChannel.permissions_for()でスレッドの権限がTrueに設定されている問題を修正しました。 (GH-8965)on_scheduled_event_deleteに渡されるパラメータが多すぎる場合がある問題を修正しました。 (GH-9019)[ext.commands]
Context.from_interactionがcommand_failedを無視する問題を修正しました。[ext.commands]
Rangeで 3.10 Union 構文が利用できるようになりました。 (GH-8446).[ext.commands] HybridGroupコマンドでfallbackコマンドがトリガーされない問題を修正しました(GH-8461, GH-8462)。
その他¶
app_commands.ContextMenuでバインドされていないコールバックのエラーメッセージを変更し、バインドされているメソッドは使用できないことを明確にしました。TypeError 例外で型のフォーマットを標準化しました。 (GH-8453)
VoiceProtocol.on_voice_state_update()とVoiceProtocol.on_voice_server_update()パラメータを位置指定専用に変更しました。 (GH-8463 )デフォルトの色付きロガーに、 PyCharm 対応を追加しました。 (GH-9015)
v2.0.1¶
バグ修正¶
Python 3.10 以降で
speedextrasを使用した場合にcchardetがインストールされる問題を修正しました。ui.View.interaction_check()に失敗したときにもui.Viewのタイムアウトが更新される問題を修正しました。interaction_check()が例外を送出したときにapp_commands.CommandTree.on_error()が実行されない問題を修正しました。非推奨の
pkg_resourcesの代わりにimportlib.metadataを使用するよう__main__スクリプトを修正しました。- ライブラリコールバックのパラメータ名が異なる場合に型チェックエラーが検出される問題を修正しました。
これに伴い バージョン保証 が改訂されました。
[ext.commands] Python 3.10 のユニオン型が
commands.Greedyで動作しない問題を修正しました。
v2.0.0¶
このバージョンの変更は大きすぎるため、この場所に収まりきりません。詳細については 移行についてのページ を参照してください。
v1.7.3¶
バグ修正¶
ギルドでアップロードされたスタンプに関するクラッシュを修正しました。
DMChannel.permissions_for()にPermissions.read_messagesが設定されていない問題を修正しました。
v1.7.2¶
バグ修正¶
fail_if_not_existsにより、特定のメッセージ参照がabc.Messageable.send()およびMessage.reply()内で使用できない問題を修正しました。 (GH-6726)ギルドからユーザーが脱退した際に
Guild.chunk()がハングするのを修正しました。 (GH-6730)最終反復の前ではなく後にループがスリープするのを修正しました。 (GH-6744)
v1.7.1¶
バグ修正¶
[ext.commands]
Cog.has_error_handlerが正常に動作しない問題を修正しました。
v1.7.0¶
このバージョンは、主にバグ修正と、機能改善が含まれています。 おそらくこのバージョンが、1.xシリーズの最後のメジャーバージョンとなる予定です。これ以降の作業は、主にv2.0に費やされます。 結果として、このバージョンが、Python 3.5をサポートする最後のバージョンになります。 同様に、このバージョンがユーザーボットをサポートする最後のバージョンです。
v2.0の開発には、破壊的更新と、新しいAPI機能の変更が含まれるでしょう。
新機能¶
StageChannelのサポートを追加しました。 (GH-6602, GH-6608)MessageReference.fail_if_not_existsのサポートを追加しました。 (GH-6484)デフォルトでは、もし返信するメッセージが存在しない場合、APIエラーが発生します。この属性は、Discord APIにメッセージが存在していない場合でも、問題がないことを伝えます。
Discordの新しい権限シリアライゼーションスキームのサポートを追加しました。
簡単にチャンネルの移動をする
abc.GuildChannel.move()を追加しました。新しい権限
Permissions.use_slash_commandsを追加しました。新しい権限
Permissions.request_to_speakを追加しました。VoiceChannel.rtc_regionによるボイスチャンネルの、ボイスリージョンのサポートを追加しました。 (GH-6606)PartialEmoji.url_as()のサポートを追加しました。 (GH-6341)MessageReference.jump_urlを追加しました。(GH-6318)File.spoilerを追加しました。 (GH-6317)rolesをGuild.estimate_pruned_members()に渡すことができるようになりました。(GH-6538)abc.Connectable.connect()において、クラスを生成する呼び出し可能オブジェクトを使用できるようになりました。( GH-6478 )クライアントのキャッシュから共通のギルドを取得する
User.mutual_guildsを追加しました。 (GH-2539, GH-6444)PartialMessage.edit()が成功時に完全なMessageを返すようになりました。 (GH-6309)RawMessageUpdateEvent.guild_idを追加しました。(GH-6489)AuditLogEntryがハッシュ可能になりました。 (GH-6495)Attachmentがハッシュ可能になりました。Attachment.content_type属性を追加しました。 (GH-6618)URLを取得するために
Atachmentをstrへキャストできるようになりました。Colour.randomにseedパラメータを追加しました。 (GH-6562)これは1つの呼び出しに対してのみシードします。複数の呼び出しに対するシードが望ましい場合は、
random.seed()を使用してください。
utils.remove_markdown()ヘルパー関数を追加しました。 (GH-6573)utils.oauth_url()にスコープを渡すことが可能になりました。 (GH-6568)[ext.commands]
ColourConverterにおいて、rgbCSS関数の文字列を変換できるようになりました。 (GH-6374)[ext.commands]
StoreChannelをStoreChannelConverterによって変換できるようになりました。 (GH-6603)[ext.commands]
Botのstrip_after_prefix初期化パラメーターを指定することで、プレフィックスのあとの空白を取り除けるようになりました。[ext.commands]
Context.invoked_parentsで、呼び出されたときのコマンドの親のエイリアスを取得できるようになりました。 (GH-1874, GH-6462)[ext.commands]
PartialMessage用のコンバーターext.commands.PartialMessageConverterを追加しました。 (GH-6308)[ext.commands]
Guild用のコンバーターext.commands.GuildConverterを追加しました。 (GH-6016, GH-6365)- [ext.commands]
Command.has_error_handlerを追加しました。 Cog.has_error_handlerも追加されました。
- [ext.commands]
[ext.commands] 呼び出し可能オブジェクトをクールダウンのバケットキーとして使用できるようになりました。 (GH-6563)
[ext.commands]
Paginatorにlinesepキーワード引数を追加しました。 (GH-5975)[ext.commands]
HelpCommand.verify_checksにNoneを指定することで、サーバー内でのみチェックを確認するようにできるようにしました。 (GH-2008, GH-6446)[ext.commands]
packageキーワード引数で、エクステンションをロードするときの相対パスを指定できるようになりました。 (GH-2465, GH-6445)
バグ修正¶
Client.allowed_mentionsが設定されていないときに、abc.Messageable.send()でmention_authorが渡されてもメンションしない問題を修正しました。 (GH-6192, GH-6458)- ユーザーが作成した
CustomActivityインスタンスがエラーを引き起こす問題を修正しました。 (GH-4049) 現在、Discordの制限により、Botはまだカスタムアクティビティを設定できません。
- ユーザーが作成した
VoiceClient.average_latencyにてZeroDivisionErrorが発生する問題を修正しました。 (GH-6430, GH-6436)User.public_flagsが編集時に更新されない問題を修正しました。 (GH-6315)Message.callが時々AttributeErrorを送出する問題を修正しました。 (GH-6390)新しいバージョンの
aiohttpで、リクエストの再試行中にファイルを再送するときに発生する問題を修正しました。 (GH-6531)Guild.query_members()を呼び出す際、user_idsに空のリストが指定された際にエラーが発生するようになりました。Guildが利用不可能なときに__str__メソッドがエラーを出す問題を修正しました。VoiceChannel.membersにアクセスする時にAttributeErrorが発生する潜在的なバグを修正しました。(GH-6602)discordパッケージがスクリプトとして実行された場合のみ実行されるようになりました。 (GH-6483)[ext.commands] コグのアンロード中、失敗することにより無関係なコマンドがアンロードされる可能性がある問題を修正しました。
[ext.commands] コグを
HelpCommandに設定した際にAttributeErrorが出る問題を修正しました。 (GH-5154)[ext.commands]
reinvoke()中にContext.invoked_withが不適切に再割り当てされる問題を修正しました。 (GH-6451, GH-6462)[ext.commands]
HelpCommand.get_bot_mappingで、コマンドが重複する問題を修正しました。 (GH-6316)[ext.commands] Botのコマンドシグネチャーで、位置限定引数を適切に処理するようになりました。 (GH-6431)
[ext.commands] グループのシグネチャーが
Command.signatureに正しく表示されるようになりました。 (GH-6529, GH-6530)
その他¶
v1.6.0¶
このバージョンでは、返信機能とスタンプ機能がサポートされるようになりました。
新機能¶
- 完全に再設計されたドキュメント。 これは何ヶ月もの努力の積み重ねで作られました。
ダークテーマが実装されました。変更するには、画面上の歯車から設定をしてください。これは自動的に行われます。
AppInfo.icon_url_as()とAppInfo.cover_image_url_as()が追加されました。 (GH-5888)ランダムな色が得られる、
Colour.random()が追加されました。 (GH-6067)Message.reply()で返信ができるようになりました。 (GH-6061)これには
AllowedMentions.replied_userの設定も含まれます。abc.Messageable.send()がMessageReferenceを受け付けるようになりました。MessageReferenceがユーザーによって生成できるようになりました。Message.to_reference()によってMessageオブジェクトをMessageReferenceに変換できるようになりました。
MessageReference.resolvedで解決済みメッセージを得ることができます。- ロールのタグがサポートされました。
Guild.premium_subscriber_roleで ニトロブースターロールを取得できます(利用可能な場合)。Guild.self_roleでサーバー内のBot自身のロールを取得できます(利用可能な場合)。Role.tagsでロールのタグを取得できます。Role.is_premium_subscriber()でロールがニトロブースターロールであるかを確認できます。Role.is_bot_managed()でロールがボットロール(自動的に作られたBot用ロール)であるかを確認できます。Role.is_integration()でインテグレーションによって作成されたロールかどうか確認できます。
Client.is_ws_ratelimited()でWebSocketのレート制限がされているかどうか確認できるようになりました。ShardInfo.is_ws_ratelimited()は特定のシャードのWebSocketレート制限をチェックします。
AsyncIteratorをAsyncIterator.chunk()を通してチャンク化できるようになりました。 (GH-6100, GH-6082)PartialEmoji.created_atを追加しました。 (GH-6128)- Webhookで送信したメッセージの編集と削除をサポートしました。 (GH-6058)
この機能のために
WebhookMessageが追加されました。
- チャンネルオブジェクトとメッセージIDのみでメッセージを操作できるようにするために、
PartialMessageを追加しました。 (GH-5905) これはメッセージを取得するために追加のAPI呼び出しをしたくないときに便利です。
- チャンネルオブジェクトとメッセージIDのみでメッセージを操作できるようにするために、
Emoji.url_as()を追加しました。 (GH-6162)メンバーシップゲート機能用に
Member.pendingのサポートを追加しました。Guild.create_role()でcolourパラメータにint型を渡すことができるようになりました。 (GH-6195)Guild.query_members()で、presences引数が使えるようになりました。 (GH-2354)[ext.commands]
commands.Cogにおいて、descriptionキーワード引数が使えるようになりました。 (GH-6028)[ext.tasks]
__call__を使うことによってラップされたコルーチン関数を呼び出せるようになりました。
バグ修正¶
HTTPリクエスト時にステータス503が繰り返し返されたとき、
DiscordServerErrorが出るようになりました。 (GH-6044)Client.fetch_template()が呼び出されたときAttributeErrorが出る問題を修正しました。 (GH-5986)音声を再生するときと別のボイスチャンネルへ移動するときに発生するエラーを修正しました。 (GH-5953)
ボイスチャンネルから切断するのが速すぎるときに発生する
AttributeErrorを修正しました。 (GH-6039)memberインテントがオフの場合に
Userの参照が古くなってしまう問題を修正しました。memberがキャッシュされておらず、userが何らかの形でキャッシュされている場合に
on_user_update()が発火されない問題を修正しました。- メッセージが更新されているとき、特定のケースで
Message.authorが上書きされてしまう問題を修正しました。 これにより、
Message.authorがUserになるようになりました。
- メッセージが更新されているとき、特定のケースで
Guild.edit()でpublic_updates_channelを変更する際にUnboundLocalErrorが発生する問題を修正しました。 (GH-6093)CustomActivity.created_atが初期化されない問題を修正しました。 (GH-6095)[ext.commands] コグのアンロード中に起きたエラーがモジュールのcleanupを止めないようになりました。 (GH-6113)
[ext.commands] コマンドを追加する際、エイリアスが競合したときに残ってしまうエイリアスを適切にクリーンアップするようになりました。 (GH-6217)
その他¶
Windowsにおいて呼び出された
ffmpegがウィンドウを開かないようになりました。 (GH-6038)ライブラリがビルドツールなしでPython3.9以上で動作するよう、依存関係を変更しました。 (GH-5984, GH-5970)
Python3.9においてSyntaxErrorになるdocstringの問題を修正しました。 (GH-6153)
Windows用のopusバイナリをバージョン1.2.1から1.3.1に更新しました。 (GH-6161)
Guild.create_role()のcolour引数でint型が使えるようになりました。 (GH-6195)[ext.commands]
MessageConverterのregexがwww.プレフィックスをサポートするように更新されました。 (GH-6002)[ext.commands]
UserConverterは、IDが渡され、そのユーザーがキャッシュされていない場合にAPIからデータを取得するようになりました。[ext.commands]
max_concurrencyがクールダウンの前に呼び出されるようになりました。 (GH-6172)
v1.5.1¶
バグ修正¶
utils.escape_markdown()が引用符を正しくエスケープしない問題を修正しました。 (GH-5897)チャンネルをチャンネルリストの最後まで移動する際の問題を修正しました。 (GH-5923)
PermissionOverwriteにおける__eq__のおかしい挙動を修正しました。 (GH-5929)別のボイスチャンネルに移動する時にBotがボイスチャンネルから切断されてしまう問題を修正しました。 (GH-5945)
遅延on_readyディスパッチ中にチャンキングがタイムアウトする場合の属性エラーを修正しました。
Bot自身のmemberオブジェクトがキャッシュから削除されないことが保証されるようになりました。 (GH-5949)
その他¶
MemberCacheFlags.joinedが設定されている場合、memberがGUILD_MEMBER_UPDATEイベントでロードされるようになりました。 (GH-5930)- [ext.commands]
MemberConverterは、memberがキャッシュから利用できない場合に遅延ロードでmemberを取得するようになりました。 これは
discord.Memberを型ヒントとして使うのと同じです。
- [ext.commands]
Guild.chunk()によって、Gatewayに負荷をかけずに同時呼び出しができるようになりました。
v1.5.0¶
このバージョンでは、Discordが10月7日に行う、すべてのBotに要求している強制的な破壊的変更が含まれています。Intentsに関するドキュメント ゲートウェイインテント入門 を読むことを強くおすすめします。
APIの変更¶
APIの変更により、memberとpresenceの情報は取得されなくなります。 詳細は 特権インテント を参照してください。
結果として、 memberインテントが有効でない場合、オフラインメンバーの取得が無効になります。
新機能¶
Clientにおいて、intents引数にIntentsを渡すことでゲートウェイインテントがサポートされるようになりました。VoiceRegion.south_koreaが追加されました。 (GH-5233)Colour.dark_theme()クラスメソッドが追加されました。 (GH-1584)AllowedMentions.none()とAllowedMentions.all()が追加されました。 (GH-5785)DiscordServerErrorのサブクラスとして、 ステータス500エラーの具体的な例外を追加しました。 (GH-5797)音声フローをより良く交差させるため、
VoiceProtocolを実装しました。ギルドをチャンク化して取得する
Guild.chunk()を追加しました。メンバーキャッシュをより適切に制御するために
MemberCacheFlagsを追加しました。詳細は メンバーキャッシュ を参照してください。ActivityType.competingのサポートを追加しました。 (GH-5823)これはAPIとしては現在未使用のようです。
メッセージ参照のサポート、
Message.referenceを追加しました。 (GH-5754, GH-5832)ColourConverterのエイリアスColorConverterを追加しました。 (GH-5773)PublicUserFlags.verified_bot_developerのエイリアスをPublicUserFlags.early_verified_bot_developerの下に追加しました。(GH-5849)[ext.commands]
Commandにrequire_var_positionalのサポートを追加しました。 (GH-5793)
バグ修正¶
Guild.by_category()がいくつかのチャンネルを表示しない問題を修正しました。abc.GuildChannel.permissions_syncedが常にFalseになる問題を修正しました。 (GH-5772)Webhook関連のリクエストでcloudflareにBANされた際の処理に発生するバグを修正しました。(GH-5221)
キープライブスレッドが既に死んでいるにも関わらずackをするのを修正しました。(GH-5800)
メッセージイベントでキャッシュが無効になった際に、
Memberの参照が古くなる問題を修正しました。 (GH-5819)単一のファイルを送信したときに
allowed_mentionsが送信されない問題を修正しました。 (GH-5835){}が渡された場合、abc.GuildChannel.edit()でoverwritesが無視されるのを修正しました。(GH-5756, GH-5757)[ext.commands] コマンド呼び出しフックでの例外が正しく送出されない問題を修正しました。 (GH-5799)
[ext.commands] コグを追加するときにエラーが発生した場合にコマンドが正しく除去されない問題を修正しました。 (GH-5804)
[ext.commands] クールダウンのタイミングが編集のタイムスタンプを無視していたのを修正しました。
その他¶
Webhookリクエストをログに記録するように変更しました。 (GH-5798)
AutoShardedClient.shardsからキャッシュレイヤーを削除しました。これは、シャードを起動する前にクエリを実行すると問題が発生するためです。ゲートウェイレート制限の処理が行われるようになりました。
ミスキャッシュによる警告レベルのログがDEBUGレベルのログに変更されました。
一部の文字列は、メモリ使用量を削減するために明示的にインターンされるようになりました。
将来的に壊れる可能性のある変更を避けるために、namedtuplesの使用が削減されました。(GH-5834)
[ext.commands] ビルトインコンバータから送出されていた全ての
BadArgument例外は、判別しやすいよう具体的な例外を発生させるようになりました。 (GH-5748)[ext.tasks] Lazily fetch event loop to prevent surprises when changing event loop policy (GH-5808)
v1.4.2¶
これは v1.5.0 からのバックポートによるメンテナンスリリースです。
バグ修正¶
Guild.by_category()がいくつかのチャンネルを表示しない問題を修正しました。abc.GuildChannel.permissions_syncedが常にFalseになる問題を修正しました。 (GH-5772)Webhook関連のリクエストでcloudflareにBANされた際の処理に発生するバグを修正しました。(GH-5221)
キープライブスレッドが既に死んでいるにも関わらずackをするのを修正しました。(GH-5800)
メッセージイベントでキャッシュが無効になった際に、
Memberの参照が古くなる問題を修正しました。 (GH-5819)単一のファイルを送信したときに
allowed_mentionsが送信されない問題を修正しました。 (GH-5835){}が渡された場合、abc.GuildChannel.edit()でoverwritesが無視されるのを修正しました。(GH-5756, GH-5757)[ext.commands] コマンド呼び出しフックでの例外が正しく送出されない問題を修正しました。 (GH-5799)
[ext.commands] コグを追加するときにエラーが発生した場合にコマンドが正しく除去されない問題を修正しました。 (GH-5804)
[ext.commands] クールダウンのタイミングが編集のタイムスタンプを無視していたのを修正しました。
その他¶
AutoShardedClient.shardsからキャッシュレイヤーを削除しました。これは、シャードを起動する前にクエリを実行すると問題が発生するためです。[ext.tasks] Lazily fetch event loop to prevent surprises when changing event loop policy (GH-5808)
v1.4.1¶
バグ修正¶
Client.close()が呼び出されたときに正常に接続を終了するようにしました。 (GH-5207)埋め込みの作者や画像がすでにクリアされているときにクリアしようとするとエラーが発生するのを修正しました。 (GH-5210, GH-5212)
編集可能なエクステンションを利用できるように
__path__を修正しました。 (GH-5213)
v1.4.0¶
長い開発時間を持つ別のバージョンです。Intentsのような機能はv1.5リリースでリリースされる予定です。ご理解いただきありがとうございます!
新機能¶
- メンションの動作を制御する
AllowedMentionsを追加しました。 これは
Client.allowed_mentionsから設定することができます。abc.Messageable.send()を介してメッセージごとに設定することもできます。
- メンションの動作を制御する
AutoShardedClientは、マルチプロセスクラスタに適した設計に完全に変更されました。(GH-2654)シャードに関する情報を取得するために
ShardInfoを追加しました。ShardInfoでは、特定のシャードの再接続と切断も可能です。シャードに関する情報を取得するための
AutoShardedClient.get_shard()とAutoShardedClient.shardsを追加しました。接続フロー全体をリワークして、
IDENTIFYレート制限の対応を改善しました。IDENTIFYが完了する前に何を行うべきかをよりよく制御できるClient.before_identify_hook()を追加しました。on_shard_connect()、on_shard_disconnect()、on_shard_resumed()などのシャード関連イベントを追加しました。
- サーバーテンプレートのサポートを追加しました。 (GH-2652)
テンプレートの情報を読むために
Templateを追加しました。テンプレートの情報を API から取得するには
Client.fetch_template()が使用できます。Client.create_guild()は任意で作成元のテンプレートを取ることができます。Botアカウントでは、ギルドのテンプレートの取得は現在制限されていることに注意してください。
- ギルドインテグレーションのサポートを追加しました。 (GH-2051, GH-1083)
Integrationはインテグレーション情報の読み取りに使用されます。IntegrationAccountはインテグレーションアカウント情報の読み取りに使用されます。Guild.integrations()はギルド内の全てのインテグレーションを取得します。Guild.create_integration()はインテグレーションを作成します。Integration.edit()は既存のインテグレーションを編集します。Integration.delete()はインテグレーションを削除します。Integration.sync()はインテグレーションを同期します。これには現時点で監査ログのサポートはありません。
VerificationLevel.extremeの別名をVerificationLevel.very_highの下に追加しました (GH-2650)VoiceClient.latencyとVoiceClient.average_latencyを追加しました。 (GH-2535)Attachment.to_file()にパラメータuse_cachedとspoilerを追加しました。 (GH-2577, GH-4095)Guild.create_category()にてpositionパラメータのサポートを追加しました。 (GH-2623)Role.edit()のロールカラーにintが渡せるようになりました。 (GH-4057)埋め込みの作者を削除する
Embed.remove_author()が追加されました。 (GH-4068)Embed.Emptyを使用してEmbed内のサムネイルと画像をクリアできるようになりました。 (GH-4053)Guild.max_video_channel_usersを追加。( GH-4120 )Guild.public_updates_channelを追加。( GH-4120 )GUILD_CREATEに時間がかかりすぎるとき、タイムアウトをコントロールできようにguild_ready_timeoutパラメータをClientに追加しました。 (GH-4112)User.public_flagsとPublicUserFlagsを介しユーザーフラグのサポートを追加しました。 (GH-3999)TextChannel.edit()を介してニュースチャンネルの種類を変更することができるようにしました。(GH-4121 )一回のAPI呼び出しでロールの位置を一括変更できる
Guild.edit_role_positions()を追加しました。 (GH-2501, GH-2143)ギルド内のボイスステートを変更する
Guild.change_voice_state()を追加しました。 (GH-5088)ギルドにアニメーションアイコンがあるか判断する
PartialInviteGuild.is_icon_animated()を追加しました。 (GH-4180, GH-4181)static_formatがPartialInviteGuild.icon_url_as()に追加されました (GH-4180, GH-4181)Guild.query_members()で、user_ids引数が使えるようになりました。Guild.prune_members()でメンバーをロールにより一括キックできるようになりました。 (GH-4043)[ext.commands]
before_invoke()とafter_invoke()デコレーターを実装。 ( GH-1986, GH-2502 )[ext.commands]
Command.get_cooldown_retry_afterによってコマンド中のクールダウンからretry_afterを取得する方法を追加しました (GH-5195)[ext.commands]
HelpCommandから動的にチェックを追加したり削除したりする方法を追加しました (GH-5197)[ext.tasks] タスクオブジェクトに
Loop.is_runningメソッドを追加しました (GH-2540)[ext.tasks]
Loop.errorデコレーターを用いたタスクに対するコマンド拡張と同様のカスタムエラーハンドラーの使用を可能にしました (GH-2621)
バグ修正¶
PartialEmoji.urlでの読み込みエラーを修正しました。 (GH-4015, GH-4016)aroundが渡された場合でも、abc.Messageable.history()が上限1を取ることができるようにしました。 (GH-4019)ギルドからメンバーが脱退したとき、特定の場合に
Guild.member_countが更新されない問題を修正しました。 (GH-4021)Object.idの型が検証されない問題を修正されました。後方互換性のためstrは使用可能ですが、intに変換されます。 (GH-4002)Guild.edit()で通知設定の編集ができない問題を修正しました。 (GH-4074, GH-4047)ギルドウィジェットの中にペイロードにないチャンネルが含まれている場合にクラッシュする問題を修正しました。 (GH-4114, GH-4115)
FFmpegOpusAudioおよびFFmpegPCMAudioを使って生成されたプロセスからの ffmpeg stdin のハンドリングを閉じるようにしました (GH-4036)utils.escape_markdown()がマスクされたリンクをエスケープしない問題を修正しました。 (GH-4206, GH-4207)空のカテゴリーを返さない
Guild.by_category()を修正しました (GH-4186)特定の JPEG 画像が JPEG として認識されないのを修正 (GH-5143)
反応情報を取得する際に不完全なギルドオブジェクトを使用するとクラッシュする問題を修正しました (GH-5181)
Guild.query_members()を使用してメンバーを取得する際のタイムアウトの問題を修正しました。PartialEmoji.idが文字列である可能性がある問題を修正しました (GH-4153, GH-4152)Member.activitiesがクリアされないリグレッションを修正しました。[ext.commands]
commands.Greedy内でtyping.Optionalを使用するとTypeErrorが発生します (GH-2253, GH-5068).[ext.commands]
Bot.walk_commandsはエイリアスにより重複したコマンドを生成しないようになりました (GH-2591)[ext.commands]
HelpCommand.clean_prefixで正規化されていない文字を修正しました (GH-4058, GH-4071)[ext.commands] 名前に空白文字しかない場合にエラーを発生させないように
Bot.get_commandを修正しました (GH-5124)[ext.commands]
Context.subcommand_passedが期待通りに機能しない問題を修正しました (GH-5198)[ext.tasks] Task objects are no longer stored globally so two class instances can start two separate tasks (GH-2294)
[ext.tasks] 内のループをキャンセルできるようにする。
before_loop(GH-4082)
その他¶
v1.3 で導入された
Member.rolesキャッシュは、問題が発生したため元に戻されました (GH-4087, GH-4157)- さらにいくつかの API リクエストで、監査ログ用の
reasonパラメータが取得されました (GH-5086)
- さらにいくつかの API リクエストで、監査ログ用の
パフォーマンス上の理由から、
websocketsは削除され、aiohttp.wsが使用されるようになりました。ブロッキングのログメッセージは、メインスレッドがブロッキングしていた場所のスタックトレースを表示するようになりました
必要なドメイン移行の準備のため、ドメイン名を
discordapp.comからdiscord.comに変更しました。メッセージキャッシュに保持されている古い参照による再接続時のメモリ使用量を削減しました (GH-5133)
テンポラリオブジェクトをあまり作成しないように
abc.GuildChannel.permissions_for()を最適化しました (20-32%の節約)。[ext.commands] 重複するエラーが登録された場合、
ClientExceptionではなくCommandRegistrationErrorを発生するようにしました (GH-4217)[ext.tasks] タスクの再接続ループにおいて、デフォルトで
HTTPExceptionを処理しないようにしました (GH-5193)
v1.3.4¶
バグ修正¶
チャンネルの上書きがクラッシュを含む複数の問題を引き起こす問題を修正しました (GH-5109)
v1.3.3¶
バグ修正¶
- デフォルトのWSクローズを1000から4000に変更。
以前のクローズコードは、望ましい頻度よりも高い頻度でセッションが無効化される原因となっていました。
Member.activitiesに表示されるNoneを修正しました。(GH-2619)
v1.3.2¶
もう一つのマイナーなバグフィックスリリースです。
バグ修正¶
AutoShardedClientのGUILD_CREATEストリームでon_readyが発生するまでの待ち時間を長くするようにしました。on_voice_state_update()は内側のmemberペイロードを使用するようになり、より信頼性が高くなりました。Message.guildがGuildではなくObjectであった場合のクラッシュを修正しました。Webhook.send()がwait=Falseの時にNoneではなく空の文字列を返すように修正しました。Webhook の状態における無効なフォーマット指定子を修正 (GH-2570)
[ext.commands] パーミッション関連のチェックで無効なパーミッションを渡すと
TypeErrorが発生するようになりました。
v1.3.1¶
マイナーなバグフィックスリリースです。
バグ修正¶
ユーザーが参加していないギルドの招待状をフェッチするように修正しました。
メッセージ送信時に
Client.fetch_channel()から返されるチャンネルを修正しました。(GH-2531)
その他¶
Python 3.9 alpha を使用する際の互換性警告を修正。
ノイズを減らすために、不明なイベントのログをWARNINGからDEBUGに変更します。
v1.3.0¶
このバージョンでは、多くのバグフィックスと新機能が搭載されています。予想以上に長い期間、開発が続けられているのです!
新機能¶
HTTP API からメンバーを取得するための
Guild.fetch_members()を追加しました。(GH-2204)HTTP API からロールをフェッチするために
Guild.fetch_roles()を追加しました。(GH-2208)Client.application_info()で取得する際に、Teamを介してチームをサポートする機能を追加しました。(GH-2239)Message.edit()による埋め込みの抑制をサポートするようにしました。ギルドサブスクリプションのサポートを追加しました。詳細は
Clientのドキュメントを参照してください。メンバーキャッシュに依存せずに音声の状態を取得するために、
VoiceChannel.voice_statesを追加しました。ゲートウェイにメンバーを要求するために
Guild.query_members()を追加しました。FFmpegOpusAudioを追加し、その他の音声の改良を行いました。(GH-2258)Rawメッセージの更新時にチャンネルIDを取得するための
RawMessageUpdateEvent.channel_idを追加しました。(GH-2301)リアクションイベントでリアクションが追加されたか除去されたかを明確にする
RawReactionActionEvent.event_typeを追加しました。権限がカテゴリと同期されているかを確認する
abc.GuildChannel.permissions_syncedを追加しました。 (GH-2300, GH-2324)フォローされているアナウンスチャンネル用の
MessageType.channel_follow_addメッセージタイプを追加しました。(GH-2314)システムメッセージを素早くフィルタリングできるように
Message.is_system()を追加しました。誰かがGo Live経由でストリーミングしているかどうかを示すための、
VoiceState.self_streamを追加しました。 (GH-2343)クライアントユーザーが絵文字を使用できるかどうかを確認できるように、
Emoji.is_usable()を追加しました。 (GH-2349)VoiceRegion.europeとVoiceRegion.dubaiを追加しました。 (GH-2358, GH-2490)ニュースチャンネルをフォローする
TextChannel.follow()を追加しました。 (GH-2367)Permissions.view_guild_insights権限を追加しました。 (GH-2415)ウェブフック(
WebhookType)の種類を問い合わせるためのWebhook.typeを追加しました。 (GH-2441)チャンネル上書きの一括編集を
abc.GuildChannel.edit()を通して行えるようにしました。(GH-2198)アクティビティがいつ開始されたかを確認するために
Activity.created_atを追加しました。(GH-2446)音声用の
xsalsa20_poly1305_lite暗号化モードのサポートを追加しました。(GH-2463)リアクションを行ったメンバーを取得するために
RawReactionActionEvent.memberを追加しました。(GH-2443)Streaming.platformとStreaming.gameによる新しい YouTube ストリーミングのサポートを追加しました。(GH-2445)ディスカバリースプラッシュイメージアセットを取得するために
Guild.discovery_splash_urlを追加しました。(GH-2482)- パブリック・ギルドのルール・チャンネルを取得するために
Guild.rules_channelを追加しました。(GH-2482) なお、この機能はサーバーディスカバリーに参加されている方、または参加予定の方に限定しています。
- パブリック・ギルドのルール・チャンネルを取得するために
Message.flagsとMessageFlagsによるメッセージフラグのサポートを追加しました。(GH-2433)ユーザーがDiscord Trust and Safetyの公式アカウントであるかどうかを知るために、
User.systemとProfile.systemを追加しました。ユーザーがチームのメンバーであるかどうかを確認するために
Profile.team_userを追加しました。添付ファイルを簡単に
Fileに変換して送信できるようにAttachment.to_file()を追加。- UIにマッチするように、特定のエイリアスを
Permissionsに追加しました。(GH-2496)
- UIにマッチするように、特定のエイリアスを
Permissionsを作成する際に、キーワード引数を渡せるようになりました。CustomActivityによるカスタムアクティビティーのサポートを追加しました。(GH-2400)なお、現在のところ、ボットはまだカスタムアクティビティを送信できません。
on_invite_create()とon_invite_delete()イベントのサポートを追加しました。- メッセージから特定のリアクション絵文字を消去する機能を追加しました。
Message.clear_reaction()およびReaction.clear()メソッドを使用します。on_raw_reaction_clear_emoji()とon_reaction_clear_emoji()イベントです。
特定の日付までスリープさせる
utils.sleep_until()ヘルパーを追加しました。(GH-2517、GH-2519)[ext.commands] チームと
Bot.owner_idsが複数のボットオーナーを持つためのサポートを追加しました。(GH-2239)[ext.commands] 新しい
BucketType.roleのバケットタイプを追加しました。(GH-2201)です。[ext.commands]
Command.cogのプロパティを公開します。(GH-2360)[ext.commands]
Command.add_checkおよびCommand.remove_checkによりコマンドにチェックを追加する非デコレーターインターフェイスを追加しました。(GH-2411)[ext.commands]
has_guild_permissionsのチェックを追加しました。(GH-2460)[ext.commands]
has_guild_permissionsのチェックを追加しました。(GH-2460)[ext.commands]
check()で装飾されたチェックにpredicate属性を追加しました。[ext.commands]
check_any()チェックを論理的 OR 複数のチェックに追加しました。[ext.commands] 待ち時間やエラーになる前に、ある一定のユーザーだけがコマンドを同時に使用できるようにするための
max_concurrency()を追加しました。[ext.commands]
Commandを通常の関数として呼び出すためのサポートを追加しました。[ext.tasks]
Loop.add_exception_typeが、複数の例外を設定できるようになりました。(GH-2333)[ext.tasks] Add
Loop.next_iterationプロパティを追加しました。(GH-2305)
バグ修正¶
所有者がいないギルドで権限解決に失敗することがある問題を修正しました。
トークンは、使用時に剥奪されるようになりました。(GH-2135)
Emoji.edit()にnameを渡す必要はなくなりました。(GH-2368)utils.escape_markdown()のURLハンドリングにおけるミスマッチを修正しました。(GH-2420)音声接続において、ビッグエンディアンであるべきポートがリトルエンディアンで読み込まれる問題を修正しました。(GH-2470)
メッセージのギルドが考慮されない
Member.mentioned_in()を修正しました。チャンネルの削除と作成によりポジションにギャップがある場合、チャンネルを移動する不具合を修正。
fetch_offline_membersが無効の場合、on_shard_ready()が発火されない問題を修正しました。(GH-2504)シャードを使用している大きなBotが
on_ready()を実際に発火するのに長い時間を掛けていた問題を修正しました。Client.fetch_invite()でグループDMベースの招待を取得する際の問題を修正しました。10つのファイルをWebhookで送信する際、ファイルの順序が狂う問題を修正しました。
[ext.commands] ImportErrorによって内部的に失敗する拡張機能は、
ExtensionNotFoundを発生させなくなりました。(GH-2244, GH-2275, GH-2291)[ext.commands]
Paginator.suffixを更新しても、計算が古くならないようにしました。(GH-2251)[ext.commands] カスタム拡張パッケージからのコンバータを許可します。(GH-2369, GH-2374) のようになります。
[ext.commands] paginator のプレフィックスが
Noneであるために空のページが発生する問題を修正しました。(GH-2471)[ext.commands]
Greedyはパージングエラーを伝播するのではなく、無視するようになりました。[ext.commands]
Command.can_runがコマンドが無効かどうかをチェックするようになりました。[ext.commands]
HelpCommand.clean_prefixがニックネームのメンションを考慮するようになりました。 (GH-2489)[ext.commands]
Context.send_helpがHelpCommand.on_help_command_errorハンドラに正しく伝播するようになりました。
その他¶
ライブラリは警告なしに Python 3.8 を完全にサポートするようになりました。
依存ライブラリ
websocketsのバージョンを 8.0 に上げました。(GH-2453)Discordがメンションで
Memberデータを提供するようになったため、メンションされたユーザーがMemberにより多くの機会でアップグレードされるようになりました。utils.escape_markdown()が新しい引用マークダウンを正しくエスケープするようになりました。メッセージキャッシュを
Clientのmax_messagesにNoneを渡すことで無効にできるようになりました。デフォルトのメッセージキャッシュサイズは、小さなボットに対応するために5000から1000に変更されました。
Roleにて、必要な場合のみ特定のオブジェクトを作成することによりメモリ使用量を削減しました。セッションの無効化の長いループを防ぐために、再接続中に再度IDENTIFYする前に5秒間待つようになりました。
- レート制限コードは、より細かいレート制限処理を行うためにミリ秒の精度を使用するようになりました。
それに伴い、レート制限コードはDiscordのレスポンスを使用して待つようになりました。 何らかの理由でシステムクロックを使用する必要がある場合は、
Clientでassume_synced_clockを渡すことを検討してください。
Guild.default_roleのパフォーマンスが O(N) から O(1) に改善されました。 (GH-2375)予期しないパフォーマンストラップを避けるために、キャッシュを使用して
Member.rolesのパフォーマンスを改善しました。メモリの断片化を防ぐため、大規模なメモリの割り当て解除 (ギルドの除去など) が引き起こされた後に手動でガベージコレクションを行うようになりました。
ユーザビリティや正確性を向上させ、リンターエラーを修正するため、ドキュメントに多くの変更がありました。 貢献したすべての人に感謝します。
opus モジュールの読み込みを遅延させるようにしました。このため
opus.is_loaded()の結果が予想しないものになるかもしれません。[ext.commands] DM内の@で始まるユーザー名が、
Userコンバータを使用したとき正しく変換されるようになりました。 (GH-2498)[ext.tasks] タスクの待ち時間が、タスク本体が実行するのにかかった時間を考慮に入れるようになりました。 (GH-2516)
v1.2.5¶
バグ修正¶
絵文字構造の
animatedフィールドが存在しないとしてクラッシュするバグを修正しました。
v1.2.4¶
バグ修正¶
Message.channelがNoneになるリグレッションを修正しました。Message.edited_atが編集中に更新されないリグレッションを修正しました。VoiceChannel.connect()が応答しないバグを修正しました。(GH-2274、 GH-2372、 GH-2373、 GH-2377)トークンのないWebhookに関するクラッシュを修正しました。(GH-2364)
Discord バグにより
Guild.premium_subscription_countがNoneになる問題を修正しました。(GH-2331, GH-2376)
v1.2.3¶
バグ修正¶
on_member_update()でMember.premium_sinceにアクセスした際の AttributeError を修正しました。 (GH-2213)abc.Messageable.typing()コンテキストマネージャでのasyncio.CanceledErrorを処理するようにしました。 (GH-2218)ニトロブーストを考慮し、最大エンコーダビットレートを512kbpsに引き上げ。 (GH-2232)
Client.run()にて例外を適切に伝播するようにしました。(GH-2237)[ext.commands] コグレベル
command_attrsで使用されるクールダウンが正しくコピーされるようにしました。
v1.2.2¶
バグ修正¶
監査ログ関連の属性アクセスは、本来すべきでないときにエラーを起こさないよう修正されました。
v1.2.1¶
バグ修正¶
User.avatar_urlと関連する属性がエラーを引き起こさないように修正しました。enum.Enumコードの互換性が向上しました。
v1.2.0¶
今回のアップデートでは、主にパフォーマンスの向上と、さまざまなニトロブースト属性(APIでは「プレミアムギルド」と呼ばれます) が追加されました。
新機能¶
Guild.premium_tierで、ギルドの現在のニトロブーストレベルが取得できます。ブーストを考慮してギルドの新しい制限を取得する
Guild.emoji_limit、Guild.bitrate_limit、Guild.filesize_limitを追加しました。ギルドをブーストしているメンバー数を取得する
Guild.premium_subscription_countを追加しました。メンバーがギルドをブーストし始めた日時を取得する
Member.premium_sinceを追加しました。現在ギルドをブーストしているメンバーをすべて取得する
Guild.premium_subscribersを追加しました。- ギルドの
Guild.system_channelの設定を取得するGuild.system_channel_flagsを追加しました。 SystemChannelFlagsという新しい型も含まれます。
- ギルドの
絵文字が(ギルド内またはそれ以外で)利用できるかを確認する
Emoji.availableを追加しました。Guild.icon_url_as()とGuild.icon_urlにアニメーションアイコンのサポートを追加しました。Guild.is_icon_animated()を追加しました。ニトロブーストに関する様々な新しい
MessageTypeのサポートを追加しました。VoiceRegion.indiaを追加しました。 (GH-2145)Embed.insert_field_at()を追加しました。 (GH-2178)すべてのチャンネルに対し、適切な
ChannelTypeを返すtype属性を追加しました。 (GH-2185 )HTTP経由でチャンネルをIDにより取得する、
Client.fetch_channel()を追加しました。(GH-2169)HTTP経由でチャンネルをすべて取得する、
Guild.fetch_channels()を追加しました。(GH-2169)[ext.tasks] タスクをキャンセルするのではなく、現在のタスクが終了後に停止させる
Loop.stopを追加しました。[ext.tasks] タスクが何らかの理由で失敗したかを調べる
Loop.failedを追加しました。[ext.tasks] 実行時に待機時間を変更できる
Loop.change_intervalを追加しました。(GH-2158, GH-2162)
バグ修正¶
Guild.prune_members()を使用した場合の内部エラーを修正しました。[ext.commands] 多くの場合において
Command.invoked_subcommandが誤っているのを修正しました。[ext.tasks] ループが終了し、再起動されたときに反復回数をリセットするようにしました。
[ext.tasks] デコレータインターフェースをスタックした時に期待通り動作するようになりました。 (GH-2154)
その他¶
- 列挙型に関連するすべてのコードのパフォーマンスを大幅に向上させました。
これは、
enum.Enumコードを API 互換のコードに置き換えることによって行われました。ダックタイピングを使用しているため、ほとんどのユーザーにとっては破壊的変更ではありません。
メッセージ作成のパフォーマンスを約1.5倍向上させました。
メッセージ編集のパフォーマンスが約1.5~4倍向上しました。(内容のサイズに依存します)
Memberの属性へのアクセスのパフォーマンスが2倍向上しました。utils.get()のパフォーマンスを、使用状況に応じて約 4-6倍 向上させました。イベント解析中のルックアップのパフォーマンスを約2.5倍向上させました。
Client.start()とClient.run()のキーワード引数を検証するようにしました。 (GH-953, GH-2170)HTTPExceptionの例外メッセージにDiscordのエラーコードが表示されるようになりました。ライブラリによって実行された内部タスクに独自のカスタム
__repr__を追加しました。すべての公開された型に、適切でより詳細な
__repr__を追加しました。
v1.1.1¶
バグ修正¶
WebhookがHTTPリクエストを再試行する時にデータを上書きしないようにしました。 (GH-2140)
その他¶
一部のユーザーが適切なクリーンアップを行うときに問題が生じていたため、
Client.run()にシグナル処理を再度追加しました。
v1.1.0¶
新機能¶
- バックグラウンドタスクを簡単にするための新しい拡張機能が追加されました。
使い方の説明は、 API Reference で確認できます。
Permissions.stream権限を追加しました。 (GH-2077)Assetに等価比較とハッシュサポートを追加しました。Guild.prune_members()にcompute_prune_membersパラメータを追加しました。 (GH-2085)メッセージキャッシュを取得する
Client.cached_messages属性を追加しました。 (GH-2086)ギルドのチャンネルをコピーする
abc.GuildChannel.clone()メソッドが追加されました。( GH-2093 )Message.delete()にキーワード限定引数delayが追加されました。( GH-2094 )<:name:id>のフォーマットでリアクションを追加できるようになりました。( GH-2095 )アセットを
bytesオブジェクトとして取得するAsset.read()メソッドが追加されました( GH-2107 )添付ファイルを
bytesオブジェクトとして取得するAttachment.read()メソッドが追加されました( GH-2118 )Member.move_to()にNoneを渡すことでボイスチャンネルから強制切断できるようになりました。
discord.ext.commands¶
dm_only()チェックが追加されました。呼び出し可能オブジェクトのコンバーターを
Greedyで使えるようになりました。MessageConverterが追加されました。これにより、
Messageを関数の型ヒントで使えるようになりました。
親コマンドを取得する
Command.parentsが追加されました。( GH-2104 )
バグ修正¶
Widgetの__repr__でAttributeErrorが発生するバグを修正しました。abc.GuildChannel.overwritesのキーがNoneになるバグを修正しました。TextChannel.is_nsfw()等でのNSFWのチェックを修正しました。RequestsWebhookAdapterでエラーが発生したときのUnboundLocalErrorを修正しました。ボットのユーザーをアップデートしてもメンバーオブジェクトが更新されないバグを修正しました。
discord.ext.commands¶
モジュール以外での無名コンバーターを修正しました。(例:
eval)- クールダウンの計算にメッセージの作成時間を使用するようになりました。
これにより、RESUME中でのクールダウンの挙動が修正されました。
新しいスタイルのコグのため、
on_command_error()のデフォルトの挙動を修正しました。( GH-2094 )DMチャンネルが
is_nsfw()に認識されるようになりました。ヘルプコマンドの競合状態を修正しました。 (GH-2123)
MinimalHelpCommandにコグの説明が表示されるようになりました。( GH-2139 )
その他¶
ライブラリ内での列挙型の作成が約5倍早くなりました。
python -m discord --versionの出力を改善しました。ループのクリーンアップがまた書き直されました。
Client.run()でのシグナル制御が削除されました。
discord.ext.commands¶
ライブラリ内の全てのチェックがカスタム例外クラスを使うようになりました( GH-2101 )
v1.0.1¶
バグ修正¶
v1.0.0¶
このバージョンの変更は大きすぎるため、この場所に収まりきりません。詳細については 移行についてのページ を参照してください。
v0.16.6¶
バグ修正¶
Client.create_server()によって動作が停止する問題を修正しました。StreamPlayer.stopの呼び出し時にメインスレッドがブロックされるのを修正しました。HEARTBEAT_ACKを処理し、正常に再開します。
既に開放されているロックを解放しようとする原因になっていた先制的なレート制限を行っている時の競合状態を修正しました。
コルーチンを直ちにキャンセルするときに無効な状態になるエラーを修正しました。
v0.16.1¶
このリリースはバグ修正であり、いくつかのレート制限の実装が改善されています。
バグ修正¶
ユーザーボットがサーバーを適切にチャンクするようにしました。
アセットのAPI URLの代わりにCDN URLが使用されるようになりました。
レート制限の実装が可能な場合ヘッダ情報を利用するようにしました。
イベントループが正しく伝播するようにしました。 (GH-420)
Client.send_message()とClient.send_file()でFalseに変換される値を利用できるようにしました。
v0.16.0¶
新機能¶
チャンネルの権限上書きをすべて取得する
Channel.overwritesを追加しました。パートナーサーバーの情報を得ることのできる
Server.featuresを追加しました。
バグ修正¶
on_ready()を実行中にオフラインメンバーを待っているとき、タイムアウトするようにしました。以前はタイムアウトしなかったため、ライブラリで数千もの
Memberインスタンスが作成されメモリ使用量が大幅に上昇する大規模なメモリリークが発生していました。
ゲートウェイでヌル値のシーケンスを破棄するようにしました。
以前は破棄されていなかったため、
on_ready()がon_resumed()の代わりに呼び出されることがありました。これが修正されたため、多くの場合ではon_ready()は一、二回呼び出されるだけで、on_resumed()がより頻繁に呼び出されるようになります。
v0.15.1¶
重複したり、順番になっていないリアクションによるクラッシュを修正しました。
v0.15.0¶
新機能¶
メッセージのリッチな埋め込みをサポートするようにしました。
このためには、自分の
Embedを作成してインスタンスをClient.send_message()やClient.edit_message()のembedキーワード引数に渡してください。
メッセージからすべてリアクションを除去する
Client.clear_reactions()を追加しました。on_reaction_clear()の下にMESSAGE_REMOVE_ALL イベントのサポートを追加しました。一括して権限を更新する、
Permissions.update()とPermissionOverwrite.update()を追加しました。これにより、例えば
p.update(read_messages=True, send_messages=False)のように一行で使用できます。
権限上書きが空か(すなわち、明示的にtrueまたはfalseに設定されている上書きが存在しないか)を確認する
PermissionOverwrite.is_empty()を追加しました。
コマンド拡張の場合、以下のことが変更されます。
Contextへの動的属性の設定を容易にするためにスロット制限を除去しました。
v0.14.3¶
バグ修正¶
MESSAGE_REACTION_REMOVEを扱う際のクラッシュを修正しました
リアクションに誤ったバケットが適用されていたのを修正しました。
v0.14.2¶
新機能¶
Client.wait_for_reaction()がreactionとuser属性を持つ名前付きタプルを返すようになりました。これは、タプルを展開すると問題につながる可能性がある、
Noneが返された場合のより良いサポートのためです。
バグ修正¶
Client.wait_for_reaction()のemojiパラメータにNoneを渡すことを許可しないバグを修正しました。
v0.14.1¶
バグ修正¶
- インポート時に
Reactionが表示されないバグを修正しました。 これは、ドキュメントにも影響を与えていました。
- インポート時に
v0.14.0¶
このアップデートには、新しいAPI機能といくつかのバグ修正が含まれています。
新機能¶
Permissions.manage_webhooksの下にWebhookの管理の権限のサポートを追加しました。3.5+
Client.logs_from()でaround引数のサポートを追加しました。- リアクションのサポートを追加します。
リアクションを追加する
Client.add_reaction()リアクションを除去する
Client.remove_reaction()メッセージにリアクションしたユーザーを取得する
Client.get_reaction_users()Permissions.add_reactionsパーミッションビットのサポート。2つの新しいイベント、
on_reaction_add()とon_reaction_remove()。メッセージからリアクションを取得する
Message.reactionsユーザーからのリアクションを待つ
Client.wait_for_reaction()
バグ修正¶
Paginatorが長すぎる行をいまだ許可していたバグを修正しました。
Permissions.manage_emojisビットが正しくないバグを修正しました。
v0.13.0¶
これは、新しい機能を備えた後方互換性のあるアップデートです。
新機能¶
絵文字を管理する機能を追加しました。
新しい絵文字を作成する
Client.create_custom_emoji()。既存の絵文字を編集する
Client.edit_custom_emoji()。カスタム絵文字を削除する
Client.delete_custom_emoji()。
新しい
Permissions.manage_emojiトグルを追加しました。これは
PermissionOverwriteにも適用されます。
Statusに新しいステータスを追加しました。取り込み中を示す
Status.dnd(エイリアスStatus.do_not_interrup)ステータスを非表示に設定するための
Status.invisible(ドキュメントの注意事項を参照してください)。
Client.change_status()を非推奨にしました。より良い最新の機能を使用するためには、
Client.change_presence()を使用してください。このメソッドは、将来の API バージョンで削除の対象となります。
新しい Discord API でステータスを変更するための
Client.change_presence()を追加しました。これは、ステータスを非表示や取り込み中に変更できる唯一の方法です。
バグ修正¶
v0.12.0¶
これは、新機能つきのバグ修正アップデートです。
新機能¶
カスタム絵文字サポートを追加しました。
Emojiという名前のカスタム絵文字を表す新しいクラスを追加しました。ユーティリティジェネレータ関数
Client.get_all_emojis()を追加しました。サーバーの絵文字のリストを取得する
Server.emojisを追加しました。新しいイベント
on_server_emojis_update()を追加しました。
ServerRegionに新しいサーバーリージョンを追加しました。ServerRegion.eu_centralとServerRegion.eu_west。
MessageType.pins_addにて新しいピン留めのシステムメッセージのサポートを追加しました。Roleへの比較を追加し、階層を考慮した比較ができるようにしました。つまり、
role_a > role_bなどを実行して、階層内でrole_bが低いかどうかを確認できるようになりました。
サーバーのロール階層を取得する
Server.role_hierarchyを追加しました。チャンネル固有の上書きなしでメンバーのサーバー権限を取得する
Member.server_permissionsを追加しました。IDからユーザ情報を取得することができる、
Client.get_user_info()を追加しました。プレイヤーを停止させたエラーを取得するために、新しい
PlayerプロパティPlayer.errorを追加しました。この変更とともに、プレイヤーの
after関数に現在のプレイヤーを示すパラメータを取ることができるようになりました。
サーバー認証レベルのサポートを追加しました。
VerificationLevelという新しい列挙型を追加しました。この列挙型は、
Client.edit_server()のverification_levelキーワード引数で使用できます。サーバーに
Server.verification_levelという新しい属性を追加しました。
Client.voice_client_in()のショートカットプロパティであるServer.voice_clientを追加しました。これは厳密にいえば過去のもの (v0.10.0で追加) ですが、v0.12.0までは文書化されていませんでした。
コマンド拡張機能では、以下の新機能が追加されました:
カスタム絵文字コンバータを追加しました。
IDを取ることができるすべてのデフォルトのコンバータが、IDにより変換することができるようにしました。
Bot.command_prefixにコルーチンサポートを追加しました。コマンドのクールダウンをリセットするメソッドを追加しました。
バグ修正¶
最新の
websocketsライブラリでライブラリが動作しないバグを修正しました。キープアライブスレッドをリークしていたバグを修正しました。 (GH-309)
Client.edit_server()でServerRegionが使用できないバグを修正しました。Channel.permissions_for()で権限解決が誤った順序で行われたバグを修正しました。Member.top_roleが同じポジションの役割を考慮しないバグを修正しました。
v0.11.0¶
これはゲートウェイのアップデート (v5 -> v6) を含むマイナーなバグ修正アップデートです。
破壊的変更¶
Permissions.change_nicknamesは UIに一致するようにPermissions.change_nicknameに名前が変更されました。
新機能¶
Client.prune_members()でメンバーを一括キックする機能を追加しました。WebSocketゲートウェイのバージョンをv5からv6に切り替えました。これにより、ライブラリはグループDMと1-on-1コールで動作するようになります。
AppInfo.owner属性を追加しました。グループボイス通話メッセージを示す
CallMessageを追加しました。グループボイス通話情報を示す
GroupCallを追加しました。システムメッセージを取得する
Message.system_contentを追加しました。残りのVIPサーバーとブラジルサーバーを
ServerRegionに追加しました。VoiceClient.create_ffmpeg_player()に標準エラー出力をリダイレクトするためのstderr引数を追加しました。ライブラリは
Channel.permissions_for()で暗黙的な権限解決を処理するようになりました。サーバーの 2FA 要件を取得する
Server.mfa_levelを追加しました。Permissions.external_emojis権限を追加しました。VoiceStateを返すMember.voice属性を追加しました。後方互換性のため、メンバーオブジェクトには古い挙動をミラーリングするプロパティも存在します。
コマンド拡張機能では、以下の新機能が追加されました:
cololdownデコレータを用いたコマンドクールダウンシステム。ユーザー入力関連エラーの親である
UserInputError例外。
バグ修正¶
Client.emailがユーザーアカウントにトークンを使用してログインしたとき保存されるようになりました。順番になってないロールの除去で発生した問題を修正しました。
タグが更新されないバグを修正しました。
HEARTBEATのコードを受け取った場合を処理するようにしました。これは、ボットが一見ランダムに切断されるのを引き起こしていました。
コマンド拡張機能では、以下のバグが修正されました:
Bot.checkデコレータが実際に括弧を必要としないようになりました。Bot.remove_commandとGroup.remove_commandが、コマンドが存在しない場合に例外を送出しないようにしました。コマンド名は強制的に
lower()されなくなりました。MemberとUserのコンバータがプライベートメッセージ内で動かなかったバグを修正しました。
HelpFormatterが最大幅を決めるときに隠されたコマンドを無視するようになりました。
v0.10.0¶
破壊的変更に関しては、 v0.10.0への移行 を参照してください。そのページで列挙された破壊的変更はここでは述べません。このバージョンがv0.9.2よりかなり大きな変更であるため、変更履歴は完全ではありません。
新機能¶
ライブラリが完全に
asyncioに対応するようになり、ノンブロッキングコードをより簡単に書けるようになりました。ライブラリが429を完全に処理し、502で無条件に再試行するようにしました。
新しいコマンド拡張機能モジュールが追加されましたが、現在文書化されていません。詳細は読者が自身で調べることをおすすめします。
パーミッションエラーや404エラーを示す2つの新しい例外タイプ、
ForbiddenとNotFoundが追加されました。招待を取り消す
Client.delete_invite()を追加しました。音声を送信するためのサポートを追加しました。詳細は
VoiceClientを参照してください。フォローアップコマンドを作りやすいように、コルーチン
Client.wait_for_message()を追加しました。ライブラリのバージョン情報を確認するための、namedtuple
version_infoを追加しました。ログイン情報をキャッシュすることで、より高速にログインできるようになりました。これを無効にするには、
Clientを作成する際にcache_auth=Falseを渡します。新しいユーティリティ関数
discord.utils.get()は、属性に基づいたアイテムの取得を簡素化します。すべてのデータクラスが
!=,==,hash(obj),str(obj)をサポートするようになりましたサーバーからBANされたメンバーを取得する
Client.get_bans()を追加しました。サーバーで現在アクティブな招待を取得する
Client.invites_from()を追加しました。Client.userのMemberを取得できるServer.meを追加しました。ほとんどのデータクラスが
hash(obj)関数をサポートするようになり、setやdictクラス、サブクラスで使用できるようになりました。ユーザーとチャンネルのメンションを名前に変更したバージョンのコンテンツを取得する、
Message.clean_content()を追加しました。Client.ban()でBANされたユーザーのメッセージを削除する方法を追加しました。クライアントキャッシュを準備する必要があるタスクを簡単に作成できるように、
Client.wait_until_ready()を追加しました。クライアントのログインを必要とするタスクを簡単に作成できるように
Client.wait_until_login()を追加しました。Client.change_statusに送信する、カスタムテキストを含む任意のゲームを表すdiscord.Game()を追加しました。Message.nonce属性を追加しました。Channel.permissions_for()の代替としてMember.permissions_in()を追加しました。メンバーを別のボイスチャンネルに移動するための
Client.move_member()を追加しました。Client.create_server()を使用してサーバーを作成できるようになりました。既存のサーバを編集するための
Client.edit_server()を追加しました。メンバーをサーバーミュートしたり、サーバースピーカーミュートしたりできる
Client.server_voice_state()を追加しました。レートリミットの際にライブラリが処理するようになりました。
メンバーがBANまたはBAN解除されたときに実行される
on_member_ban()とon_member_unban()イベントを追加しました。
パフォーマンスの改善¶
すべてのデータクラスは
__slots__を使用するようになり、キャッシュに保存されているもののメモリ使用量を大幅に削減しました。asyncioの使用により、ライブラリの CPU 使用率は大幅に減少しました。多くの内部キャッシュリストが
O(n)検索をO(1)に変更するために辞書型に変更されました。圧縮されたREADYがデフォルトでオンになりました。 つまり、多くのサーバー(あるいはもしかすると少なめのサーバー) にいる場合、より少ないデータをダウンロードして処理することでパフォーマンスが向上されます。
小規模ながら、不要な Unicode 文字の検索を避けるために正規表現を
\d+から[0-9]+に変更しました。
バグ修正¶
ギルドが更新されてもキャッシュ内のアイテムが編集されなかったバグを修正しました。
member.rolesが参加時に@everyoneロールを有さず空であったバグを修正しました。ロールが編集されたときに
Role.is_everyone()が正しく設定されていないバグを修正しました。Client.logs_from()が、DiscordのAPI制限を避けるために制限 > 100を超える場合を処理するようになりました。ロールが削除されると、
ValueErrorが発生するバグを修正しました。Permissions.kick_members()とPermissions.ban_members()がひっくり返されたバグを修正しました。メンションが正常に発動されるようになりました。これは、Discordの内部処理の方法の変更によるものです。
チャンネルが
Objectの時に、MessageがMessage.serverをアップグレードしようとする問題を修正しました。利用できないサーバーがキャッシュに追加されない不具合が修正されました。