https://linen.dev logo
JD-GUIでメソッドを探すと、なぜか行き着けない
# forum
u
へんな話題なので、暇つぶし程度に一緒に探してくれると嬉しい entity.getResourceState().getDataMap(); ってあるじゃないですか パブリックのメソッドだと思うんですよ 探すじゃないですか、たとえばJD-GUIで entity.trainの下にないんですよね これどこにあるかご存じ? chatGPTにコード見せながら聞いてみたら、「相互参照の先にあるかも」って言われて、俺はRTMのクラス構造の全容を把握してないから、詳しい人いたら教えてほしい
同じような感じで、ほかにもNGTUtil経由のgetMethodでPrivateメソッドに行きつけるはずなんですけど、うまく探せないんですよね 教えてエロい人!
h
おそらく継承元を辿っていけば見つかるかなと思います。 例えばEntityTrainBaseをJD-GUIで見てみると、 public abstract class EntityTrainBase extends EntityVehicleBase implements IChunkLoader { と書いてあるのが見つかりますが、この内の extends EntityVehicleBase の記述から、EntityTrainBaseはEntityVehicleBaseから継承していることがわかります。 継承しているということは、EntityTrainBaseはEntityVehicleBaseのメソッドやフィールド(関数や変数)を持っていることになるので、継承元のメソッド/フィールドを使用することができます。 これをもとに改めて調べてみると、継承元のEntityVehicleBaseにgetResourceState()があることがわかります。 蛇足になりますが、EntityVehicleBaseはEntity(Minecraft側)を継承しているので、entity(EntityTrainBase)はマイクラ側の難読化された関数や変数を使うことができる(持っている)といった感じです。
u
なるほど・・・‼️EntityTrainBase自体が継承クラスだったのか 勉強になります🙇 ありがとうございます
2 Views