Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.91 KB | None | 0 0
  1. package vc.pvp.skywars.listeners;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.entity.EntityType;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.Listener;
  8. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  9. import org.bukkit.event.entity.EntityDamageEvent;
  10. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  11. import org.bukkit.event.entity.PlayerDeathEvent;
  12. import vc.pvp.skywars.SkyWars;
  13. import vc.pvp.skywars.controllers.PlayerController;
  14. import vc.pvp.skywars.game.Game;
  15. import vc.pvp.skywars.game.GameState;
  16. import vc.pvp.skywars.player.GamePlayer;
  17.  
  18. public class EntityListener implements Listener {
  19.  
  20.     @EventHandler(ignoreCancelled = true)
  21.     public void onEntityDamage(EntityDamageEvent event) {
  22.         if (event.getEntityType() != EntityType.PLAYER) {
  23.             return;
  24.         }
  25.  
  26.         Player player = (Player) event.getEntity();
  27.         GamePlayer gamePlayer = PlayerController.get().get(player);
  28.        
  29.         if (event.getCause() == DamageCause.FIRE_TICK && gamePlayer.shouldSkipFireTicks()) {
  30.             player.setFireTicks(0);
  31.             event.setCancelled(true);
  32.             gamePlayer.setSkipFireTicks(false);
  33.         }
  34.  
  35.         if (!gamePlayer.isPlaying()) {
  36.             return;
  37.         }
  38.  
  39.         Game game = gamePlayer.getGame();
  40.  
  41.         if (game.getState() == GameState.WAITING) {
  42.             event.setCancelled(true);
  43.         } else if (event.getCause() == EntityDamageEvent.DamageCause.FALL && gamePlayer.shouldSkipFallDamage()) {
  44.             gamePlayer.setSkipFallDamage(false);
  45.             event.setCancelled(true);
  46.         } else if (event.getCause() == EntityDamageEvent.DamageCause.VOID) {
  47.             player.setFallDistance(0F);
  48.             event.setCancelled(true);
  49.             gamePlayer.getGame().onPlayerDeath(gamePlayer, null);
  50.         }
  51.     }
  52.  
  53.     @EventHandler(ignoreCancelled = true)
  54.     public void onPlayerDeath(final PlayerDeathEvent event) {
  55.         Player player = event.getEntity();
  56.         final GamePlayer gamePlayer = PlayerController.get().get(player);
  57.  
  58.         if (!gamePlayer.isPlaying()) {
  59.             return;
  60.         }
  61.  
  62.         DamageCause damageCause = player.getLastDamageCause().getCause();
  63.         if (player.getLastDamageCause() instanceof EntityDamageByEntityEvent) {
  64.             Bukkit.getScheduler().runTaskLater(SkyWars.get(), new Runnable() {
  65.                 @Override
  66.                 public void run() {
  67.                     gamePlayer.getGame().onPlayerDeath(gamePlayer, event);
  68.                 }
  69.             }, 1L);
  70.         } else if (damageCause == DamageCause.LAVA || damageCause == DamageCause.FIRE || damageCause == DamageCause.FIRE_TICK) {
  71.             gamePlayer.setSkipFireTicks(true);
  72.             gamePlayer.getGame().onPlayerDeath(gamePlayer, event);
  73.         } else {
  74.             gamePlayer.getGame().onPlayerDeath(gamePlayer, event);
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement