Skip to content

Commit 4604111

Browse files
committed
Add events relevant to the Sequence/Ability process
1 parent 1e553ff commit 4604111

9 files changed

Lines changed: 363 additions & 6 deletions

File tree

‎src/main/java/com/github/abilityapi/ability/AbilityManager.java‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
package com.github.abilityapi.ability;
1313

14+
import com.github.abilityapi.events.AbilityStartEvent;
15+
import com.github.abilityapi.events.AbilityStopEvent;
1416
import com.github.abilityapi.sequence.Sequence;
1517
import com.github.abilityapi.user.User;
1618
import org.bukkit.Bukkit;
@@ -31,6 +33,13 @@ public AbilityManager(JavaPlugin plugin) {
3133

3234
public void execute(User user, Sequence sequence, AbilityProvider provider) {
3335
Ability ability = provider.createInstance(this, sequence, user);
36+
37+
AbilityStartEvent attempt = new AbilityStartEvent(user, ability);
38+
Bukkit.getPluginManager().callEvent(attempt);
39+
if (attempt.isCancelled()) {
40+
return;
41+
}
42+
3443
abilities.add(ability);
3544
user.getAbilities().add(ability);
3645

@@ -57,6 +66,9 @@ public void cleanup() {
5766
public void stop(Ability ability) {
5867
User user = ability.getUser();
5968

69+
AbilityStopEvent attempt = new AbilityStopEvent(user, ability);
70+
Bukkit.getPluginManager().callEvent(attempt);
71+
6072
HandlerList.unregisterAll(ability);
6173
ability.stop();
6274

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.github.abilityapi.events;
2+
3+
import com.github.abilityapi.ability.Ability;
4+
import com.github.abilityapi.user.User;
5+
import org.bukkit.event.HandlerList;
6+
import org.bukkit.event.player.PlayerEvent;
7+
8+
public class AbilityStartEvent extends PlayerEvent {
9+
10+
private static final HandlerList handlers = new HandlerList();
11+
12+
private final User user;
13+
private final Ability ability;
14+
15+
private boolean cancelled;
16+
17+
public AbilityStartEvent(User user, Ability ability) {
18+
super(user.getPlayer());
19+
this.user = user;
20+
this.ability = ability;
21+
}
22+
23+
public static HandlerList getHandlerList() {
24+
return handlers;
25+
}
26+
27+
public void setCancelled(boolean cancelled) {
28+
this.cancelled = cancelled;
29+
}
30+
31+
public User getUser() {
32+
return user;
33+
}
34+
35+
public Ability getAbility() {
36+
return ability;
37+
}
38+
39+
public boolean isCancelled() {
40+
return cancelled;
41+
}
42+
43+
@Override
44+
public HandlerList getHandlers() {
45+
return handlers;
46+
}
47+
48+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.github.abilityapi.events;
2+
3+
import com.github.abilityapi.ability.Ability;
4+
import com.github.abilityapi.user.User;
5+
import org.bukkit.event.HandlerList;
6+
import org.bukkit.event.player.PlayerEvent;
7+
8+
public class AbilityStopEvent extends PlayerEvent {
9+
10+
private static final HandlerList handlers = new HandlerList();
11+
12+
private final User user;
13+
private final Ability ability;
14+
15+
public AbilityStopEvent(User user, Ability ability) {
16+
super(user.getPlayer());
17+
this.user = user;
18+
this.ability = ability;
19+
}
20+
21+
public static HandlerList getHandlerList() {
22+
return handlers;
23+
}
24+
25+
public User getUser() {
26+
return user;
27+
}
28+
29+
public Ability getAbility() {
30+
return ability;
31+
}
32+
33+
@Override
34+
public HandlerList getHandlers() {
35+
return handlers;
36+
}
37+
38+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.github.abilityapi.events;
2+
3+
import com.github.abilityapi.sequence.Sequence;
4+
import com.github.abilityapi.user.User;
5+
import org.bukkit.event.HandlerList;
6+
import org.bukkit.event.player.PlayerEvent;
7+
8+
public class SequenceBeginEvent extends PlayerEvent {
9+
10+
private static final HandlerList handlers = new HandlerList();
11+
12+
private final User user;
13+
private final Sequence sequence;
14+
15+
private boolean cancelled;
16+
17+
public SequenceBeginEvent(User user, Sequence sequence) {
18+
super(user.getPlayer());
19+
this.user = user;
20+
this.sequence = sequence;
21+
}
22+
23+
public static HandlerList getHandlerList() {
24+
return handlers;
25+
}
26+
27+
public void setCancelled(boolean cancelled) {
28+
this.cancelled = cancelled;
29+
}
30+
31+
public User getUser() {
32+
return user;
33+
}
34+
35+
public Sequence getSequence() {
36+
return sequence;
37+
}
38+
39+
public boolean isCancelled() {
40+
return cancelled;
41+
}
42+
43+
@Override
44+
public HandlerList getHandlers() {
45+
return handlers;
46+
}
47+
48+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.github.abilityapi.events;
2+
3+
import com.github.abilityapi.sequence.Sequence;
4+
import com.github.abilityapi.user.User;
5+
import org.bukkit.event.Event;
6+
import org.bukkit.event.HandlerList;
7+
import org.bukkit.event.player.PlayerEvent;
8+
9+
public class SequenceFailEvent extends PlayerEvent {
10+
11+
public enum SequenceFailReason {
12+
13+
EVENT,
14+
DELAY,
15+
EXPIRE,
16+
CONDITION
17+
18+
}
19+
20+
private static final HandlerList handlers = new HandlerList();
21+
22+
private final User user;
23+
private final Sequence sequence;
24+
private final Event failedEvent;
25+
private final SequenceFailReason reason;
26+
27+
public SequenceFailEvent(User user, Sequence sequence, Event failedEvent, SequenceFailReason reason) {
28+
super(user.getPlayer());
29+
this.user = user;
30+
this.sequence = sequence;
31+
this.failedEvent = failedEvent;
32+
this.reason = reason;
33+
}
34+
35+
public static HandlerList getHandlerList() {
36+
return handlers;
37+
}
38+
39+
public User getUser() {
40+
return user;
41+
}
42+
43+
public Sequence getSequence() {
44+
return sequence;
45+
}
46+
47+
public Event getFailedEvent() {
48+
return failedEvent;
49+
}
50+
51+
public SequenceFailReason getReason() {
52+
return reason;
53+
}
54+
55+
@Override
56+
public HandlerList getHandlers() {
57+
return handlers;
58+
}
59+
60+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.github.abilityapi.events;
2+
3+
import com.github.abilityapi.sequence.Sequence;
4+
import com.github.abilityapi.user.User;
5+
import org.bukkit.event.HandlerList;
6+
import org.bukkit.event.player.PlayerEvent;
7+
8+
public class SequenceFinishEvent extends PlayerEvent {
9+
10+
private static final HandlerList handlers = new HandlerList();
11+
12+
private final User user;
13+
private final Sequence sequence;
14+
15+
private boolean cancelled;
16+
17+
public SequenceFinishEvent(User user, Sequence sequence) {
18+
super(user.getPlayer());
19+
this.user = user;
20+
this.sequence = sequence;
21+
}
22+
23+
public static HandlerList getHandlerList() {
24+
return handlers;
25+
}
26+
27+
public void setCancelled(boolean cancelled) {
28+
this.cancelled = cancelled;
29+
}
30+
31+
public User getUser() {
32+
return user;
33+
}
34+
35+
public Sequence getSequence() {
36+
return sequence;
37+
}
38+
39+
public boolean isCancelled() {
40+
return cancelled;
41+
}
42+
43+
@Override
44+
public HandlerList getHandlers() {
45+
return handlers;
46+
}
47+
48+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.github.abilityapi.events;
2+
3+
import com.github.abilityapi.sequence.Sequence;
4+
import com.github.abilityapi.user.User;
5+
import org.bukkit.event.Event;
6+
import org.bukkit.event.HandlerList;
7+
import org.bukkit.event.player.PlayerEvent;
8+
9+
public class SequenceSucceedEvent extends PlayerEvent {
10+
11+
private static final HandlerList handlers = new HandlerList();
12+
13+
private final User user;
14+
private final Sequence sequence;
15+
private final Event succeededEvent;
16+
17+
private boolean cancelled;
18+
19+
public SequenceSucceedEvent(User user, Sequence sequence, Event succeededEvent) {
20+
super(user.getPlayer());
21+
this.user = user;
22+
this.sequence = sequence;
23+
this.succeededEvent = succeededEvent;
24+
}
25+
26+
public static HandlerList getHandlerList() {
27+
return handlers;
28+
}
29+
30+
public void setCancelled(boolean cancelled) {
31+
this.cancelled = cancelled;
32+
}
33+
34+
public User getUser() {
35+
return user;
36+
}
37+
38+
public Sequence getSequence() {
39+
return sequence;
40+
}
41+
42+
public Event getSucceededEvent() {
43+
return succeededEvent;
44+
}
45+
46+
public boolean isCancelled() {
47+
return cancelled;
48+
}
49+
50+
@Override
51+
public HandlerList getHandlers() {
52+
return handlers;
53+
}
54+
55+
}

0 commit comments

Comments
 (0)