From 0c292dde120fa918b237fe4f15f25ca04b42a5db Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 28 Aug 2011 08:13:34 +0800 Subject: [PATCH 1/2] Fix Towny support to handle 0.75.x and 0.74.x --- .../dynmap/regions/TownyConfigHandler.java | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/dynmap/regions/TownyConfigHandler.java b/src/main/java/org/dynmap/regions/TownyConfigHandler.java index a0a3b897..ff8b07fc 100644 --- a/src/main/java/org/dynmap/regions/TownyConfigHandler.java +++ b/src/main/java/org/dynmap/regions/TownyConfigHandler.java @@ -125,34 +125,25 @@ public class TownyConfigHandler { } if(!worldmatch) continue; - java.util.regex.Matcher towny075Match = towny075Pattern.matcher(n); - if (towny075Match.matches()) { - // Towny Advanced >= 0.75 + int bidx = n.indexOf(']'); + if(bidx >= 0) { /* If 0.75 block type present, skip it (we don't care yet) */ + n = n.substring(bidx+1); + } + String[] v = n.split(","); + if(v.length >= 2) { /* Price in 0.75 is third - don't care :) */ try { - //int plotType = Integer.valueOf(towny075Match.group(1)); - int[] vv = new int[] { Integer.valueOf(towny075Match.group(2)), Integer.valueOf(towny075Match.group(3)) }; + int[] vv = new int[] { Integer.valueOf(v[0]), Integer.valueOf(v[1]) }; blks.setFlag(vv[0], vv[1], true); nodevals.add(vv); - } catch(NumberFormatException nfx) { + } catch (NumberFormatException nfx) { Log.severe("Error parsing block list in Towny - " + townfile.getPath()); return null; } + } else if(n.startsWith("|")){ /* End of list? */ + } else { - // Towny Advanced < 0.75 - String[] v = n.split(","); - if(v.length == 2) { - try { - int[] vv = new int[] { Integer.valueOf(v[0]), Integer.valueOf(v[1]) }; - blks.setFlag(vv[0], vv[1], true); - nodevals.add(vv); - } catch (NumberFormatException nfx) { - Log.severe("Error parsing block list in Towny - " + townfile.getPath()); - return null; - } - } else { - Log.severe("Invalid block list format in Towny - " + townfile.getPath()); - return null; - } + Log.severe("Invalid block list format in Towny - " + townfile.getPath()); + return null; } } /* If nothing in this world, skip */ From cfc758fe7d6b946f5f726001e84460b34ff14a75 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 28 Aug 2011 23:12:04 +0800 Subject: [PATCH 2/2] Fix handling of non-standard town_block_size values --- src/main/java/org/dynmap/regions/TownyConfigHandler.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/regions/TownyConfigHandler.java b/src/main/java/org/dynmap/regions/TownyConfigHandler.java index ff8b07fc..141b117c 100644 --- a/src/main/java/org/dynmap/regions/TownyConfigHandler.java +++ b/src/main/java/org/dynmap/regions/TownyConfigHandler.java @@ -32,7 +32,12 @@ public class TownyConfigHandler { } Configuration tcfg = new Configuration(cfgfile); tcfg.load(); - townblocksize = tcfg.getInt("town_block_size", 16); /* Get block size */ + String tbsize = tcfg.getNode("town").getString("town_block_size", "16"); + try { + townblocksize = Integer.valueOf(tbsize); + } catch (NumberFormatException nfx) { + townblocksize = 16; + } } /** * Get map of attributes for given world