Fix plotworld get

This commit is contained in:
Jesse Boyd 2016-04-26 09:32:16 +10:00
parent 8c56affb2f
commit d8849f718c
2 changed files with 17 additions and 6 deletions

View File

@ -40,6 +40,9 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
private boolean loaded = false;
public BukkitPlotGenerator(IndependentPlotGenerator generator) {
if (generator == null) {
throw new IllegalArgumentException("Generator may not be null!");
}
this.plotGenerator = generator;
this.platformGenerator = this;
this.populators.add(new BlockPopulator() {
@ -279,7 +282,12 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
return;
}
PlotArea area = PS.get().getPlotArea(world.getName(), null);
this.plotGenerator.generateChunk(this.chunkSetter, area, this.random);
try {
this.plotGenerator.generateChunk(this.chunkSetter, area, this.random);
} catch (Throwable e) {
// Recover from generator error
e.printStackTrace();
}
ChunkManager.postProcessChunk(result);
}

View File

@ -482,15 +482,18 @@ public class PS {
public PlotArea getPlotArea(String world, String id) {
PlotArea[] areas = this.plotAreaMap.get(world);
if (areas == null || id == null) {
if (areas == null) {
return null;
}
if (areas.length == 1) {
return areas[0];
}
for (PlotArea area : areas) {
if (StringMan.isEqual(id, area.id)) {
return area;
} else if (id == null) {
return null;
} else {
for (PlotArea area : areas) {
if (StringMan.isEqual(id, area.id)) {
return area;
}
}
}
return null;