Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. package me.xDark.BedWars.managers;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.Location;
  9. import org.bukkit.World;
  10. import org.bukkit.configuration.ConfigurationSection;
  11. import org.bukkit.configuration.file.FileConfiguration;
  12.  
  13. import com.sk89q.worldedit.EditSession;
  14. import com.sk89q.worldedit.MaxChangedBlocksException;
  15. import com.sk89q.worldedit.Vector;
  16. import com.sk89q.worldedit.bukkit.WorldEditPlugin;
  17. import com.sk89q.worldedit.data.DataException;
  18. import com.sk89q.worldedit.schematic.MCEditSchematicFormat;
  19.  
  20. import me.xDark.BedWars.BedWars;
  21. import me.xDark.BedWars.api.Arena;
  22.  
  23. public class ArenaManager {
  24. private static ArrayList<Arena> arenas;
  25. private static ConfigurationSection section;
  26. private static FileConfiguration yaml;
  27. private static WorldEditPlugin plugin;
  28.  
  29. public static void init() {
  30. arenas = new ArrayList<Arena>();
  31. yaml = BedWars.getInstance().getConfig();
  32. section = yaml.getConfigurationSection("arenas");
  33. plugin = (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit");
  34. }
  35.  
  36. public static ArrayList<Arena> getArenas() {
  37. return arenas;
  38. }
  39.  
  40. @SuppressWarnings("deprecation")
  41. public static void setupArenas() {
  42. if (section == null)
  43. return;
  44. for (String key : section.getKeys(false)) {
  45. String arenaName = key;
  46. World world = Bukkit.getWorld(yaml.getString("arenas." + key + ".lobbyWorld"));
  47. double lobbyX = yaml.getDouble("arenas." + key + ".lobbyX");
  48. double lobbyY = yaml.getDouble("arenas." + key + ".lobbyY");
  49. double lobbyZ = yaml.getDouble("arenas." + key + ".lobbyZ");
  50. double arenaX = yaml.getDouble("arenas." + key + ".arenaX");
  51. double arenaY = yaml.getDouble("arenas." + key + ".arenaY");
  52. double arenaZ = yaml.getDouble("arenas." + key + ".arenaZ");
  53. int id = yaml.getInt("arenas." + key + ".id");
  54. int min = yaml.getInt("arenas." + key + ".minPlayers");
  55. int max = yaml.getInt("arenas." + key + ".maxPlayers");
  56. Arena arena = new Arena(arenaName, id, new Location(world, arenaX, arenaY, arenaZ),
  57. new Location(world, lobbyX, lobbyY, lobbyZ), min, max);
  58. getArenas().add(arena);
  59. EditSession session = plugin.getWorldEdit().getEditSessionFactory()
  60. .getEditSession((com.sk89q.worldedit.world.World) arena.getLocation().getWorld(), 10000);
  61. File schem = new File(BedWars.getInstance().getDataFolder(), arenaName + ".schematic");
  62. try {
  63. MCEditSchematicFormat.getFormat(schem).load(schem).paste(session, new Vector(arenaX, arenaY, arenaZ),
  64. false);
  65. } catch (MaxChangedBlocksException | DataException | IOException e) {
  66. BedWars.getInstance().getLogger().warning("Failed to load arena " + arena.getName());
  67. e.printStackTrace();
  68. continue;
  69. }
  70. BedWars.getInstance().getLogger().info("-----------------------------------");
  71. BedWars.getInstance().getLogger().info("Loading arena " + arena.getName());
  72. BedWars.getInstance().getLogger().info("Settings:");
  73. BedWars.getInstance().getLogger().info("ID: " + id);
  74. BedWars.getInstance().getLogger().info("Min. Players: " + min);
  75. BedWars.getInstance().getLogger().info("Max. Players: " + max);
  76. BedWars.getInstance().getLogger().info("Position-Lobby-X: " + lobbyX);
  77. BedWars.getInstance().getLogger().info("Position-Lobby-Y: " + lobbyY);
  78. BedWars.getInstance().getLogger().info("Position-Lobby-Z: " + lobbyZ);
  79. BedWars.getInstance().getLogger().info("Position-Arena-Z: " + arenaX);
  80. BedWars.getInstance().getLogger().info("Position-Arena-Z: " + arenaY);
  81. BedWars.getInstance().getLogger().info("Position-Arena-Z: " + arenaZ);
  82. BedWars.getInstance().getLogger().info("Loaded arena " + arena.getName());
  83. BedWars.getInstance().getLogger().info("-----------------------------------");
  84.  
  85. }
  86. }
  87.  
  88. public static Arena getArenaByID(int id) {
  89. for (Arena arena : getArenas()) {
  90. if (arena.getId() == id) {
  91. return arena;
  92. }
  93. break;
  94. }
  95. return null;
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement