PJZ9n / AdvancedForm

Make modern forms easy! You don't have to think about anything.
GNU General Public License v3.0
10 stars 3 forks source link

CustomForm: メッセージの個数分 Label 要素を生成するように #7

Closed Nerahikada closed 1 year ago

Nerahikada commented 1 year ago

PRの目的

二つ以上のメッセージを持った CustomForm の検証時にエラーが発生する問題を修正します。

問題の再現方法

エラーは以下のようなコードで再現可能です。

$form = CallbackCustomForm::create("")->appendMessages(["a", "b"]);
$player->sendForm($form);

出力されるエラー:

[17:05:38.544] [Server thread/CRITICAL]: [Player: Nerahikada] Failed to validate form pjz9n\advancedform\custom\CallbackCustomForm: Expected 2 response(s), got 1 response(s)
[17:05:38.544] [Server thread/CRITICAL]: pocketmine\form\FormValidationException: "Expected 2 response(s), got 1 response(s)" (EXCEPTION) in "virions/AdvancedForm/src/pjz9n/advancedform/custom/CustomForm" at line 278

このPRの背景

カスタムフォームの応答の検証時には、メッセージの個数分が足された要素数を期待しますが https://github.com/PJZ9n/AdvancedForm/blob/402b9cd0bd4ad54650284b9fb766af55abaa9b6e/src/pjz9n/advancedform/custom/CustomForm.php#L276 (ここも同様) https://github.com/PJZ9n/AdvancedForm/blob/402b9cd0bd4ad54650284b9fb766af55abaa9b6e/src/pjz9n/advancedform/custom/CustomForm.php#L283 実際にプレイヤーに送信されるのは一つの Label 要素だけです。 https://github.com/PJZ9n/AdvancedForm/blob/402b9cd0bd4ad54650284b9fb766af55abaa9b6e/src/pjz9n/advancedform/custom/CustomForm.php#L351

この問題を修正するためにはどちらかの仕様に合わせればよいわけですが、

という点から複数の Label 要素を作成するよう変更しました。

PJZ9n commented 1 year ago

Thx!!!!!!!!!!!!!!!!!!!!!!