1+ package dev .drawethree .xprison .api .pickaxelevels .event ;
2+
3+ import dev .drawethree .xprison .api .pickaxelevels .model .PickaxeLevel ;
4+ import dev .drawethree .xprison .api .shared .events .player .XPrisonPlayerEvent ;
5+ import lombok .Getter ;
6+ import lombok .Setter ;
7+ import org .bukkit .entity .Player ;
8+ import org .bukkit .event .Cancellable ;
9+ import org .bukkit .event .HandlerList ;
10+ import org .jetbrains .annotations .NotNull ;
11+
12+ /**
13+ * Event fired when a player levels up their pickaxe.
14+ * <p>
15+ * This event is cancellable; cancelling it will prevent the level-up from being applied.
16+ */
17+ @ Getter
18+ public final class PlayerPickaxeLevelUpEvent extends XPrisonPlayerEvent implements Cancellable {
19+
20+ private static final HandlerList HANDLERS_LIST = new HandlerList ();
21+
22+ @ Setter
23+ private boolean cancelled ;
24+
25+ /**
26+ * The player whose pickaxe level is being upgraded.
27+ */
28+ private final Player player ;
29+
30+ /**
31+ * The previous pickaxe level.
32+ */
33+ private final PickaxeLevel oldLevel ;
34+
35+ /**
36+ * The new pickaxe level.
37+ * Can be modified by listeners.
38+ */
39+ @ Setter
40+ private PickaxeLevel newLevel ;
41+
42+ /**
43+ * Constructs a new PlayerPickaxeLevelUpEvent.
44+ *
45+ * @param player the player whose pickaxe is leveling up
46+ * @param oldLevel the previous pickaxe level
47+ * @param newLevel the new pickaxe level
48+ */
49+ public PlayerPickaxeLevelUpEvent (Player player , PickaxeLevel oldLevel , PickaxeLevel newLevel ) {
50+ super (player );
51+ this .player = player ;
52+ this .oldLevel = oldLevel ;
53+ this .newLevel = newLevel ;
54+ }
55+
56+ /**
57+ * Gets the handler list for this event.
58+ *
59+ * @return the handler list
60+ */
61+ public static HandlerList getHandlerList () {
62+ return HANDLERS_LIST ;
63+ }
64+
65+ /**
66+ * Gets the handlers for this event.
67+ *
68+ * @return the handler list
69+ */
70+ @ NotNull
71+ @ Override
72+ public HandlerList getHandlers () {
73+ return HANDLERS_LIST ;
74+ }
75+ }
0 commit comments