Skip to content

ItemFactory からのコマンド処理ロジックの分離 #39

@RuskLabo

Description

@RuskLabo

概要

現在、ItemFactory.java はアイテムの生成・管理だけでなく、giveitem コマンドやそれに関連する複数のサブコマンド(reload, spawnoutpost, addskillpoints
等)の処理も担当しています。これは単一責任の原則(SRP)に反し、クラスの肥大化を招いているため、コマンド処理を専用のクラスに抽出します。

目的

  • ItemFactory の責務を「アイテムの生成と定義の管理」に限定する。
  • コマンドロジックを独立させることで、コードの可読性と保守性を向上させる。

修正内容(タスクリスト)

  1. 新クラスの作成:
    • com.lunar_prototype.deepwither.command.ItemCommand を作成し、CommandExecutor と TabCompleter を実装する。
  2. ロジックの移動:
    • ItemFactory.java 内の onCommand と onTabComplete メソッドの内容を ItemCommand に移動する。
    • giveitem だけでなく、内部で処理されている spawnoutpost や addskillpoints などの分岐も適切に移行する。
  3. 依存関係の整理:
    • ItemCommand が必要とする Manager クラス(ItemFactory, SkilltreeManager, OutpostManager 等)をコンストラクタで注入する。
  4. ItemFactory のクリーンアップ:
    • CommandExecutor / TabCompleter インターフェースの実装を削除。
    • init() メソッド内での setExecutor 処理を削除。
  5. コマンドの再登録:
    • Deepwither.java の onEnable 内で、他のコマンドと同様に ItemCommand を登録するように変更する。

期待される結果

  • ItemFactory.java の行数が削減され、本来の役割が明確になる。
  • コマンドの追加や変更が ItemCommand クラス内で完結するようになる。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions