Charge Zombie behavior refined yet again. Removed all possibilities of

caves turning into air. This is undesired and unwanted.
This commit is contained in:
sigonasr2 2014-02-15 11:42:40 -07:00
parent 9b8b26fb41
commit 772b28ff95
3 changed files with 183 additions and 131 deletions

View File

@ -858,9 +858,9 @@ public class Main extends JavaPlugin
ShapedRecipe wood_sword_upgrade_recipe = new ShapedRecipe(new ItemStack(Material.WOOD_SWORD));
MaterialData base_mat = new MaterialData(Material.STICK);
wood_sword_upgrade_recipe.shape("aaa","aba","aaa");
wood_sword_upgrade_recipe.setIngredient('a', base_mat);
wood_sword_upgrade_recipe.setIngredient('b', Material.WOOD_SWORD);
wood_sword_upgrade_recipe.shape("aaa","aba","aaa");
Bukkit.addRecipe(wood_sword_upgrade_recipe);
base_mat = new MaterialData(Material.WOOD);
wood_sword_upgrade_recipe.setIngredient('a', base_mat);
@ -873,9 +873,9 @@ public class Main extends JavaPlugin
Bukkit.addRecipe(wood_sword_upgrade_recipe);
ShapedRecipe stone_sword_upgrade_recipe = new ShapedRecipe(new ItemStack(Material.STONE_SWORD));
base_mat = new MaterialData(Material.COBBLESTONE);
stone_sword_upgrade_recipe.shape("aaa","aba","aaa");
stone_sword_upgrade_recipe.setIngredient('a', base_mat);
stone_sword_upgrade_recipe.setIngredient('b', Material.STONE_SWORD);
stone_sword_upgrade_recipe.shape("aaa","aba","aaa");
Bukkit.addRecipe(stone_sword_upgrade_recipe);
base_mat = new MaterialData(Material.STONE);
stone_sword_upgrade_recipe.setIngredient('a', base_mat);
@ -888,9 +888,9 @@ public class Main extends JavaPlugin
Bukkit.addRecipe(stone_sword_upgrade_recipe);
ShapedRecipe iron_sword_upgrade_recipe = new ShapedRecipe(new ItemStack(Material.IRON_SWORD));
base_mat = new MaterialData(Material.IRON_INGOT);
iron_sword_upgrade_recipe.shape("aaa","aba","aaa");
iron_sword_upgrade_recipe.setIngredient('a', base_mat);
iron_sword_upgrade_recipe.setIngredient('b', Material.IRON_SWORD);
iron_sword_upgrade_recipe.shape("aaa","aba","aaa");
Bukkit.addRecipe(iron_sword_upgrade_recipe);
base_mat = new MaterialData(Material.IRON_BLOCK);
iron_sword_upgrade_recipe.setIngredient('a', base_mat);
@ -903,9 +903,9 @@ public class Main extends JavaPlugin
Bukkit.addRecipe(iron_sword_upgrade_recipe);
ShapedRecipe gold_sword_upgrade_recipe = new ShapedRecipe(new ItemStack(Material.GOLD_SWORD));
base_mat = new MaterialData(Material.GOLD_INGOT);
gold_sword_upgrade_recipe.shape("aaa","aba","aaa");
gold_sword_upgrade_recipe.setIngredient('a', base_mat);
gold_sword_upgrade_recipe.setIngredient('b', Material.IRON_SWORD);
gold_sword_upgrade_recipe.shape("aaa","aba","aaa");
Bukkit.addRecipe(gold_sword_upgrade_recipe);
base_mat = new MaterialData(Material.GOLD_BLOCK);
gold_sword_upgrade_recipe.setIngredient('a', base_mat);
@ -918,9 +918,9 @@ public class Main extends JavaPlugin
Bukkit.addRecipe(gold_sword_upgrade_recipe);
ShapedRecipe diamond_sword_upgrade_recipe = new ShapedRecipe(new ItemStack(Material.DIAMOND_SWORD));
base_mat = new MaterialData(Material.DIAMOND);
diamond_sword_upgrade_recipe.shape("aaa","aba","aaa");
diamond_sword_upgrade_recipe.setIngredient('a', base_mat);
diamond_sword_upgrade_recipe.setIngredient('b', Material.DIAMOND_SWORD);
diamond_sword_upgrade_recipe.shape("aaa","aba","aaa");
Bukkit.addRecipe(diamond_sword_upgrade_recipe);
base_mat = new MaterialData(Material.DIAMOND_BLOCK);
diamond_sword_upgrade_recipe.setIngredient('a', base_mat);
@ -2177,7 +2177,7 @@ public void runTick() {
for (int z=0;z<16;z++) {
Block b = Bukkit.getWorld("world").getBlockAt(x+c.getX()*16,y,z+c.getZ()*16);
if (b!=null && (b.getType()==Material.DIAMOND_ORE)) {
if (Math.random()<=0.60) {
if (Math.random()<=0.32) {
removeore++;
b.setType(Material.STONE);
}
@ -2331,6 +2331,51 @@ public void runTick() {
}
}
}
if (nearby.get(i).getType()==EntityType.ZOMBIE) {
Creature l = (Creature)nearby.get(i);
if (l.getCustomName().compareTo(ChatColor.GOLD+"Charge Zombie II")==0 && !l.isDead() && l.getKiller()!=null) {
for (int k=-2;k<3;k++) {
for (int j=-2;j<3;j++) {
Location checkloc = l.getLocation().add(k,1,j);
Block bl = Bukkit.getWorld("world").getBlockAt(checkloc);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && naturalBlock(bl.getType())) {
bl.breakNaturally();
}
bl = Bukkit.getWorld("world").getBlockAt(checkloc);
checkloc = l.getLocation().add(k,2,j);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && naturalBlock(bl.getType())) {
bl.breakNaturally();
}
bl = Bukkit.getWorld("world").getBlockAt(checkloc);
checkloc = l.getLocation().add(k,0,j);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && naturalBlock(bl.getType())) {
bl.breakNaturally();
}
}
}
}
if (l.getCustomName().compareTo(ChatColor.YELLOW+"Charge Zombie")==0 && !l.isDead() && l.getKiller()!=null) {
for (int k=-1;k<2;k++) {
for (int j=-1;j<2;j++) {
Location checkloc = l.getLocation().add(k,1,j);
Block bl = Bukkit.getWorld("world").getBlockAt(checkloc);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && naturalBlock(bl.getType())) {
bl.breakNaturally();
}
bl = Bukkit.getWorld("world").getBlockAt(checkloc);
checkloc = l.getLocation().add(k,2,j);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && naturalBlock(bl.getType())) {
bl.breakNaturally();
}
bl = Bukkit.getWorld("world").getBlockAt(checkloc);
checkloc = l.getLocation().add(k,0,j);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && naturalBlock(bl.getType())) {
bl.breakNaturally();
}
}
}
}
}
if (nearby.get(i).getType()==EntityType.ENDERMAN) {
Creature l = (Creature)nearby.get(i);
if (l.getCustomName()!=null && l.getCustomName().equalsIgnoreCase(ChatColor.RED+"Lightning Mage") && l.getTarget()!=null) {
@ -3242,7 +3287,7 @@ public void checkJukeboxes() {
}
}
//Bukkit.getLogger().info("For player "+list[i].getName()+", Chunk air density is "+((double)airmeasure/12800)*100.0d+"%");
if (!spawneddungeon && ((double)airmeasure/12800)*100.0d<=10) { //Make sure the air density is small enough that we are allowed to carve things.
if (!spawneddungeon && ((double)airmeasure/12800)*100.0d<=6.5) { //Make sure the air density is small enough that we are allowed to carve things.
//See if the player is very far underground and there is nothing around him/her. This would be odd behavior (Hint at strip mining) and we will force Charge Zombie II's to spawn and create areas.
List<Entity> nearby = list[i].getNearbyEntities(20, 5, 20);
for (int j=0;j<nearby.size();j++) {
@ -3277,7 +3322,7 @@ public void checkJukeboxes() {
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(list[i].getLocation().add(20+j,k,spread+l));
if (Math.random()<=0.75 && b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -3303,7 +3348,7 @@ public void checkJukeboxes() {
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(list[i].getLocation().add(-20+j,k,spread+l));
if (Math.random()<=0.75 && b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -3328,7 +3373,7 @@ public void checkJukeboxes() {
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(list[i].getLocation().add(spread+j,k,20+l));
if (Math.random()<=0.75 && b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -3353,7 +3398,7 @@ public void checkJukeboxes() {
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(list[i].getLocation().add(spread+j,k,-20+l));
if (Math.random()<=0.75 && b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}

View File

@ -2896,7 +2896,7 @@ implements Listener
}
}
}
if (((double)airmeasure/12800)*100.0d<=10) {
if (((double)airmeasure/12800)*100.0d<=6.5) {
int size=((int)(Math.random()*5))+1;
for (int k=-size;k<size;k++) {
for (int j=-size;j<size;j++) {
@ -2905,7 +2905,7 @@ implements Listener
Location checkloc = e.getEntity().getLocation().add(k,m,j);
Block bl = Bukkit.getWorld("world").getBlockAt(checkloc);
if (bl.getType()!=Material.BEDROCK && bl.getType()!=Material.ENDER_PORTAL_FRAME && bl.getType()!=Material.ENDER_PORTAL && bl.getType()!=Material.MOB_SPAWNER && bl.getType()!=Material.COMMAND && bl.getType()!=Material.MOSSY_COBBLESTONE && naturalBlock(bl.getType())) {
bl.setType(Material.AIR);
//bl.setType(Material.AIR);
}
}
}
@ -4827,7 +4827,7 @@ implements Listener
}
}
}
if (((double)airmeasure/12800)*100.0d<=10) {
if (((double)airmeasure/12800)*100.0d<=6.5) {
clearair=true;
}
if (!torch1) {
@ -4838,7 +4838,7 @@ implements Listener
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(10+j,k,spread+l));
if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -4866,7 +4866,7 @@ implements Listener
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(-10+j,k,spread+l));
if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -4893,7 +4893,7 @@ implements Listener
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(spread+j,k,10+l));
if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -4920,7 +4920,7 @@ implements Listener
for (int l=lb2;l>-ub2;l--) {
Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(spread+j,k,-10+l));
if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) {
b.setType(Material.AIR);
//b.setType(Material.AIR);
}
}
}
@ -9813,8 +9813,8 @@ implements Listener
}
if (p.getItemInHand()!=null) {
if (p.getItemInHand().getType().toString().toLowerCase().contains("sword")) {
//Divide damage by 4.
e.setDamage(e.getDamage()/4.0d);
//Divide damage by 2.4.
e.setDamage(e.getDamage()/2.4d);
//Increase damage based on power level of weapon.
double dmg_ratio = 0;
if (p.getItemInHand().getType()==Material.WOOD_SWORD) {

View File

@ -627,6 +627,124 @@ public String convertToItemName(String val) {
p.sendMessage("Changed name tag's title to "+p.getItemInHand().getItemMeta().getDisplayName()+".");
}
} else
if (cmd.getName().toLowerCase().equalsIgnoreCase("event") && args.length==3 && p.hasPermission("maintenance-mode-admin")) {
if (args[0].equalsIgnoreCase("regen_chunk") /*DISABLED to prevent accidental execution.*/) {
if (p.hasPermission("maintenance-mode-admin")) {
//boolean result=p.getWorld().regenerateChunk(p.getLocation().getBlockX()/16, p.getLocation().getBlockZ()/16);
//Bukkit.getLogger().info("Chunk regenerated: "+result+" ("+p.getLocation().getBlockX()/16+","+p.getLocation().getBlockZ()/16+")");
/*byte[] worldarray = p.getWorld().getGenerator().generate(p.getWorld(), new Random(), p.getLocation().getBlockX()/16, p.getLocation().getBlockZ()/16);
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
for (int y = 0; y < 128; y++) {
Bukkit.getLogger().info("Block @ ("+x+","+y+","+z+") is "+worldarray[(x * 16 + z) * 128 + y]);
}
}
}*/
/*
//Create a new tempworld that mimics the real world, generator-wise.
World newworld = Bukkit.createWorld(new WorldCreator("newworld").copy(p.getWorld()));
p.teleport(new Location(newworld,0,0,0));
for (int x=-720;x<721;x++) {
for (int z=-720;z<721;z++) {
Bukkit.getLogger().info("Creating new chunk at ("+x+","+z+") for world newworld.");
newworld.loadChunk(x,z,true);
}
}*/
Location CenterPoint = new Location(p.getWorld(),1627,67,-268); //Center of Twoside.
int iterations=100*(Integer.valueOf(args[1])+50);
for (int MASTER_i=-Integer.valueOf(args[1]);MASTER_i<Integer.valueOf(args[1])+1;MASTER_i++) {
p.getWorld().save();
for (int MASTER_j=-Integer.valueOf(args[2]);MASTER_j<Integer.valueOf(args[2])+1;MASTER_j++) {
iterations++;
//Bukkit.getLogger().info("");
Bukkit.getLogger().info("Correcting Chunk ("+MASTER_i+","+MASTER_j+")...");
//int rand_factor = (int)(Math.random()*200d);
int chunkx=(MASTER_i*16+CenterPoint.getBlockX()+8)/16, chunkz=(MASTER_j*16+CenterPoint.getBlockZ()+8)/16;
WorldEditPlugin wep = (WorldEditPlugin)Bukkit.getPluginManager().getPlugin("WorldEdit");
final TerrainManager tm = new TerrainManager(wep, p.getWorld());
int lowest=62;
for (int y=lowest;y>0;y--) {
boolean found=false;
/*
for (int x=0;x<16;x++) {
for (int z=0;z<16;z++) {
if (!naturalBlock(p.getWorld().getBlockAt(chunkx*16+x,y,chunkz*16+z).getType())) {
found=true;
lowest-=8;
y-=7;
break;
}
}
if (found) {break;}
}*/
if (!found) {
boolean found2=false;
for (int x=0;x<16;x++) {
for (int yy=0;yy<8;yy++) {
for (int z=0;z<16;z++) {
if (!naturalBlock(p.getWorld().getBlockAt(chunkx*16+x,y+yy,chunkz*16+z).getType())) {
found2=true;
lowest-=8;
y-=7;
break;
}
}
}
if (!found2) {break;}
}
if (!found2) {break;}
}
}
final Location loc1 = new Location(p.getWorld(),chunkx*16-16,Math.max(lowest,1),chunkz*16-16);
final Location loc2 = new Location(p.getWorld(),chunkx*16+32,128,chunkz*16+32);
final File saveFile = new File("plugins/WorldEdit/schematics/world_save");
try {
tm.saveTerrain(saveFile, loc1, loc2);
} catch (FilenameException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (DataException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
//final ChunkSnapshot savedChunk = p.getWorld().getChunkAt(chunkx, chunkz).getChunkSnapshot();
final Player p2 = p;
final int chunkx2=chunkx,chunkz2=chunkz;
p.getWorld().regenerateChunk(chunkx2, chunkz2);
try {
tm.loadSchematic(saveFile);
} catch (FilenameException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MaxChangedBlocksException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (EmptyClipboardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Bukkit.getLogger().info("->Updated this layer. ("+(int)(iterations/10000d*100)+"%)");
p.getWorld().unloadChunkRequest(chunkx2, chunkz2);
}
}
}
}
}
if (cmd.getName().toLowerCase().equalsIgnoreCase("event") && args.length==1 && p.hasPermission("maintenance-mode-admin")) {
if (args[0].equalsIgnoreCase("halloween")) {
if (this.plugin.getConfig().getBoolean("halloween-enabled")) {
@ -1024,117 +1142,6 @@ public String convertToItemName(String val) {
i.setItemMeta(meta);
f.getInventory().addItem(i);
}
if (args[0].equalsIgnoreCase("regen_chunk") && 0==1 /*DISABLED to prevent accidental execution.*/) {
if (p.hasPermission("maintenance-mode-admin")) {
//boolean result=p.getWorld().regenerateChunk(p.getLocation().getBlockX()/16, p.getLocation().getBlockZ()/16);
//Bukkit.getLogger().info("Chunk regenerated: "+result+" ("+p.getLocation().getBlockX()/16+","+p.getLocation().getBlockZ()/16+")");
/*byte[] worldarray = p.getWorld().getGenerator().generate(p.getWorld(), new Random(), p.getLocation().getBlockX()/16, p.getLocation().getBlockZ()/16);
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
for (int y = 0; y < 128; y++) {
Bukkit.getLogger().info("Block @ ("+x+","+y+","+z+") is "+worldarray[(x * 16 + z) * 128 + y]);
}
}
}*/
/*
//Create a new tempworld that mimics the real world, generator-wise.
World newworld = Bukkit.createWorld(new WorldCreator("newworld").copy(p.getWorld()));
p.teleport(new Location(newworld,0,0,0));
for (int x=-720;x<721;x++) {
for (int z=-720;z<721;z++) {
Bukkit.getLogger().info("Creating new chunk at ("+x+","+z+") for world newworld.");
newworld.loadChunk(x,z,true);
}
}*/
Location CenterPoint = new Location(p.getWorld(),1627,67,-268); //Center of Twoside.
int iterations=100*(Integer.valueOf(args[1])+50);
for (int MASTER_i=Integer.valueOf(args[1]);MASTER_i<51;MASTER_i++) {
p.getWorld().save();
for (int MASTER_j=-50;MASTER_j<51;MASTER_j++) {
iterations++;
Bukkit.getLogger().info("");
Bukkit.getLogger().info("BEGINNING Chunk ("+MASTER_i+","+MASTER_j+") correction...");
//int rand_factor = (int)(Math.random()*200d);
int chunkx=(MASTER_i*16+CenterPoint.getBlockX()+8)/16, chunkz=(MASTER_j*16+CenterPoint.getBlockZ()+8)/16;
WorldEditPlugin wep = (WorldEditPlugin)Bukkit.getPluginManager().getPlugin("WorldEdit");
final TerrainManager tm = new TerrainManager(wep, p.getWorld());
int lowest=62;
for (int y=lowest;y>0;y--) {
boolean found=false;
for (int x=0;x<16;x++) {
for (int z=0;z<16;z++) {
if (!naturalBlock(p.getWorld().getBlockAt(chunkx*16+x,y,chunkz*16+z).getType())) {
found=true;
lowest--;
break;
}
}
if (found) {break;}
}
if (!found) {
boolean found2=false;
for (int x=0;x<16;x++) {
for (int yy=1;yy<4;yy++) {
for (int z=0;z<16;z++) {
if (!naturalBlock(p.getWorld().getBlockAt(chunkx*16+x,y+yy,chunkz*16+z).getType())) {
found2=true;
break;
}
}
}
if (!found2) {break;}
}
if (!found2) {break;}
}
}
final Location loc1 = new Location(p.getWorld(),chunkx*16-16,lowest,chunkz*16-16);
final Location loc2 = new Location(p.getWorld(),chunkx*16+32,128,chunkz*16+32);
final File saveFile = new File("plugins/WorldEdit/schematics/world_save");
try {
tm.saveTerrain(saveFile, loc1, loc2);
} catch (FilenameException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (DataException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
//final ChunkSnapshot savedChunk = p.getWorld().getChunkAt(chunkx, chunkz).getChunkSnapshot();
final Player p2 = p;
final int chunkx2=chunkx,chunkz2=chunkz;
p.getWorld().regenerateChunk(chunkx2, chunkz2);
try {
tm.loadSchematic(saveFile);
} catch (FilenameException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MaxChangedBlocksException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (EmptyClipboardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bukkit.getLogger().info("->Updated this layer. ("+(int)(iterations/10000d*100)+"%)");
p.getWorld().unloadChunkRequest(chunkx2, chunkz2);
}
}
}
}
if (args[0].equalsIgnoreCase("halloween") && args[1].equalsIgnoreCase("end")) {
p.sendMessage(ChatColor.GRAY+"Ending Harrowing night... Did you make sure it was night time? If not, type this command again after /time night instead.");
this.plugin.harrowing_night=true;