Advertisement
Spartaner_v1

Mainclass

Nov 20th, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.27 KB | None | 0 0
  1. package main;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.BufferedOutputStream;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileNotFoundException;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import java.util.ArrayList;
  11. import java.util.logging.Logger;
  12.  
  13. import listener.join_listener;
  14. import listener.leave_listener;
  15. import listener.other_listener;
  16. import listener.respawn_listener;
  17.  
  18. import org.bukkit.Bukkit;
  19. import org.bukkit.OfflinePlayer;
  20. import org.bukkit.World;
  21. import org.bukkit.WorldCreator;
  22. import org.bukkit.entity.Player;
  23. import org.bukkit.event.Listener;
  24. import org.bukkit.plugin.PluginManager;
  25. import org.bukkit.plugin.java.JavaPlugin;
  26. import org.bukkit.scoreboard.DisplaySlot;
  27. import org.bukkit.scoreboard.Objective;
  28. import org.bukkit.scoreboard.Scoreboard;
  29. import org.bukkit.scoreboard.ScoreboardManager;
  30. import org.bukkit.scoreboard.Team;
  31.  
  32. import commands.bedwars_cmd;
  33. import commands.bedwars_funktionen;
  34. import commands.team_cmd;
  35.  
  36. public class Main extends JavaPlugin implements Listener {
  37.    
  38.     public static String pluginName = "§7[§6BedWars§7] ";
  39.     public static String motd = "§aLobby";
  40.    
  41.     public static Logger log;
  42.    
  43.     public static ArrayList<String> team_blau = new ArrayList<String>();
  44.     public static ArrayList<String> team_gruen = new ArrayList<String>();
  45.     public static ArrayList<String> team_gelb = new ArrayList<String>();
  46.     public static ArrayList<String> team_rot = new ArrayList<String>();
  47.    
  48.     public static String blau = "0";
  49.     public static String rot = "0";
  50.     public static String gruen = "0";
  51.     public static String gelb = "0";
  52.    
  53.     public static String world_name = "BedWars_Map";
  54.    
  55.     public static String sb_blau = "§1Team Blau";
  56.     public static String sb_gruen = "§2Team Grün";
  57.     public static String sb_gelb = "§6Team Gelb";
  58.     public static String sb_rot = "§4Team Rot";
  59.    
  60.     static OfflinePlayer line2,line3,line4,line5;
  61.    
  62.     public static int cd;
  63.    
  64.     public static Main plugin;
  65.    
  66.     @SuppressWarnings("deprecation")
  67.     public Main() {
  68.         plugin = this;
  69.         line2 = Bukkit.getOfflinePlayer(sb_blau);
  70.         line3 = Bukkit.getOfflinePlayer(sb_gruen);
  71.         line4 = Bukkit.getOfflinePlayer(sb_gelb);
  72.         line5 = Bukkit.getOfflinePlayer(sb_rot);       
  73.     }
  74.    
  75.     @SuppressWarnings("deprecation")
  76.     @Override
  77.     public void onDisable() {
  78.        
  79.         for(Player players : Bukkit.getServer().getOnlinePlayers()) {
  80.             players.kickPlayer("§cServer restartet!");
  81.         }      
  82.        
  83.         System.out.println(this.getDescription().getName() + " Wurde erfolreich deaktiviert!");
  84.     }
  85.  
  86.     @SuppressWarnings("deprecation")
  87.     @Override
  88.     public void onEnable() {
  89.        
  90.         refresh();     
  91.        
  92.         bedwars_funktionen.plugin = this;
  93.        
  94.         for(Player players : Bukkit.getServer().getOnlinePlayers()) {
  95.             players.kickPlayer("§cServer restartet!");
  96.         }
  97.        
  98.         log = this.getLogger();    
  99.         Bukkit.getWorld("world").setPVP(false);    
  100.         rollback();    
  101.         bedwars_funktionen.timer_end = 21;
  102.        
  103.         registerCommands();
  104.         System.out.println(this.getDescription().getName() + ": Die Commands wurden erfolgreich geladen!");
  105.         registerListeners();
  106.         System.out.println(this.getDescription().getName() + ": Die Listener wurden erfolgreich geladen!");
  107.         System.out.println(this.getDescription().getName() + ": Wurde erfolreich aktiviert!");
  108.        
  109.         // Dauerhafte Abfrage (Alle 1 Sekunden)
  110.        
  111.         cd = Bukkit.getServer().getScheduler().scheduleAsyncRepeatingTask(this, new Runnable() {
  112.  
  113.             public void run() {
  114.                 commands.bedwars_funktionen.checkTeam();               
  115.                 refresh();             
  116.                 if(bedwars_funktionen.status == "1") {
  117.                     if(Main.team_blau.size() == 0) {
  118.                         if(blau == "0") {
  119.                             Bukkit.broadcastMessage(Main.pluginName + "§7Das §1Blaue Team §7wurde vernichtet!");
  120.                             blau = "1";
  121.                         }
  122.                     } if(Main.team_gruen.size() == 0) {
  123.                         if(gruen == "0") {
  124.                             Bukkit.broadcastMessage(Main.pluginName + "§7Das §2Grüne Team §7wurde vernichtet!");
  125.                             gruen = "1";
  126.                         }
  127.                     } if(Main.team_gelb.size() == 0) {
  128.                         if(gelb == "0") {
  129.                             Bukkit.broadcastMessage(Main.pluginName + "§7Das §6Gelbe Team §7wurde vernichtet!");
  130.                             gelb = "1";
  131.                         }
  132.                     } if(Main.team_rot.size() == 0) {
  133.                         if(rot == "0") {
  134.                             Bukkit.broadcastMessage(Main.pluginName + "§7Das §4Rote Team §7wurde vernichtet!");
  135.                             rot = "1";
  136.                         }
  137.                        
  138.                        
  139.                     } if(team_blau.size() <= 1 && team_gelb.size() == 0 && team_gruen.size() == 0 && team_rot.size() == 0) {
  140.                         Bukkit.broadcastMessage(Main.pluginName + "§aDas §1Blaue Team §ahat das Spiel gewonnen!");
  141.                         bedwars_funktionen.gameEnd();
  142.                         Bukkit.getScheduler().cancelTask(cd);
  143.                     } if(team_blau.size() == 0 && team_gelb.size() <= 1 && team_gruen.size() == 0 && team_rot.size() == 0) {
  144.                         Bukkit.broadcastMessage(Main.pluginName + "§aDas §6Gelbe Team §ahat das Spiel gewonnen!");
  145.                         bedwars_funktionen.gameEnd();
  146.                         Bukkit.getScheduler().cancelTask(cd);
  147.                     } if(team_blau.size() == 0 && team_gelb.size() == 0 && team_gruen.size() <= 1 && team_rot.size() == 0) {
  148.                         Bukkit.broadcastMessage(Main.pluginName + "§aDas §2Grüne Team §ahat das Spiel gewonnen!");
  149.                         bedwars_funktionen.gameEnd();
  150.                         Bukkit.getScheduler().cancelTask(cd);
  151.                     } if(team_blau.size() == 0 && team_gelb.size() == 0 && team_gruen.size() == 0 && team_rot.size() <= 1) {
  152.                         Bukkit.broadcastMessage(Main.pluginName + "§aDas §4Rote Team §ahat das Spiel gewonnen!");
  153.                         bedwars_funktionen.gameEnd();
  154.                         Bukkit.getScheduler().cancelTask(cd);
  155.                     }
  156.                 }              
  157.             }
  158.         }, 60L, 20L);
  159.        
  160.         // Dauerhafte Abfrage (Jede Minute)
  161.        
  162.         Bukkit.getServer().getScheduler().scheduleAsyncRepeatingTask(this, new Runnable() {
  163.  
  164.             public void run() {
  165.                 commands.bedwars_funktionen.morePlayerMessage();
  166.             }
  167.         }, 60L, 60*20L);
  168.        
  169.         super.onEnable();
  170.     }
  171.    
  172.     public void registerListeners() {
  173.         PluginManager pm = getServer().getPluginManager();
  174.         pm.registerEvents(new join_listener(this), this);
  175.         pm.registerEvents(new leave_listener(this), this);
  176.         pm.registerEvents(new respawn_listener(this), this);
  177.         pm.registerEvents(new other_listener(this), this);
  178.     }
  179.    
  180.     private void registerCommands() {
  181.         team_cmd team = new team_cmd();
  182.         getCommand("team").setExecutor(team);
  183.        
  184.         bedwars_cmd bedwars = new bedwars_cmd();
  185.         getCommand("bedwars").setExecutor(bedwars);
  186.     }
  187.    
  188.     public static void unloadMap(){
  189.         if(Bukkit.getServer().unloadWorld(Bukkit.getServer().getWorld(world_name), false)){
  190.             reset();
  191.         }else{
  192.             reset();
  193.         }
  194.     }
  195.    
  196.     public static void loadMap(){
  197.         Bukkit.getServer().createWorld(new WorldCreator(world_name));
  198.     }
  199.    
  200.     public static void rollback(){
  201.         unloadMap();
  202.         loadMap();
  203.     }
  204.    
  205.     @SuppressWarnings("deprecation")
  206.     public static void refresh() {
  207.        
  208.         line2 = Bukkit.getOfflinePlayer(sb_blau);
  209.         line3 = Bukkit.getOfflinePlayer(sb_gruen);
  210.         line4 = Bukkit.getOfflinePlayer(sb_gelb);
  211.         line5 = Bukkit.getOfflinePlayer(sb_rot);
  212.        
  213.        
  214.         ScoreboardManager manager = Bukkit.getScoreboardManager();
  215.         Scoreboard board = manager.getNewScoreboard();
  216.        
  217.         Objective obj = board.getObjective("sidebar");
  218.         if(obj == null) {
  219.             obj = board.registerNewObjective("sidebar", "dummy");
  220.         }
  221.        
  222.         int team_blau_size = team_blau.size();
  223.         int team_gruen_size = team_gruen.size();
  224.         int team_gelb_size = team_gelb.size();
  225.         int team_rot_size = team_rot.size();
  226.        
  227.         obj.setDisplaySlot(DisplaySlot.SIDEBAR);
  228.         obj.setDisplayName("§7[BedWars Status]");
  229.         obj.getScore(line2).setScore(team_blau_size);
  230.         obj.getScore(line3).setScore(team_gruen_size);
  231.         obj.getScore(line4).setScore(team_gelb_size);
  232.         obj.getScore(line5).setScore(team_rot_size);
  233.        
  234.         Team sb_blau = board.registerNewTeam("Blau");
  235.         Team sb_gruen = board.registerNewTeam("Gruen");
  236.         Team sb_gelb = board.registerNewTeam("Gelb");
  237.         Team sb_rot = board.registerNewTeam("Rot");
  238.        
  239.         sb_blau.setAllowFriendlyFire(false);
  240.         sb_gruen.setAllowFriendlyFire(false);
  241.         sb_gelb.setAllowFriendlyFire(false);
  242.         sb_rot.setAllowFriendlyFire(false);
  243.        
  244.         for(String p_blau : Main.team_blau) {
  245.             sb_blau.addPlayer(Bukkit.getPlayerExact(p_blau));
  246.         }
  247.        
  248.         for(String p_gruen : Main.team_gruen) {
  249.             sb_gruen.addPlayer(Bukkit.getPlayerExact(p_gruen));
  250.         }
  251.        
  252.         for(String p_gelb : Main.team_gelb) {
  253.             sb_gelb.addPlayer(Bukkit.getPlayerExact(p_gelb));
  254.         }
  255.        
  256.         for(String p_rot : Main.team_rot) {
  257.             sb_rot.addPlayer(Bukkit.getPlayerExact(p_rot));
  258.         }
  259.            
  260.        
  261.         for(Player t : Bukkit.getOnlinePlayers()) {
  262.             t.setScoreboard(board);
  263.         }
  264.     }
  265.    
  266.     public static void reset() {
  267.         log.info("World reset started");
  268.         World resetworld = Bukkit.getWorld(world_name);
  269.         if(resetworld != null) {
  270.             for(Player player : resetworld.getPlayers())
  271.                 player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
  272.             Bukkit.unloadWorld(world_name, false);
  273.         }
  274.         File file = new File(plugin.getDataFolder() + System.getProperty("file.separator") + world_name);
  275.         if(file != null) {
  276.             try {
  277.                 copyDir(file, new File(world_name));
  278.             } catch (FileNotFoundException e) {
  279.                 e.printStackTrace();
  280.             } catch (IOException e) {
  281.                 e.printStackTrace();
  282.             }
  283.         }
  284.         Bukkit.createWorld(new WorldCreator(world_name));
  285.         log.info("World reset successfully finished");
  286.     }
  287.    
  288.     public static void copyDir(File quelle, File ziel) throws FileNotFoundException, IOException {
  289.        
  290.         File[] files = quelle.listFiles();
  291.         File newFile = null;
  292.         ziel.mkdirs();
  293.         if (files != null) {
  294.             for (int i = 0; i < files.length; i++) {
  295.                     newFile = new File(ziel.getAbsolutePath() + System.getProperty("file.separator") + files[i].getName());
  296.                 if (files[i].isDirectory()) {
  297.                     copyDir(files[i], newFile);
  298.                 }
  299.                 else {
  300.                     copyFile(files[i], newFile);
  301.                 }
  302.             }
  303.         }
  304.     }
  305.    
  306.     public static void copyFile(File file, File ziel) throws FileNotFoundException, IOException {
  307.         BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
  308.         BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(ziel, true));
  309.         int bytes = 0;
  310.         while ((bytes = in.read()) != -1) {
  311.             out.write(bytes);
  312.         }
  313.         in.close();
  314.         out.close();
  315.     }
  316.    
  317.    
  318.    
  319. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement