Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.xDark.BedWars.managers;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.World;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.configuration.file.FileConfiguration;
- import com.sk89q.worldedit.EditSession;
- import com.sk89q.worldedit.MaxChangedBlocksException;
- import com.sk89q.worldedit.Vector;
- import com.sk89q.worldedit.bukkit.WorldEditPlugin;
- import com.sk89q.worldedit.data.DataException;
- import com.sk89q.worldedit.schematic.MCEditSchematicFormat;
- import me.xDark.BedWars.BedWars;
- import me.xDark.BedWars.api.Arena;
- public class ArenaManager {
- private static ArrayList<Arena> arenas;
- private static ConfigurationSection section;
- private static FileConfiguration yaml;
- private static WorldEditPlugin plugin;
- public static void init() {
- arenas = new ArrayList<Arena>();
- yaml = BedWars.getInstance().getConfig();
- section = yaml.getConfigurationSection("arenas");
- plugin = (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit");
- }
- public static ArrayList<Arena> getArenas() {
- return arenas;
- }
- @SuppressWarnings("deprecation")
- public static void setupArenas() {
- if (section == null)
- return;
- for (String key : section.getKeys(false)) {
- String arenaName = key;
- World world = Bukkit.getWorld(yaml.getString("arenas." + key + ".lobbyWorld"));
- double lobbyX = yaml.getDouble("arenas." + key + ".lobbyX");
- double lobbyY = yaml.getDouble("arenas." + key + ".lobbyY");
- double lobbyZ = yaml.getDouble("arenas." + key + ".lobbyZ");
- double arenaX = yaml.getDouble("arenas." + key + ".arenaX");
- double arenaY = yaml.getDouble("arenas." + key + ".arenaY");
- double arenaZ = yaml.getDouble("arenas." + key + ".arenaZ");
- int id = yaml.getInt("arenas." + key + ".id");
- int min = yaml.getInt("arenas." + key + ".minPlayers");
- int max = yaml.getInt("arenas." + key + ".maxPlayers");
- Arena arena = new Arena(arenaName, id, new Location(world, arenaX, arenaY, arenaZ),
- new Location(world, lobbyX, lobbyY, lobbyZ), min, max);
- getArenas().add(arena);
- EditSession session = plugin.getWorldEdit().getEditSessionFactory()
- .getEditSession((com.sk89q.worldedit.world.World) arena.getLocation().getWorld(), 10000);
- File schem = new File(BedWars.getInstance().getDataFolder(), arenaName + ".schematic");
- try {
- MCEditSchematicFormat.getFormat(schem).load(schem).paste(session, new Vector(arenaX, arenaY, arenaZ),
- false);
- } catch (MaxChangedBlocksException | DataException | IOException e) {
- BedWars.getInstance().getLogger().warning("Failed to load arena " + arena.getName());
- e.printStackTrace();
- continue;
- }
- BedWars.getInstance().getLogger().info("-----------------------------------");
- BedWars.getInstance().getLogger().info("Loading arena " + arena.getName());
- BedWars.getInstance().getLogger().info("Settings:");
- BedWars.getInstance().getLogger().info("ID: " + id);
- BedWars.getInstance().getLogger().info("Min. Players: " + min);
- BedWars.getInstance().getLogger().info("Max. Players: " + max);
- BedWars.getInstance().getLogger().info("Position-Lobby-X: " + lobbyX);
- BedWars.getInstance().getLogger().info("Position-Lobby-Y: " + lobbyY);
- BedWars.getInstance().getLogger().info("Position-Lobby-Z: " + lobbyZ);
- BedWars.getInstance().getLogger().info("Position-Arena-Z: " + arenaX);
- BedWars.getInstance().getLogger().info("Position-Arena-Z: " + arenaY);
- BedWars.getInstance().getLogger().info("Position-Arena-Z: " + arenaZ);
- BedWars.getInstance().getLogger().info("Loaded arena " + arena.getName());
- BedWars.getInstance().getLogger().info("-----------------------------------");
- }
- }
- public static Arena getArenaByID(int id) {
- for (Arena arena : getArenas()) {
- if (arena.getId() == id) {
- return arena;
- }
- break;
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement