Advertisement
Guest User

Main.java

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