Skip to content

Discord連携機能の安定化および不要な古い参照のクリーンアップ#479

Merged
wbonbon merged 3 commits into
anoyetta:masterfrom
wbonbon:master
Jun 9, 2026
Merged

Discord連携機能の安定化および不要な古い参照のクリーンアップ#479
wbonbon merged 3 commits into
anoyetta:masterfrom
wbonbon:master

Conversation

@wbonbon

@wbonbon wbonbon commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Discord連携(Discord BOT)機能における不具合修正と、依存関係の整理を行いました。

変更内容

  1. 他ユーザー入室時の強制切断・クラッシュ対策(DAVE暗号化対応)

    • DiscordサーバーにおけるE2EE(DAVE/MLS)の強制化に伴い、DiscordBotService.cs にて EnableVoiceDaveEncryption = true に設定しました。
    • 他のユーザーが入室した際(鍵共有のトリガー発生時)に libdave の初期化不全によって C# 側で NullReferenceException が発生し、DiscordHelper プロセスが強制切断・クラッシュする不具合を解消しました。
  2. Discord.Net パッケージの 3.20.1 へのアップデート

    • ヘルパー側 (ACT.Hojoring.DiscordHelper) の Discord.Net および Discord.Net.Dave の依存パッケージを 3.20.1 へアップグレードしました。
    • これにより、DAVEプロトコルの移行期に発生するMLSのエラー(Unexpected user IDbad_optional_access)が生じた場合でも、プロセスがクラッシュせずにセッションを自動的に再確立(自己修復)して音声を再生し続けられるようにしました。
  3. Hojoring本体側からの古い Discord.Net 参照のクリーンアップ

    • すでに Discord 連携の実処理は別プロセスの DiscordHelper に移行しており、本体側から直接 Discord.Net に依存する処理はないため、ACT.Hojoring.csproj および ACT.TTSYukkuri.csproj から不要な Discord.Net (3.18.0-nightly.2025.0921.631) へのパッケージ参照を削除しました。
  4. レートリミット連打対策の強化

    • UI側: 接続/切断/参加/退出ボタンのクリック直後のコントロール無効化時間(クールダウン)を 100ms から 3秒 に延長し、物理的な連打を防ぐようにしました。
    • ヘルパー側: 接続/切断用セマフォとボイスチャット操作用セマフォを個別に分離して非同期競合を防止し、API実行時に3秒のクールダウン(デバウンス)を強制適用しました。また、レートリミットエラー(4008等)を検知した際の日本語の警告ログ出力を追加しました。
  5. make.ps1 の文字コード修正

    • スクリプト内の日本語文字が PowerShell 5.1 環境で文字化けしパースエラーを引き起こしていたため、make.ps1 を UTF-8 (BOM付き) に変換してビルドスクリプトが正常に実行できるよう修正しました。

本件について、ボイスチャンネルへの複数人入室時および音声発声時において、切断されずに正常動作することを確認済みです。

wbonbon added 3 commits May 28, 2026 12:12
- Discord.Net および Discord.Net.Dave を 3.20.1 にアップデート
- EnableVoiceDaveEncryption = true に設定し、他ユーザー入室時のDAVE(E2EE)クラッシュを対策
- Hojoring本体側 (ACT.Hojoring, ACT.TTSYukkuri) から不要な古い Discord.Net (3.18.0-nightly) の PackageReference を削除
- UI側 (DiscordViewModel) での操作ボタン連続クリックによるコントロール無効化時間を3秒に延長
- ヘルパー側 (DiscordBotService) で接続・ボイス操作のセマフォによる排他制御と3秒のクールダウンを実装、レートリミット検知時の日本語警告を追加
- make.ps1 の文字コードを UTF-8 (BOM付き) に変換し、PowerShell実行時のパースエラーを修正
@wbonbon wbonbon merged commit ea5a459 into anoyetta:master Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant