Skip to content

Commit c7490a9

Browse files
committed
Added onArrowHitRemoveProjectile event to remove projectiles which got shoot from InGame Players
1 parent 6ebdb42 commit c7490a9

File tree

1 file changed

+20
-5
lines changed
  • MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events

1 file changed

+20
-5
lines changed

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/Events.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.bukkit.event.entity.CreatureSpawnEvent;
3030
import org.bukkit.event.entity.EntityDamageByEntityEvent;
3131
import org.bukkit.event.entity.EntityExplodeEvent;
32+
import org.bukkit.event.entity.ProjectileHitEvent;
3233
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
3334
import org.bukkit.event.inventory.CraftItemEvent;
3435
import org.bukkit.event.inventory.InventoryClickEvent;
@@ -151,17 +152,17 @@ public void onItemMove(InventoryClickEvent event) {
151152

152153
@EventHandler
153154
public void onPlayerCraft(CraftItemEvent event) {
154-
if (!plugin.getConfigPreferences().getOption("BLOCK_IN_GAME_ITEM_MOVE")) {
155+
if(!plugin.getConfigPreferences().getOption("BLOCK_IN_GAME_ITEM_MOVE")) {
155156
return;
156157
}
157-
if (!(event.getWhoClicked() instanceof Player)) {
158+
if(!(event.getWhoClicked() instanceof Player)) {
158159
return;
159160
}
160161
IPluginArena arena = plugin.getArenaRegistry().getArena(((Player) event.getWhoClicked()));
161-
if (arena == null) {
162+
if(arena == null) {
162163
return;
163164
}
164-
if (arena.getArenaState() != IArenaState.IN_GAME) {
165+
if(arena.getArenaState() != IArenaState.IN_GAME) {
165166
event.setCancelled(true);
166167
}
167168
}
@@ -269,11 +270,25 @@ public void onInteractWithArmorStand(PlayerArmorStandManipulateEvent event) {
269270
if(plugin.getConfigPreferences().getOption("BLOCK_IN_GAME_ARMOR_STAND_CHECK")) {
270271
IPluginArena arena = plugin.getArenaRegistry().getArena(event.getPlayer());
271272
if(arena != null && arena.getArenaState() != IArenaState.IN_GAME) {
272-
return;
273+
return;
273274
}
274275
}
275276
event.setCancelled(true);
276277
}
277278

279+
@EventHandler
280+
public void onArrowHitRemoveProjectile(ProjectileHitEvent event) {
281+
Projectile projectile = event.getEntity();
282+
if(!(projectile instanceof Arrow)) {
283+
return;
284+
}
285+
if(!(projectile.getShooter() instanceof Player)) {
286+
return;
287+
}
288+
if(!plugin.getArenaRegistry().isInArena((Player) projectile.getShooter())) {
289+
return;
290+
}
291+
projectile.remove();
292+
}
278293

279294
}

0 commit comments

Comments
 (0)