--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/TemplateCommand.java 2012/03/18 11:14:51 1746 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/TemplateCommand.java 2012/03/18 11:38:57 1747 @@ -3,7 +3,6 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; -import java.io.IOException; import java.io.InputStreamReader; import org.bukkit.ChatColor; @@ -18,7 +17,7 @@ public class TemplateCommand implements CommandExecutor { - /*class Pair { + class Pair { public int id; public int subId; @@ -27,7 +26,7 @@ subId = s; } - }*/ + } Plugin plugin; @@ -60,7 +59,7 @@ return true; } - int[][][] template; + Pair[][][] template; try { template = parseFile(templateFile); @@ -82,7 +81,7 @@ - int[][][] parseFile(File templateFile) throws Exception { + Pair[][][] parseFile(File templateFile) throws Exception { int lines = 0; @@ -107,7 +106,7 @@ int ysize = Integer.parseInt(dimensions[1]); int zsize = Integer.parseInt(dimensions[2]); - int[][][] array = new int[xsize][ysize][zsize]; + Pair[][][] array = new Pair[xsize][ysize][zsize]; int x = 0; int y = 0; @@ -129,18 +128,31 @@ } for (int i=0; i255) { - throw new Exception( "Template: invalid value on line " + lines + ": " + val ); - } - array[x][y][i] = val; - + int val = 0; + int subval = 0; + + String element[] = elements[i].trim().split("\\."); + + + try { + val = Integer.parseInt( element[0] ); } catch (Exception e) { - throw new Exception( "Template: invalid value on line " + lines + ": " + elements[i] ); + throw new Exception( "Template: invalid value on line " + lines + ": " + element[0] ); } + + if (val < 0 || val>255) { + throw new Exception( "Template: invalid value on line " + lines + ": " + val ); + } + + if (element.length == 2) { + try { + subval = Integer.parseInt( element[1] ); + } catch (Exception e) { + throw new Exception( "Template: invalid value on line " + lines + ": " + element[1] ); + } + } + + array[x][y][i] = new Pair(val,subval); } x++; @@ -163,7 +175,7 @@ } - void buildTemplate(Location loc, int[][][] template) { + void buildTemplate(Location loc, Pair[][][] template) { World world = loc.getWorld(); for (int i=0; i