https://linen.dev logo
entity静止時に呼び出されない内部処理のonUpdateを手動で呼び出したい
# forum
y
現在、ハロゲン氏が以前https://discord.com/channels/799152792518393917/1232570541005606953 で研究・開発された技術を元に、RTMの座席(entity.floor)をnbtタグデータ書き換えで動かすサーバースクリプトを開発中で、 この手法は列車が走行していれば正常に動作するのですが、止まったままだとnbtデータを書き換えても座席entityが動いてくれません。 恐らく情報を更新するメソッドが、entityの移動が無い場合に呼び出されない(更新が止まってしまっている)と推測しているのですが、これを手動で呼び出して更新させるにはどのようなコードを書いたら良いでしょうか?
k
`jp.ngt.rtm.network.PacketVehicleMovement`がそれに該当します 親が移動している際には`VehicleTrackerEntry`で送信しているのですが停止時には送信されず、仰る通りになります
が、そもそもNBTで送るよりはByteDataWatcherで設定してあげた方が同期処理が要らなくなるのでおすすめです
`jp.ngt.rtm.entity.train.parts.EntityVehiclePart#setPartPos`で行えます
Copy code
java
    /**
     * EntityTrainとの相対位置を保存
     */
    public void setPartPos(float x, float y, float z) {
        this.dataWatcher.updateObject(21, x);
        this.dataWatcher.updateObject(22, y);
        this.dataWatcher.updateObject(23, z);
    }
ですのでご参考までに
y
そんな方法が……ありがとうございます!