Skip to content

kousaba/flow-client

Repository files navigation

Flow Client

A Minecraft Client

現在機能を使うことはできません

Flow Clientは、拡張性と型安全性を重視して設計された、モダンなMinecraftモジュールクライアントのフレームワークです。ジェネリクスを用いた独自の設定システムと、直感的なGUIコンポーネントを特徴としています。

目次

概要

Flow Clientは、モジュール開発者が最小限のコードで高度な機能を実装できるように設計されています。特に、設定(Settings)の保存・読み込み・UI表示を自動化する仕組みに重点を置いています。

主な特徴

  • 追記

システムアーキテクチャ

クライアントは以下の4つの階層で構成されています:

  1. ModuleManager: 全てのモジュールを統括・管理。
  2. Module / HudModule: 各機能の基底クラス。ライフサイクル(onEnable/onDisable)を管理。
  3. Setting: データの保持、バリデーション、JSONへのシリアライズを担当。
  4. Custom Widgets: ClickableWidget を継承し、各設定に最適化された操作を提供。

モジュールの追加方法

新しいモジュールを作成するには、Module または TextHudModule を継承します。

public class FpsHud extends TextHudModule {
    public FpsHud() {
        super("FPS", 2, 2, "FPS: $(fps)", List.of("fps"));
    }

    @Override
    public Map<String, String> getValue() {
        return Map.of("fps", String.valueOf(MinecraftClient.getInstance().getFps()));
    }
}

設定システム

設定は各モジュールのコンストラクタで登録するだけで、保存対象およびGUIの表示対象になります。

  • BooleanSetting: ON/OFFの切り替え。
  • NumberSetting: 最小値・最大値の指定が可能。指定時は自動的にスライダーとしてUIに表示。
  • StringSetting: 文字列入力に対応。
  • ColorSetting: ARGB形式のカラー管理。

GUIコンポーネント

Screen クラスを継承した設定画面では、登録された設定に応じて適切なウィジェットが自動配置されます。

  • BooleanSettingWidget: 視覚的な色変化を伴うトグルボタン。
  • NumberSettingWidget:
    • 上限あり:直感的なドラッグ操作ができるスライダー。
    • 上限なし:数値バリデーション機能付きテキストボックス。
  • StringSettingWidget: TextFieldWidget を内包したラベル付き入力欄。

開発環境

  • Language: Java 21+
  • Library:
    • Gson (Google) - JSONシリアライズ
    • Minecraft SDK (Fabric)

About

A Minecraft Client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages