Skip to content

Commit aaf3892

Browse files
committed
Supports BOW shoot (max power) trigger
1 parent f4d1b5c commit aaf3892

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

‎api/src/main/java/fr/jamailun/ultimatespellsystem/api/bind/ItemBindTrigger.java‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,13 @@ public enum ItemBindTrigger {
4343
/**
4444
* Player sneaking.
4545
*/
46-
SNEAK;
46+
SNEAK,
47+
48+
/**
49+
* Bow shoot with max power.
50+
*/
51+
BOW_SHOOT_POWER,
52+
;
4753

4854
private final Set<ItemBindTrigger> children;
4955

‎plugin/src/main/java/fr/jamailun/ultimatespellsystem/plugin/listeners/AttackListener.java‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@
99
import org.bukkit.event.EventPriority;
1010
import org.bukkit.event.Listener;
1111
import org.bukkit.event.entity.EntityDamageByEntityEvent;
12+
import org.bukkit.event.entity.EntityShootBowEvent;
1213
import org.jetbrains.annotations.NotNull;
1314

1415
/**
1516
* Listen to attacks and trigger when required.
1617
*/
1718
public class AttackListener implements Listener {
1819

19-
@EventHandler(priority = EventPriority.HIGH)
20+
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
2021
void playerLeftClick(@NotNull EntityDamageByEntityEvent event) {
2122
if(!(event.getDamager() instanceof Player player))
2223
return;
@@ -27,4 +28,15 @@ void playerLeftClick(@NotNull EntityDamageByEntityEvent event) {
2728
}
2829
}
2930

31+
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
32+
void playerBowShoot(@NotNull EntityShootBowEvent event) {
33+
if(!(event.getEntity() instanceof Player player))
34+
return;
35+
if(event.getForce() < 1.0)
36+
return;
37+
38+
// Never cancel bow
39+
UltimateSpellSystem.getSpellsTriggerManager().action(player, ItemBindTrigger.BOW_SHOOT_POWER);
40+
}
41+
3042
}

0 commit comments

Comments
 (0)