[Fix] 16進カラーをTextComponentに適応できないバグを修正 #211
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
new TextComponent(String str)
は引数を解析せずそのまま格納するだけなので、プレイヤーに送信するときも§
のまま送信されます。つまり、例えば
#123456
はLunaChat側で§x§1§2§3§4§5§6
に変換されますが、これはクライアント側で§6
と解釈されます。それに対して
TextComponent.fromLegacyText(String str)
は、ちゃんと文字列に含まれる§
を解析して適当な色をsetColor
してくれます。これは、クライアント側でしっかりjsonメッセージとして解釈され、適切な色になります。なので、こちらに置き換えました。
ちなみに、
§x§1§1§1§1§1§1
のような表現がクライアント側でうまく変換されないのは、この表現がvanillaのものではなくspigot由来のためだそうで。vanillaではjsonメッセージ以外では16進カラーに対応していないらしいです。