概要
Deepwitherの各システム(レベル、ステータス、戦闘、クエスト)で発生する重要なアクションに対し、独自のBukkitイベント(Custom
Events)を定義・発行します。これにより、メインロジックを変更することなく、追加機能をモジュール(Listener)として実装可能にします。
導入予定のイベント (api.event.*)
PlayerLevelUpEvent: プレイヤーのレベルが上昇した際に発生(報酬処理などを分離可能)。
StatUpdateEvent: ステータスが再計算された直後に発生。
CustomManaConsumeEvent: マナが消費された際に発生(キャンセル可能にしてコスト軽減バフなどに対応)。
QuestProgressUpdateEvent: クエストの進捗が変化した際に発生。
メリット
- 拡張性: 外部プラグインや自作の別モジュールから Deepwither の挙動に介入しやすくなる。
- クリーンなコード: マネージャー内に「演出(花火、メッセージ)」や「特殊なバフ処理」を詰め込まず、リスナー側に分離できる。
実装指針
- 全てのイベントは org.bukkit.event.Event を継承する。
- 変更可能なアクション(ダメージ、マナ消費)には Cancellable を実装する。