sk7zの備忘録

自分用メモなど

BukkitのPlayerInteractEventで右クリックした看板の前後を取得する方法

経緯 Mincraft1.20アップデートで看板に前後の概念が追加された上に、再編集可能となったが、 再編集時に装飾文字が消えてしまう。

対応方針 プレイヤーが看板を開く際に、装飾文字を別の文字を置き換えてから、看板を開く。(編集完了時に再度装飾文字に戻す)

実装方法 1.PlayerInteractEventでクリックした看板を取得 2.看板の装飾文字を別の文字に置き換える 3.置き換え直後は反映されて居ないのでイベントを一旦キャンセル 4.反映後(2tick後)看板を開く

発生した問題 4はplayer.openSign(sign, clickSide)にて看板を開くことができるが、その際に看板の向きを渡す必要がある。 PlayerInteractEventではプレイヤーが開いた看板を取得できるものの、その看板が前後どちらか取得することはできない。

対処方法 プレイヤーが開いた看板のインスタンスと、看板の前方の看板インスタンスを比較して、同一のインスタンスであれば前と判断する。

github.com