|
29 | 29 | import org.bukkit.event.entity.CreatureSpawnEvent;
|
30 | 30 | import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
31 | 31 | import org.bukkit.event.entity.EntityExplodeEvent;
|
| 32 | +import org.bukkit.event.entity.ProjectileHitEvent; |
32 | 33 | import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
33 | 34 | import org.bukkit.event.inventory.CraftItemEvent;
|
34 | 35 | import org.bukkit.event.inventory.InventoryClickEvent;
|
@@ -151,17 +152,17 @@ public void onItemMove(InventoryClickEvent event) {
|
151 | 152 |
|
152 | 153 | @EventHandler
|
153 | 154 | 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")) { |
155 | 156 | return;
|
156 | 157 | }
|
157 |
| - if (!(event.getWhoClicked() instanceof Player)) { |
| 158 | + if(!(event.getWhoClicked() instanceof Player)) { |
158 | 159 | return;
|
159 | 160 | }
|
160 | 161 | IPluginArena arena = plugin.getArenaRegistry().getArena(((Player) event.getWhoClicked()));
|
161 |
| - if (arena == null) { |
| 162 | + if(arena == null) { |
162 | 163 | return;
|
163 | 164 | }
|
164 |
| - if (arena.getArenaState() != IArenaState.IN_GAME) { |
| 165 | + if(arena.getArenaState() != IArenaState.IN_GAME) { |
165 | 166 | event.setCancelled(true);
|
166 | 167 | }
|
167 | 168 | }
|
@@ -269,11 +270,25 @@ public void onInteractWithArmorStand(PlayerArmorStandManipulateEvent event) {
|
269 | 270 | if(plugin.getConfigPreferences().getOption("BLOCK_IN_GAME_ARMOR_STAND_CHECK")) {
|
270 | 271 | IPluginArena arena = plugin.getArenaRegistry().getArena(event.getPlayer());
|
271 | 272 | if(arena != null && arena.getArenaState() != IArenaState.IN_GAME) {
|
272 |
| - return; |
| 273 | + return; |
273 | 274 | }
|
274 | 275 | }
|
275 | 276 | event.setCancelled(true);
|
276 | 277 | }
|
277 | 278 |
|
| 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 | + } |
278 | 293 |
|
279 | 294 | }
|
0 commit comments