---
layout: doc
---

# v1.3.0

- Download:
    - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/paper/v1.3.0)
    - [Modrinth](https://modrinth.com/plugin/lunaticchat/version/1.3.0)

## New Features

- Paper 26.2 (Minecraft 26.2) をサポートしました
  - 同時にPaper 26.1 のサポートは終了しました．
  - Paper 26.2 では Adventure 5.2.0 を同梱しているため，26.1 とはバイナリ互換性が失われています．
  - そのため， v1.3.0 以降のビルドは Paper 26.1 では使用できなくなりました．
- `/tell <player>@<server>` で Velocity 間で接続しているサーバのプレイヤーにメッセージを送信できるように
  - デフォルトでは無効化されています．
  - `features.velocityIntegration.crossServerDirectMessage` で有効化できます．
- プロトコルバージョンを `1.0.1` に引き上げました．
  - Paper 側と Velocity 側はどちらを先に更新しても問題ありません．
  - ただし，サーバー間ダイレクトメッセージ機能を使うには両側の更新が必要です．

## Improvements

- プレイヤーデータの保存に失敗しても，残りのシャットダウン処理が中断されなくなり，チャンネルログと Velocity 接続は必ずクローズされるようになりました．
- ファイルの永続化処理が単一のストレージレイヤーの背後に統合されました．
  - これにより，クラッシュや同時保存によってファイルが中途半端な状態のまま残ることがなくなりました．
- 各プレイヤーのメッセージは送信順に配信されるようになりました．
  - 切断時にまだキューに残っている作業は，既にログアウトしたプレイヤーに配信されるのではなく破棄されます．
- ダイレクトメッセージ配信とチャンネルメッセージのロギングが，tick スレッド上で実行されなくなりました．
- キャッシュ済みのローマ字変換結果が，共有 API 同時実行数リミッターの許可待ちをしなくなりました．
  - これまでは，全ての単語がキャッシュ済みであるメッセージでも，不要な permit の取得待ちで変換予算を使い切ってしまい，未変換のまま送信されることがありました．
- メッセージ中の単語の変換が並行して行われるようになりました．
- プレイヤー設定は，変更があった場合のみ書き直されるようになりました．
  - これまでは，プレイヤーが退出するたびに，同一バイト列であっても保存済みの全プレイヤーが再シリアライズされていました．
- プレイヤーがアクティブなチャンネルを持たない状態で退出した際，そのプレイヤーのアクティブチャンネルをクリアする処理でチャンネルキャッシュのスナップショットが取られなくなりました．
  - これまでは，大量切断時に 1 tick 内で切断人数分のフルスナップショットが発生していました．
- ダイレクトメッセージおよびチャンネルメッセージのスパイ通知は，対象者がオンラインでない場合，翻訳ルックアップとメンバーセットの構築を行わなくなりました．
- チャンネルデータの書き込みは，変更のたびにファイル全体を書き直すのではなく，まとめて行われるようになりました．
- 内部的なクリーンアップを行いました．

## Changes

- 設定ファイルの読み込みに KAML を使用するようになりました．これにより壊れたファイルの扱いが変わります．
  - 読み込み不能な設定ファイルがあっても，プラグインは無効化されず，デフォルト設定で起動するようになりました．
  - 単一の値が読み込めない場合も，ファイル内の他の設定が全て破棄されることはなくなり，警告付きでその値のみデフォルトにフォールバックするようになりました．
- プレイヤーごとの配信キューに上限が設けられました．
    - 配信のドレイン速度を超えて送信するプレイヤーは，無制限にバックログを溜め込んで数分後にまとめて届くのではなく，警告と共に拒否されるようになりました．

## Bug Fixes

- `/tell` のプレイヤー引数が部分一致になっていた不具合を修正
  - 旧 Bukkit API からの切り替えによるものです．
- `features.channelChat.messageLogging` が実際には読み込まれず，デフォルト値としてフォールバックされる不具合を修正
  - これまではドキュメントに記載があるにもかかわらず読み込み処理が実装されておらず，ファイルの記述に関わらず常にデフォルト値のままでした．
- Google IME の応答が遅い場合に，そのプレイヤーのセッション中のメッセージ配信が以降すべて無言で止まってしまう不具合を修正
- 一度の変換タイムアウトが原因で，ある単語が恒久的にひらがな表示に固定されてしまう不具合を修正
- `/reply` が記録されたばかりの返信先を認識できない不具合を修正
- `/reply` の対象者がログアウトした際，クリアされたはずのエントリが重複してチャットに挿入されてしまう不具合を修正
