-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
概要
現在、ItemFactory.java はアイテムの生成・管理だけでなく、giveitem コマンドやそれに関連する複数のサブコマンド(reload, spawnoutpost, addskillpoints
等)の処理も担当しています。これは単一責任の原則(SRP)に反し、クラスの肥大化を招いているため、コマンド処理を専用のクラスに抽出します。
目的
- ItemFactory の責務を「アイテムの生成と定義の管理」に限定する。
- コマンドロジックを独立させることで、コードの可読性と保守性を向上させる。
修正内容(タスクリスト)
- 新クラスの作成:
- com.lunar_prototype.deepwither.command.ItemCommand を作成し、CommandExecutor と TabCompleter を実装する。
- ロジックの移動:
- ItemFactory.java 内の onCommand と onTabComplete メソッドの内容を ItemCommand に移動する。
- giveitem だけでなく、内部で処理されている spawnoutpost や addskillpoints などの分岐も適切に移行する。
- 依存関係の整理:
- ItemCommand が必要とする Manager クラス(ItemFactory, SkilltreeManager, OutpostManager 等)をコンストラクタで注入する。
ItemFactoryのクリーンアップ:- CommandExecutor / TabCompleter インターフェースの実装を削除。
- init() メソッド内での setExecutor 処理を削除。
- コマンドの再登録:
- Deepwither.java の onEnable 内で、他のコマンドと同様に ItemCommand を登録するように変更する。
期待される結果
- ItemFactory.java の行数が削減され、本来の役割が明確になる。
- コマンドの追加や変更が ItemCommand クラス内で完結するようになる。
Reactions are currently unavailable