変更履歴

このページでは、特定のバージョンの新機能や変更された機能をわかりやすい形で詳細に記載しています。

v2.3.2

バグ修正

v2.3.1

バグ修正

v2.3.0

新機能

バグ修正

その他

v2.2.3

バグ修正

v2.2.2

バグ修正

  • Fix UDP discovery in voice not using new 74 byte layout which caused voice to break (GH-9277, GH-9278)

v2.2.0

新機能

バグ修正

その他

v2.1.1

バグ修正

  • Fix crash involving GIF stickers when looking up their filename extension.

v2.1.0

新機能

バグ修正

その他

v2.0.1

バグ修正

  • Python 3.10 以降で speed extrasを使用した場合に 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

バグ修正

v1.7.2

バグ修正

  • fail_if_not_exists により、特定のメッセージ参照が abc.Messageable.send() および Message.reply() 内で使用できない問題を修正しました。 (GH-6726)

  • ギルドからユーザーが脱退した際に Guild.chunk() がハングするのを修正しました。 (GH-6730)

  • 最終反復の前ではなく後にループがスリープするのを修正しました。 (GH-6744)

v1.7.1

バグ修正

v1.7.0

このバージョンは、主にバグ修正と、機能改善が含まれています。 おそらくこのバージョンが、1.xシリーズの最後のメジャーバージョンとなる予定です。これ以降の作業は、主にv2.0に費やされます。 結果として、このバージョンが、Python 3.5をサポートする最後のバージョンになります。 同様に、このバージョンがユーザーボットをサポートする最後のバージョンです

v2.0の開発には、破壊的更新と、新しいAPI機能の変更が含まれるでしょう。

新機能

バグ修正

  • 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)

  • Embed の初期化時に指定された引数は暗黙的に str へ変換されるようになりました。 (GH-6574)

  • 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)

その他

  • ユーザー用エンドポイントとユーザーボットの関連機能は非推奨になり、次のライブラリのメジャーバージョンで削除されます。

  • Permission のクラスメソッドがDiscordクライアントのUIと一致するように更新されました。 (GH-6476)

  • _- の文字が discord パッケージを使用して新しいコグを作成するときに取り除かれるようになりました。 (GH-6313)

v1.6.0

このバージョンでは、返信機能とスタンプ機能がサポートされるようになりました。

新機能

  • 完全に再設計されたドキュメント。 これは何ヶ月もの努力の積み重ねで作られました。
    • ダークテーマが実装されました。変更するには、画面上の歯車から設定をしてください。これは自動的に行われます。

  • AppInfo.icon_url_as()AppInfo.cover_image_url_as() が追加されました。 (GH-5888)

  • ランダムな色が得られる、 Colour.random() が追加されました。 (GH-6067)

  • Sticker によってスタンプがサポートされました。 (GH-5946)

  • Message.reply() で返信ができるようになりました。 (GH-6061)
  • 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のレート制限がされているかどうか確認できるようになりました。
  • AsyncIteratorAsyncIterator.chunk() を通してチャンク化できるようになりました。 (GH-6100, GH-6082)

  • PartialEmoji.created_at を追加しました。 (GH-6128)

  • Webhookで送信したメッセージの編集と削除をサポートしました。 (GH-6058)
  • チャンネルオブジェクトとメッセージIDのみでメッセージを操作できるようにするために、 PartialMessage を追加しました。 (GH-5905)
    • これはメッセージを取得するために追加のAPI呼び出しをしたくないときに便利です。

  • 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 が上書きされてしまう問題を修正しました。
  • 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)

  • Message がハッシュ可能でない問題を修正しました。 (GH-5901, GH-5866)

  • チャンネルをチャンネルリストの最後まで移動する際の問題を修正しました。 (GH-5923)

  • PermissionOverwrite における __eq__ のおかしい挙動を修正しました。 (GH-5929)

  • Intents__iter__ におけるエイリアスの表示の問題を修正しました。 (GH-5945)

  • 別のボイスチャンネルに移動する時にBotがボイスチャンネルから切断されてしまう問題を修正しました。 (GH-5945)

  • 遅延on_readyディスパッチ中にチャンキングがタイムアウトする場合の属性エラーを修正しました。

  • Bot自身のmemberオブジェクトがキャッシュから削除されないことが保証されるようになりました。 (GH-5949)

その他

  • MemberCacheFlags.joined が設定されている場合、memberが GUILD_MEMBER_UPDATE イベントでロードされるようになりました。 (GH-5930)

  • [ext.commands] MemberConverter は、memberがキャッシュから利用できない場合に遅延ロードでmemberを取得するようになりました。
    • これは discord.Member を型ヒントとして使うのと同じです。

  • Guild.chunk() によって、Gatewayに負荷をかけずに同時呼び出しができるようになりました。

v1.5.0

このバージョンでは、Discordが10月7日に行う、すべてのBotに要求している強制的な破壊的変更が含まれています。Intentsに関するドキュメント ゲートウェイインテント入門 を読むことを強くおすすめします。

APIの変更

  • APIの変更により、memberとpresenceの情報は取得されなくなります。 詳細は 特権インテント を参照してください。

  • 結果として、 memberインテントが有効でない場合、オフラインメンバーの取得が無効になります。

新機能

バグ修正

  • 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] クールダウンのタイミングが編集のタイムスタンプを無視していたのを修正しました。

  • [ext.tasks] 例外処理後のイテレーションでの問題を修正しました。 (GH-5762, GH-5763)

その他

  • 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] クールダウンのタイミングが編集のタイムスタンプを無視していたのを修正しました。

  • [ext.tasks] 例外処理後のイテレーションでの問題を修正しました。 (GH-5762, GH-5763)

その他

  • 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リリースでリリースされる予定です。ご理解いただきありがとうございます!

新機能

バグ修正

その他

  • v1.3 で導入された Member.roles キャッシュは、問題が発生したため元に戻されました (GH-4087, GH-4157)

  • Webhook オブジェクトが比較可能になり、ハッシュ化できるようになりました (GH-4182)

  • さらにいくつかの API リクエストで、監査ログ用の reason パラメータが取得されました (GH-5086)
  • パフォーマンス上の理由から、 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

もう一つのマイナーなバグフィックスリリースです。

バグ修正

  • AutoShardedClientGUILD_CREATE ストリームで on_ready が発生するまでの待ち時間を長くするようにしました。

  • on_voice_state_update() は内側の member ペイロードを使用するようになり、より信頼性が高くなりました。

  • Cloudflare のハンドリングエラーを修正しました (GH-2572, GH-2544)

  • Message.guildGuild ではなく 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

このバージョンでは、多くのバグフィックスと新機能が搭載されています。予想以上に長い期間、開発が続けられているのです!

新機能

バグ修正

  • 所有者がいないギルドで権限解決に失敗することがある問題を修正しました。

  • トークンは、使用時に剥奪されるようになりました。(GH-2135)

  • Emoji.edit()name を渡す必要はなくなりました。(GH-2368)

  • Webhooks がリトライを使い切った後に再レイズしない問題を修正しました。(GH-2272, GH-2380)

  • 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_helpHelpCommand.on_help_command_error ハンドラに正しく伝播するようになりました。

その他

  • ライブラリは警告なしに Python 3.8 を完全にサポートするようになりました。

  • 依存ライブラリ websockets のバージョンを 8.0 に上げました。(GH-2453)

  • Discordがメンションで Member データを提供するようになったため、メンションされたユーザーが Member により多くの機会でアップグレードされるようになりました。

  • utils.escape_markdown() が新しい引用マークダウンを正しくエスケープするようになりました。

  • メッセージキャッシュを Clientmax_messagesNone を渡すことで無効にできるようになりました。

  • デフォルトのメッセージキャッシュサイズは、小さなボットに対応するために5000から1000に変更されました。

  • Role にて、必要な場合のみ特定のオブジェクトを作成することによりメモリ使用量を削減しました。

  • セッションの無効化の長いループを防ぐために、再接続中に再度IDENTIFYする前に5秒間待つようになりました。

  • レート制限コードは、より細かいレート制限処理を行うためにミリ秒の精度を使用するようになりました。
    • それに伴い、レート制限コードはDiscordのレスポンスを使用して待つようになりました。 何らかの理由でシステムクロックを使用する必要がある場合は、 Clientassume_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

バグ修正

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.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__ を追加しました。

  • [ext.tasks] 標準の logging モジュールを介してエラーが記録されるようになりました。

v1.1.1

バグ修正

  • WebhookがHTTPリクエストを再試行する時にデータを上書きしないようにしました。 (GH-2140)

その他

  • 一部のユーザーが適切なクリーンアップを行うときに問題が生じていたため、 Client.run() にシグナル処理を再度追加しました。

