diff --git a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/Cuboid.java b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/Cuboid.java index c68d20a..5390527 100644 --- a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/Cuboid.java +++ b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/Cuboid.java @@ -221,4 +221,11 @@ public class Cuboid implements Comparable { return true; } + + @Override + public String toString() { + return String.format("{Cuboid minX=%d, minY=%d, minZ=%d, maxX=%d, maxY=%d, maxZ=%d}", minX, minY, minZ, maxX, maxY, maxZ); + } + + } diff --git a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java index 2894838..8ed61d6 100644 --- a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java +++ b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java @@ -108,22 +108,8 @@ public class MetropolisPlugin extends JavaPlugin { if(DEBUG){log.info("Checking config");} Configuration config = getConfig(); if(!config.contains("version")){ - //new or upgrading from ancient - if(config.contains("plot.sizeX")){ - if(DEBUG){log.info("Upgrading from a 0.4.6 config or newer.");} - //upgrading from ancient - int oldSizeX = safeGetIntFromConfig(config, "plot.sizeX"); - int oldSizeZ = safeGetIntFromConfig(config, "plot.sizeZ"); - int oldRoadWidth = safeGetIntFromConfig(config, "road.width"); - oldSizeX -= oldRoadWidth; - oldSizeZ -= oldRoadWidth; - config.set("plot.sizeX", oldSizeX); - config.set("plot.sizeZ", oldSizeZ); - saveConfig(); - if(DEBUG){log.info("Plot size updated");} - }else{ - if(DEBUG){log.info("No config exists. Assuming new installation.");} - } + //new + if(DEBUG){log.info("No config exists. Assuming new installation.");} }else{ int configVersion = safeGetIntFromConfig(config, "version"); if(DEBUG){log.info(String.format("Updating config from version v%s to v%s.", configVersion, version));} @@ -135,6 +121,9 @@ public class MetropolisPlugin extends JavaPlugin { if(DEBUG){log.info("Config updated");} } + config.set("version", version); + saveConfig(); + config.options().copyDefaults(true); if(DEBUG){log.info("Reading configuration from file.");} @@ -220,7 +209,7 @@ public class MetropolisPlugin extends JavaPlugin { _spawnRegion = regionManager.getRegion("Spawn"); if(_spawnRegion == null){ - _spawnRegion = new ProtectedCuboidRegion("Spawn", getPlotMin(0, 0), this.getPlotMax(0, 0)); + _spawnRegion = new ProtectedCuboidRegion("Spawn", getPlotMin(0, 0), getPlotMax(0, 0)); _spawnRegion.setPriority(1); _spawnRegion.setFlag(DefaultFlag.PVP, StateFlag.State.DENY); _spawnRegion.setFlag(DefaultFlag.MOB_DAMAGE, StateFlag.State.DENY); @@ -232,11 +221,27 @@ public class MetropolisPlugin extends JavaPlugin { _spawnRegion.setFlag(DefaultFlag.LAVA_FLOW, StateFlag.State.DENY); _spawnRegion.setFlag(DefaultFlag.SNOW_FALL, StateFlag.State.DENY); regionManager.addRegion(_spawnRegion); + + _spawnCuboid = new Cuboid(_spawnRegion.getMinimumPoint(), _spawnRegion.getMaximumPoint()); + setupSpawn(); + }else{ + _spawnCuboid = new Cuboid(_spawnRegion.getMinimumPoint(), _spawnRegion.getMaximumPoint()); } _spawnCuboid = new Cuboid(_spawnRegion.getMinimumPoint(), _spawnRegion.getMaximumPoint()); + if(DEBUG){ + log.info("Metropolis: first 9 plots"); + + for (int ix=-1; ix<=1;ix++){ + for (int iz=-1; iz<=1; iz++){ + log.info(getCuboid(iz, ix).toString()); + } + } + } + + _occupiedPlots = new ArrayList(); fillOccupiedPlots(); resizeCityRegion(); @@ -266,6 +271,12 @@ public class MetropolisPlugin extends JavaPlugin { RegisterCommandHandler("metropolis-plot-reserve", new MetropolisPlotReserveCommand(this)); } + private Cuboid getCuboid(int row, int col) { + BlockVector min = getPlotMin(row, col); + BlockVector max = getPlotMax(row, col); + return new Cuboid(min, max); + } + private void RegisterCommandHandler(String commandName, CommandExecutor executor){ PluginCommand command = getCommand(commandName); if(command == null){ @@ -322,16 +333,16 @@ public class MetropolisPlugin extends JavaPlugin { } private void setupSpawn() { - BlockVector min = getPlotMin(0, 0); - BlockVector max = getPlotMax(0, 0); + log.info("Metropolis: Spawn Cuboid is " + _spawnCuboid.toString()); if(generateSpawn){ int x= 0; int y=roadLevel; int z=0; - for(x=min.getBlockX(); x<= max.getBlockX(); x++){ - for(z=min.getBlockZ(); z<= max.getBlockZ(); z++){ + //floor + for(x=_spawnCuboid.getMinX(); x<= _spawnCuboid.getMaxX(); x++){ + for(z=_spawnCuboid.getMinZ(); z<=_spawnCuboid.getMaxZ(); z++){ for(y=roadLevel+1; y 45){ sign.setLine(3, playerName.substring(31, Math.min(45, playerName.length()))); } - } + } + + sign.update(true); } public List getCityBlocks() { diff --git a/Metropolis/src/main/resources/config.yml b/Metropolis/src/main/resources/config.yml index 218451b..3097d2d 100644 --- a/Metropolis/src/main/resources/config.yml +++ b/Metropolis/src/main/resources/config.yml @@ -3,6 +3,7 @@ plot: sizeZ: 24 floor: generate: true + clearSpaceAbove: 66 material: 2 supports: generate: true