見出し画像

NECO BLOG guraman#1 forge備忘録

どーもみなさん。オハコンバンチハ。ぐらまんです。やまねこが書いた記事が出たばかりですが書きたくなったので書いときます。
forgeでキー設定などで得た学びを残します。
作っていたのはNECOのとある企画用のmodです。forgeは1.20.1の47.3.10ですね。


キー設定のやつ

public static final KeyMapping openAAAMenu = new KeyMapping(
        "key.mymod.open_menu",
        InputConstants.Type.KEYSYM,
        GLFW.GLFW_KEY_RIGHT_BRACKET,
        "key.categories.mymod"
);
@SubscribeEvent
public static void registerKey(RegisterKeyMappingsEvent event) {
    event.register(openAAAMenu);

}

 キー設定はこんな感じのにしてると思うんですけど、これが意外とうまくいかない。
 環境が悪いのかメインのクラスでイベントリスナーに登録してもなんか読み取ってくれなかったです。
 色々サイトを見た結果、アノテーションの書き方で解決できそうと判明。

@Mod.EventBusSubscriber(modid = Mrpgf.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)

これを使うとメインクラスで登録しなくても大丈夫らしいです。(なぜかは知らない)

PacketHandler

 所要ありパケットでデータをやり取りしないといけなくなること。皆さんもあると思います。
 そんな時MinecraftForgeならチャンネル作って流し込むものと思いますが、ここで問題発生。登録を行う場所で悩みました。
 FMLClientSetupEventでやればよさそうと思っていたら、なんだか読み込まれない。確認してみると、FMLClientSetupEventがそもそも動いていなかったことが判明、虎の子AI君に聞いてみてもそこの原因究明は難しそうだと思っていたら、メインのクラスのコンストラクタに放り込めば解決でした。
 サーバーサイドもよくわかりませんがちゃんと反応しているので大丈夫です。多分。

自己紹介

 順番が明らかに逆ですがオーナー氏に倣って私も自己アピールさせていただきます。
 動画編集から企画(未遂)用プログラム作成まで幅広い任務を行う傍らで学業を疎かにしています。
 どうやら私は熱しやすく冷めやすいようで、何か面白そうな企画があれば熱の冷めないうちに完成させようとするんですが、例えば今制作しているプログラムの1個目はアイデア側の出力にほぼ追いついた段階でほぼ休止してしまっています。
 早いうちに再開しないといけないと思いつつ、NECOとか関係なくやりたいことも大量にあるのでなかなか気が回らないのです。
 なかなか最後までやりきれないのはオーナーと同じだなと。


 今日はこんなところで。
 次回は未定ですがきっとあります。
 VALORANTダイヤに戻りたい

この記事が気に入ったらサポートをしてみませんか?