Skip to content

feat(api): expand custom event system for better modularity #28

@RuskLabo

Description

@RuskLabo

概要

Deepwitherの各システム(レベル、ステータス、戦闘、クエスト)で発生する重要なアクションに対し、独自のBukkitイベント(Custom
Events)を定義・発行します。これにより、メインロジックを変更することなく、追加機能をモジュール(Listener)として実装可能にします。

導入予定のイベント (api.event.*)

  • PlayerLevelUpEvent: プレイヤーのレベルが上昇した際に発生(報酬処理などを分離可能)。
  • StatUpdateEvent: ステータスが再計算された直後に発生。
  • CustomManaConsumeEvent: マナが消費された際に発生(キャンセル可能にしてコスト軽減バフなどに対応)。
  • QuestProgressUpdateEvent: クエストの進捗が変化した際に発生。

メリット

  • 拡張性: 外部プラグインや自作の別モジュールから Deepwither の挙動に介入しやすくなる。
  • クリーンなコード: マネージャー内に「演出(花火、メッセージ)」や「特殊なバフ処理」を詰め込まず、リスナー側に分離できる。

実装指針

  • 全てのイベントは org.bukkit.event.Event を継承する。
  • 変更可能なアクション(ダメージ、マナ消費)には Cancellable を実装する。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions