Advertisement
Guest User

fix dis sht

a guest
Dec 28th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.44 KB | None | 0 0
  1. package me.RSP.bb.Mechanics.basic;
  2.  
  3. import me.RSP.bb.Main;
  4. import me.RSP.bb.Arenas.Arena;
  5. import me.RSP.bb.Arenas.ArenaState;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.Material;
  10. import org.bukkit.World;
  11. import org.bukkit.block.Sign;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.block.Action;
  15. import org.bukkit.event.block.SignChangeEvent;
  16. import org.bukkit.event.player.PlayerInteractEvent;
  17.  
  18. public class Signs implements Listener{
  19.  
  20.     @EventHandler
  21.     public void onSignChange(SignChangeEvent e){
  22.        
  23.         if (!e.getBlock().getWorld().getName().equalsIgnoreCase("Lobby")){
  24.             e.getBlock().setType(Material.AIR);
  25.             e.getPlayer().sendMessage(ChatColor.RED + "Signs can only be placed in the lobby!");
  26.             return;
  27.         }
  28.        
  29.         try {
  30.             setSign(e, Bukkit.getWorld(e.getLine(0)));
  31.         }
  32.         catch (NullPointerException ex){
  33.             e.getPlayer().sendMessage(ChatColor.RED + "Invalid Arena Name!");
  34.             e.getBlock().setType(Material.AIR);
  35.             return;
  36.         }
  37.        
  38.     }
  39.    
  40.     public void setSign(SignChangeEvent sign, World world){
  41.        
  42.         sign.setLine(0, ChatColor.DARK_RED + world.getName());
  43.        
  44.         Arena arena = new Arena(world);
  45.        
  46.         Main.getUtils().getArenasFile().newSign((Sign) sign.getBlock().getState(), arena);
  47.        
  48.         update(sign, arena);
  49.        
  50.     }
  51.    
  52.     public void update(SignChangeEvent sign, Arena arena){
  53.        
  54.         sign.setLine(2, arena.getPlayerCount() + "/8");
  55.         sign.setLine(3, ArenaState.toString(arena.getState()));
  56.        
  57.     }
  58.    
  59.     @EventHandler
  60.     public void onRightClick(PlayerInteractEvent e){
  61.        
  62.         if (e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock().getType() == Material.WALL_SIGN){
  63.            
  64.             Sign sign = (Sign) e.getClickedBlock().getState();
  65.            
  66.             if ((!sign.getLine(3).equalsIgnoreCase(ArenaState.toString(ArenaState.IN_GAME)))
  67.                 && !sign.getLine(2).equalsIgnoreCase("8/8")){
  68.                
  69.                 World w = Bukkit.getWorld(ChatColor.stripColor(sign.getLine(0)));
  70.                 Arena arena;
  71.                
  72.                 try {
  73.                     arena = Main.getUtils().getArenas().getArenaFor(w);
  74.                 }
  75.                 catch (NullPointerException ex){
  76.                     arena = new Arena(w);
  77.                 }
  78.                
  79.                 if (Main.getUtils().getArenas().getArenaFor(w) == null){
  80.                     arena = new Arena(w);
  81.                 }
  82.                
  83.                 Main.getUtils().getJoinArena().enterGame(e.getPlayer(), arena);
  84.                
  85.                 sign.setLine(2, arena.getPlayerCount() + "/8");
  86.                 sign.setLine(3, ArenaState.toString(arena.getState()));
  87.                
  88.                 sign.update();
  89.            
  90.         }
  91.         }
  92.         }
  93.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement