Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.10 KB | None | 0 0
  1. package vc.pvp.skywars.listeners;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.entity.Player;
  5. import org.bukkit.event.EventHandler;
  6. import org.bukkit.event.Listener;
  7. import org.bukkit.event.block.Action;
  8. import org.bukkit.event.player.*;
  9.  
  10. import vc.pvp.skywars.SkyWars;
  11. import vc.pvp.skywars.config.PluginConfig;
  12. import vc.pvp.skywars.controllers.GameController;
  13. import vc.pvp.skywars.controllers.PlayerController;
  14. import vc.pvp.skywars.controllers.SchematicController;
  15. import vc.pvp.skywars.game.Game;
  16. import vc.pvp.skywars.game.GameState;
  17. import vc.pvp.skywars.player.GamePlayer;
  18. import vc.pvp.skywars.utilities.Messaging;
  19. import vc.pvp.skywars.utilities.StringUtils;
  20.  
  21. import java.util.Iterator;
  22.  
  23. public class PlayerListener implements Listener {
  24.  
  25.     @EventHandler
  26.     public void onPlayerJoin(PlayerJoinEvent event) {
  27.         PlayerController.get().register(event.getPlayer());
  28.     }
  29.  
  30.     @EventHandler
  31.     public void onPlayerQuit(PlayerQuitEvent event) {
  32.         Player player = event.getPlayer();
  33.         GamePlayer gamePlayer = PlayerController.get().get(player);
  34.  
  35.         if (gamePlayer.isPlaying()) {
  36.             gamePlayer.getGame().onPlayerLeave(gamePlayer);
  37.         }
  38.  
  39.         gamePlayer.save();
  40.         PlayerController.get().unregister(player);
  41.     }
  42.  
  43.     @EventHandler
  44.     public void onPlayerRespawn(PlayerRespawnEvent event) {
  45.         Player player = event.getPlayer();
  46.         GamePlayer gamePlayer = PlayerController.get().get(player);
  47.  
  48.         if (gamePlayer.isPlaying()) {
  49.             event.setRespawnLocation(PluginConfig.getLobbySpawn());
  50.         }
  51.     }
  52.  
  53.     @SuppressWarnings("deprecation")
  54.     @EventHandler
  55.     public void onPlayerInteract(PlayerInteractEvent event) {
  56.         Player player = event.getPlayer();
  57.         GamePlayer gamePlayer = PlayerController.get().get(player);
  58.  
  59.         if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getTypeId() == Material.STONE_PLATE.getId()) {
  60.             if (!gamePlayer.isPlaying() && player.getLocation().getWorld().equals(PluginConfig.getLobbySpawn().getWorld())) {
  61.                 if (SchematicController.get().size() == 0) {
  62.                     player.sendMessage(new Messaging.MessageFormatter().format("error.no-schematics"));
  63.                     return;
  64.                 }
  65.  
  66.                 Game game = GameController.get().findEmpty();
  67.                 game.onPlayerJoin(gamePlayer);
  68.             }
  69.  
  70.             return;
  71.         }
  72.  
  73.         if (gamePlayer.isPlaying() && gamePlayer.getGame().getState() != GameState.PLAYING) {
  74.             event.setCancelled(true);
  75.         }
  76.     }
  77.  
  78.     @EventHandler
  79.     public void onPlayerChat(AsyncPlayerChatEvent event) {
  80.         Player player = event.getPlayer();
  81.         GamePlayer gamePlayer = PlayerController.get().get(player);
  82.  
  83.         if (PluginConfig.chatHandledByOtherPlugin()) {
  84.             event.setFormat(event.getFormat().replace("[score]", String.valueOf(gamePlayer.getScore())));
  85.  
  86.             if (gamePlayer.isPlaying()) {
  87.                 for (Iterator<Player> iterator = event.getRecipients().iterator(); iterator.hasNext();) {
  88.                     GamePlayer gp = PlayerController.get().get(iterator.next());
  89.  
  90.                     if (!gp.isPlaying() || !gp.getGame().equals(gamePlayer.getGame())) {
  91.                         iterator.remove();
  92.                     }
  93.                 }
  94.  
  95.             } else {
  96.                 for (Iterator<Player> iterator = event.getRecipients().iterator(); iterator.hasNext();) {
  97.                     GamePlayer gp = PlayerController.get().get(iterator.next());
  98.  
  99.                     if (gp.isPlaying()) {
  100.                         iterator.remove();
  101.                     }
  102.                 }
  103.             }
  104.  
  105.             return;
  106.         }
  107.  
  108.         String message = new Messaging.MessageFormatter()
  109.                 .setVariable("score", StringUtils.formatScore(gamePlayer.getScore()))
  110.                 .setVariable("player", player.getDisplayName())
  111.                 .setVariable("message", Messaging.stripColor(event.getMessage()))
  112.                 .setVariable("prefix", SkyWars.getChat().getPlayerPrefix(player))
  113.                 .format("chat.local");
  114.  
  115.         event.setCancelled(true);
  116.  
  117.         if (gamePlayer.isPlaying()) {
  118.             gamePlayer.getGame().sendMessage(message);
  119.  
  120.         } else {
  121.             for (GamePlayer gp : PlayerController.get().getAll()) {
  122.                 if (!gp.isPlaying()) {
  123.                     gp.getBukkitPlayer().sendMessage(message);
  124.                 }
  125.             }
  126.         }
  127.     }
  128.  
  129.     @EventHandler
  130.     public void onPlayerCommand(PlayerCommandPreprocessEvent event) {
  131.         Player player = event.getPlayer();
  132.         GamePlayer gamePlayer = PlayerController.get().get(player);
  133.  
  134.         if (gamePlayer.isPlaying()) {
  135.             String command = event.getMessage().split(" ")[0].toLowerCase();
  136.  
  137.             if (!command.equals("/sw") && !PluginConfig.isCommandWhitelisted(command)) {
  138.                 event.setCancelled(true);
  139.                 player.sendMessage( new Messaging.MessageFormatter().withPrefix().format("error.cmd-disabled"));
  140.             }
  141.         }
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement