From c353d9aae6e1f599172d712a90bf35a81227a79e Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Fri, 26 Aug 2011 13:13:03 +0800 Subject: [PATCH 1/7] Add hidebydefault option for regions layers --- src/main/resources/configuration.txt | 6 ++++++ web/css/dynmap_style.css | 8 ++++++++ web/js/regions.js | 25 ++++++++++++++++--------- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/main/resources/configuration.txt b/src/main/resources/configuration.txt index 6ea8aa54..c5f218a9 100644 --- a/src/main/resources/configuration.txt +++ b/src/main/resources/configuration.txt @@ -91,6 +91,8 @@ components: # customstyle: # homebase: # strokeColor: "#00FF00" + # # Optional - make layer hidden by default + # hidebydefault: true #- class: org.dynmap.regions.RegionsComponent # type: regions @@ -122,6 +124,8 @@ components: # groupstyle: # homebase: # strokeColor: "#007F00" + # # Optional - make layer hidden by default + # hidebydefault: true #- class: org.dynmap.regions.RegionsComponent # type: regions @@ -150,6 +154,8 @@ components: # groupstyle: # MyNation: # strokeColor: "#007F00" + # # Optional - make layer hidden by default + # hidebydefault: true #- class: org.dynmap.TestComponent # stuff: "This is some configuration-value" diff --git a/web/css/dynmap_style.css b/web/css/dynmap_style.css index c702a54a..2f7b9aa3 100644 --- a/web/css/dynmap_style.css +++ b/web/css/dynmap_style.css @@ -35,6 +35,14 @@ font-weight: bold; } +.leaflet-control-layers { + background-color: #bbb; +} + +.leaflet-control-layers:hover { + background-color: #fff; +} + .leaflet-control-zoom-in { background-color: #eee; } diff --git a/web/js/regions.js b/web/js/regions.js index e3ea82fe..5e45f49f 100644 --- a/web/js/regions.js +++ b/web/js/regions.js @@ -162,12 +162,10 @@ componentconstructors['regions'] = function(dynmap, configuration) { loadcss('css/regions.css'); var regionType = configuration.name; loadjs('js/regions_' + regionType + '.js', function() { - var activeLayer = undefined; + configuration.activeLayer = undefined; function undraw() { - if (activeLayer) { - dynmap.layercontrol.removeLayer(activeLayer); - dynmap.map.removeLayer(activeLayer); - activeLayer = undefined; + if (configuration.activeLayer) { + configuration.activeLayer.clearLayers(); } } function redraw() { @@ -182,15 +180,24 @@ componentconstructors['regions'] = function(dynmap, configuration) { createOutlineLayer: configuration.use3dregions ? create3DOutlineLayer : create2DOutlineLayer, getStyle: getStyle, result: function(regionsLayer) { - activeLayer = regionsLayer; - dynmap.map.addLayer(activeLayer); - dynmap.layercontrol.addOverlay(activeLayer, regionType); + if(configuration.activeLayer) { /* Not first time */ + for(var i in regionsLayer._layers) { + configuration.activeLayer.addLayer(regionsLayer._layers[i]); + } + regionsLayer.clearLayers(); + } + else { + configuration.activeLayer = regionsLayer; + if(!configuration.hidebydefault) + dynmap.map.addLayer(configuration.activeLayer); + dynmap.layercontrol.addOverlay(configuration.activeLayer, regionType); + } } })); } } $(dynmap).bind('mapchanged', redraw); $(dynmap).bind('mapchanging', undraw); - redraw(); + redraw(true); }); } \ No newline at end of file From bc357dd18877e3f985d30c2501710bcffb369a9e Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Fri, 26 Aug 2011 13:55:53 +0800 Subject: [PATCH 2/7] Handle multiple instances of same component type (regions) --- web/js/map.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/web/js/map.js b/web/js/map.js index c558880e..6693021b 100644 --- a/web/js/map.js +++ b/web/js/map.js @@ -284,12 +284,21 @@ DynMap.prototype = { me.selectMap(me.defaultworld.defaultmap); - var componentstoload = me.options.components.length; + var configset = { }; $.each(me.options.components, function(index, configuration) { - loadjs('js/' + configuration.type + '.js', function() { - var componentconstructor = componentconstructors[configuration.type]; + if(!configset[configuration.type]) + configset[configuration.type] = []; + configset[configuration.type].push(configuration); + }); + var componentstoload = configset.length; + + $.each(configset, function(type, configlist) { + loadjs('js/' + type + '.js', function() { + var componentconstructor = componentconstructors[type]; if (componentconstructor) { - me.components.push(new componentconstructor(me, configuration)); + $.each(configlist, function(idx, configuration) { + me.components.push(new componentconstructor(me, configuration)); + }); } else { // Could not load component. We'll ignore this for the moment. } @@ -323,8 +332,7 @@ DynMap.prototype = { var prevzoom = me.map.getZoom(); if (me.maptype) { - me.layercontrol.removeLayer(me.maptype); - //me.map.removeLayer(me.maptype); + me.map.removeLayer(me.maptype); } var prevmap = me.maptype; @@ -361,7 +369,6 @@ DynMap.prototype = { me.map.setZoom(prevzoom); } me.map.addLayer(me.maptype); - //me.layercontrol.addBaseLayer(me.maptype, 'Tiles'); if (worldChanged) { $(me).trigger('worldchanged'); From f62d46cfbd854c62249077f1904932632c4be862 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Fri, 26 Aug 2011 14:22:03 +0800 Subject: [PATCH 3/7] Add hidebydefault setting to playermarkers component too --- src/main/resources/configuration.txt | 2 ++ web/js/map.js | 6 ++++-- web/js/playermarkers.js | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/resources/configuration.txt b/src/main/resources/configuration.txt index c5f218a9..ca3ea984 100644 --- a/src/main/resources/configuration.txt +++ b/src/main/resources/configuration.txt @@ -55,6 +55,8 @@ components: showplayerhealth: true # Option to make player faces small - don't use with showplayerhealth smallplayerfaces: false + # # Optional - make player faces layer hidden by default + # hidebydefault: true #- class: org.dynmap.ClientComponent # type: digitalclock - class: org.dynmap.ClientComponent diff --git a/web/js/map.js b/web/js/map.js index 6693021b..a571cdec 100644 --- a/web/js/map.js +++ b/web/js/map.js @@ -284,13 +284,15 @@ DynMap.prototype = { me.selectMap(me.defaultworld.defaultmap); + var componentstoload = 0; var configset = { }; $.each(me.options.components, function(index, configuration) { - if(!configset[configuration.type]) + if(!configset[configuration.type]) { configset[configuration.type] = []; + componentstoload++; + } configset[configuration.type].push(configuration); }); - var componentstoload = configset.length; $.each(configset, function(type, configlist) { loadjs('js/' + type + '.js', function() { diff --git a/web/js/playermarkers.js b/web/js/playermarkers.js index 60268547..e4d2d77a 100644 --- a/web/js/playermarkers.js +++ b/web/js/playermarkers.js @@ -128,6 +128,7 @@ componentconstructors['playermarkers'] = function(dynmap, configuration) { } }); dynmap.playermarkergroup = new L.LayerGroup(); - dynmap.map.addLayer(dynmap.playermarkergroup); + if(!configuration.hidebydefault) + dynmap.map.addLayer(dynmap.playermarkergroup); dynmap.layercontrol.addOverlay(dynmap.playermarkergroup, 'Players'); }; From 069d4c0ce5c6202aac37f591e422d79b41e86006 Mon Sep 17 00:00:00 2001 From: FrozenCow Date: Sat, 27 Aug 2011 17:13:56 +0200 Subject: [PATCH 4/7] Changed version to 0.22. --- pom.xml | 2 +- src/main/resources/lightings.txt | 2 +- src/main/resources/perspectives.txt | 2 +- src/main/resources/plugin.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d83b6e07..b7ce19e0 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.dynmap dynmap - 0.21 + 0.22 dynmap UTF-8 diff --git a/src/main/resources/lightings.txt b/src/main/resources/lightings.txt index 0219d074..a5f6c97e 100644 --- a/src/main/resources/lightings.txt +++ b/src/main/resources/lightings.txt @@ -1,4 +1,4 @@ -version: 0.21 +version: 0.22 # # This file contains default standard lighting profiles. The contents of this file CAN need to be replaced and updated # during upgrades, so new or updated lighting definitions should be done in the custom-lightings.txt file diff --git a/src/main/resources/perspectives.txt b/src/main/resources/perspectives.txt index 75ae73a5..0fc3ca84 100644 --- a/src/main/resources/perspectives.txt +++ b/src/main/resources/perspectives.txt @@ -1,4 +1,4 @@ -version: 0.21 +version: 0.22 # # This file contains default standard perspective definitions. The contents of this file CAN need to be replaced and updated # during upgrades, so new or updated perspective definitions should be done in the custom-perspectives.txt file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a2aca214..d3e825c1 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: dynmap main: org.dynmap.DynmapPlugin -version: "0.21" +version: "0.22" authors: [FrozenCow, mikeprimm, zeeZ] softdepend: [Permissions] commands: From a3573c7a643db3a7aec100a41a9c888df96fedb2 Mon Sep 17 00:00:00 2001 From: FrozenCow Date: Sat, 27 Aug 2011 20:24:37 +0200 Subject: [PATCH 5/7] Added support for Towny Advanced 0.75 --- .../dynmap/regions/TownyConfigHandler.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/dynmap/regions/TownyConfigHandler.java b/src/main/java/org/dynmap/regions/TownyConfigHandler.java index 27813891..a0a3b897 100644 --- a/src/main/java/org/dynmap/regions/TownyConfigHandler.java +++ b/src/main/java/org/dynmap/regions/TownyConfigHandler.java @@ -124,16 +124,35 @@ public class TownyConfigHandler { n = n.substring(idx+1); /* Process remainder as coordinate */ } if(!worldmatch) continue; - String[] v = n.split(","); - if(v.length == 2) { + + java.util.regex.Matcher towny075Match = towny075Pattern.matcher(n); + if (towny075Match.matches()) { + // Towny Advanced >= 0.75 try { - int[] vv = new int[] { Integer.valueOf(v[0]), Integer.valueOf(v[1]) }; + //int plotType = Integer.valueOf(towny075Match.group(1)); + int[] vv = new int[] { Integer.valueOf(towny075Match.group(2)), Integer.valueOf(towny075Match.group(3)) }; 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 { + // 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; + } } } /* If nothing in this world, skip */ From ac650656b49cc528e0f0871e652c525b4f18638f Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sat, 27 Aug 2011 19:13:34 -0500 Subject: [PATCH 6/7] 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 b20b9e14369e2990e6e467b961b87ddd5a548a4a Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 28 Aug 2011 10:12:04 -0500 Subject: [PATCH 7/7] 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