v1.1.0

新機能

  • バックグラウンドタスクを簡単にするための新しい拡張機能が追加されました。
  • 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 を関数の型ヒントで使えるようになりました。

  • group()cls を渡せるようになりました( GH-2061

  • 親コマンドを取得する Command.parents が追加されました。( GH-2104

バグ修正

  • Widget__repr__AttributeError が発生するバグを修正しました。

  • abc.GuildChannel.overwrites のキーが None になるバグを修正しました。

  • TextChannel.is_nsfw() 等でのNSFWのチェックを修正しました。

  • RequestsWebhookAdapter でエラーが発生したときの UnboundLocalError を修正しました。

  • ボットのユーザーをアップデートしてもメンバーオブジェクトが更新されないバグを修正しました。

  • Spotify__eq__ の条件を厳しくしました。( GH-2113, GH-2117

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

バグ修正

  • スピーキング状態が無効なときに int にキャストした場合に発生する問題を修正しました。

  • 一部のユーザーがLinuxマシンで遭遇したループクリーンアップに関する問題を修正しました。

  • ボイスハンドシェイクの競合状態を修正しました。 (GH-2056, GH-2063)

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()reactionuser 属性を持つ名前付きタプルを返すようになりました。
    • これは、タプルを展開すると問題につながる可能性がある、 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 トグルを追加しました。

  • Status に新しいステータスを追加しました。

    • 取り込み中を示す Status.dnd (エイリアス Status.do_not_interrup )

    • ステータスを非表示に設定するための Status.invisible (ドキュメントの注意事項を参照してください)。

  • Client.change_status() を非推奨にしました。

    • より良い最新の機能を使用するためには、 Client.change_presence() を使用してください。

    • このメソッドは、将来の API バージョンで削除の対象となります。

  • 新しい Discord API でステータスを変更するための Client.change_presence() を追加しました。

    • これは、ステータスを非表示や取り込み中に変更できる唯一の方法です。

バグ修正

  • ページネータのページがmax_sizeを超えないようにしました。 (GH-340)

  • 取り込み中ユーザーは新しい Status の変更によりこれ以降オフラインとして表示されないようになりました。

v0.12.0

これは、新機能つきのバグ修正アップデートです。

新機能

  • カスタム絵文字サポートを追加しました。

    • Emoji という名前のカスタム絵文字を表す新しいクラスを追加しました。

    • ユーティリティジェネレータ関数 Client.get_all_emojis() を追加しました。

    • サーバーの絵文字のリストを取得する Server.emojis を追加しました。

    • 新しいイベント on_server_emojis_update() を追加しました。

  • ServerRegion に新しいサーバーリージョンを追加しました。

    • ServerRegion.eu_centralServerRegion.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) を含むマイナーなバグ修正アップデートです。

破壊的変更

新機能

  • 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_commandGroup.remove_command が、コマンドが存在しない場合に例外を送出しないようにしました。

  • コマンド名は強制的に lower() されなくなりました。

  • MemberとUserのコンバータがプライベートメッセージ内で動かなかったバグを修正しました。

  • HelpFormatter が最大幅を決めるときに隠されたコマンドを無視するようになりました。

v0.10.0

破壊的変更に関しては、 v0.10.0への移行 を参照してください。そのページで列挙された破壊的変更はここでは述べません。このバージョンがv0.9.2よりかなり大きな変更であるため、変更履歴は完全ではありません。

新機能

  • ライブラリが完全に asyncio に対応するようになり、ノンブロッキングコードをより簡単に書けるようになりました。

  • ライブラリが429を完全に処理し、502で無条件に再試行するようにしました。

  • 新しいコマンド拡張機能モジュールが追加されましたが、現在文書化されていません。詳細は読者が自身で調べることをおすすめします。

  • パーミッションエラーや404エラーを示す2つの新しい例外タイプ、 ForbiddenNotFound が追加されました。

  • 招待を取り消す 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.userMember を取得できる Server.me を追加しました。

  • ほとんどのデータクラスが hash(obj) 関数をサポートするようになり、 setdict クラス、サブクラスで使用できるようになりました。

  • ユーザーとチャンネルのメンションを名前に変更したバージョンのコンテンツを取得する、 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 の時に、 MessageMessage.server をアップグレードしようとする問題を修正しました。

  • 利用できないサーバーがキャッシュに追加されない不具合が修正されました。