Skip to content

Commit 9d26fb5

Browse files
committed
resolve merge
1 parent 631c30e commit 9d26fb5

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/pearl/PearlController.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.eternalcode.combat.fight.pearl;
22

33
import com.eternalcode.combat.config.implementation.PluginConfig;
4+
import com.eternalcode.combat.fight.FightManager;
45
import com.eternalcode.combat.notification.NoticeService;
56
import com.eternalcode.combat.util.DurationUtil;
67
import java.time.Duration;
@@ -13,20 +14,23 @@
1314
import org.bukkit.event.entity.EntityDamageByEntityEvent;
1415
import org.bukkit.event.entity.EntityDamageEvent;
1516
import org.bukkit.event.entity.ProjectileLaunchEvent;
17+
import org.bukkit.event.player.PlayerTeleportEvent;
1618

1719
public class PearlController implements Listener {
1820

1921
private final PluginConfig pluginConfig;
2022
private final PearlService pearlService;
2123
private final NoticeService noticeService;
24+
private final FightManager fightManager;
2225

2326
public PearlController(
2427
PluginConfig pluginConfig,
25-
PearlService pearlService, NoticeService noticeService
28+
PearlService pearlService, NoticeService noticeService, FightManager fightManager
2629
) {
2730
this.pluginConfig = pluginConfig;
2831
this.pearlService = pearlService;
2932
this.noticeService = noticeService;
33+
this.fightManager = fightManager;
3034
}
3135

3236
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -79,4 +83,30 @@ public void onPearlDamage(EntityDamageByEntityEvent event) {
7983
event.setDamage(0.0);
8084
}
8185

86+
87+
@EventHandler(priority = EventPriority.HIGHEST)
88+
public void onPearlTeleport(PlayerTeleportEvent event) {
89+
if (event.getCause() != PlayerTeleportEvent.TeleportCause.ENDER_PEARL) {
90+
return;
91+
}
92+
93+
if (!this.pluginConfig.pearl.pearlThrowDisabledDuringCombat) {
94+
return;
95+
}
96+
97+
Player player = event.getPlayer();
98+
UUID playerId = player.getUniqueId();
99+
100+
if (!this.fightManager.isInCombat(playerId)) {
101+
return;
102+
}
103+
104+
event.setCancelled(true);
105+
106+
this.noticeService.create()
107+
.player(playerId)
108+
.notice(this.pluginConfig.pearl.pearlThrowBlockedDuringCombat)
109+
.send();
110+
}
111+
82112
}

0 commit comments

Comments
 (0)