Advertisement
Guest User

Untitled

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