Package com.tommytony.war.job

Source Code of com.tommytony.war.job.RestoreWarhubJob

package com.tommytony.war.job;

import java.sql.SQLException;
import java.util.logging.Level;

import org.bukkit.Location;
import org.bukkit.World;


import com.tommytony.war.War;
import com.tommytony.war.Warzone;
import com.tommytony.war.mapper.VolumeMapper;
import com.tommytony.war.structure.WarHub;
import com.tommytony.war.volume.Volume;

public class RestoreWarhubJob implements Runnable {

  private final String hubStr;

  public RestoreWarhubJob(String hubStr) {
    this.hubStr = hubStr;
  }

  public void run() {
    String[] hubStrSplit = this.hubStr.split(",");

    int hubX = Integer.parseInt(hubStrSplit[0]);
    int hubY = Integer.parseInt(hubStrSplit[1]);
    int hubZ = Integer.parseInt(hubStrSplit[2]);
    World world = null;
    String worldName;
    String hubOrientation = "west";
    if (hubStrSplit.length > 3) {
      worldName = hubStrSplit[3];
      world = War.war.getServer().getWorld(worldName);
      if (hubStrSplit.length > 4) {
        hubOrientation = hubStrSplit[4];
      }
    } else {
      worldName = "DEFAULT";
      world = War.war.getServer().getWorlds().get(0); // default to first world
    }
    if (world != null) {
      Location hubLocation = new Location(world, hubX, hubY, hubZ);
      WarHub hub = new WarHub(hubLocation, hubOrientation);
      War.war.setWarHub(hub);
      Volume vol;
      try {
        vol = VolumeMapper.loadVolume("warhub", "", world);
      } catch (SQLException e) {
        throw new RuntimeException(e);
      }
      hub.setVolume(vol);
      hub.getVolume().resetBlocks();
      hub.initialize();

      // In the previous job started by the mapper, warzones were created, but their lobbies are missing the war hub gate (because it didn't exist yet)
      for (Warzone zone : War.war.getWarzones()) {
        if (zone.getLobby() != null) {
          zone.getLobby().getVolume().resetBlocks();
          zone.getLobby().initialize();
        }
      }
      War.war.log("Warhub ready.", Level.INFO);
    } else {
      War.war.log("Failed to restore warhub. The specified world (name: " + worldName + ") does not exist!", Level.WARNING);
    }
  }
}
TOP

Related Classes of com.tommytony.war.job.RestoreWarhubJob

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.