From a1ccc876a3a0bc1cd431f6e74b5c0b3035ed434e Mon Sep 17 00:00:00 2001 From: zeeZ Date: Fri, 13 May 2011 15:17:55 +0200 Subject: [PATCH 01/11] Added data value colors for Stone Slabs and Double Stone Slabs to colorschemes, added Sandstone color as a copy of Sand color to sk89q.txt --- colorschemes/default.txt | 29 +++++++++++++++++++++++++++++ colorschemes/flames.txt | 29 +++++++++++++++++++++++++++++ colorschemes/ovocean.txt | 29 +++++++++++++++++++++++++++++ colorschemes/sk89q.txt | 9 +++++++++ 4 files changed, 96 insertions(+) diff --git a/colorschemes/default.txt b/colorschemes/default.txt index d248e978..0684873b 100644 --- a/colorschemes/default.txt +++ b/colorschemes/default.txt @@ -69,20 +69,35 @@ Black Cloth Wool 35 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255 35:0 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255 +Wool - Orange 35:1 204 111 48 255 162 89 38 255 102 56 24 255 81 44 19 255 +Wool - Magenta 35:2 166 66 175 255 133 53 140 255 83 33 87 255 66 26 69 255 +Wool - Light Blue 35:3 91 121 185 255 73 96 147 255 46 61 92 255 36 48 73 255 +Wool - Yellow 35:4 170 158 24 255 135 126 19 255 85 79 12 255 67 62 10 255 +Wool - Light Green 35:5 51 165 42 255 41 131 33 255 26 82 21 255 20 65 17 255 +Wool - Pink 35:6 190 115 135 255 151 92 108 255 95 57 67 255 75 46 53 255 +Wool - Gray 35:7 58 58 58 255 47 47 47 255 29 29 29 255 23 23 23 255 +Wool - Light Gray 35:8 138 145 145 255 110 115 115 255 69 72 72 255 55 57 57 255 +Wool - Cyan 35:9 34 102 131 255 27 81 104 255 17 51 65 255 13 40 52 255 +Wool - Purple 35:10 113 47 171 255 90 37 136 255 57 24 85 255 45 19 68 255 +Wool - Blue 35:11 34 44 134 255 27 35 107 255 17 22 67 255 13 18 53 255 +Wool - Brown 35:12 75 44 24 255 60 35 19 255 37 22 12 255 30 18 10 255 +Wool - Dark Green 35:13 49 67 21 255 39 53 17 255 24 34 10 255 19 27 8 255 +Wool - Red 35:14 143 39 36 255 114 31 28 255 71 20 18 255 57 16 14 255 +Wool - Black 35:15 24 20 20 255 19 16 16 255 12 10 10 255 9 8 8 255 Gray Cloth 36 125 125 125 255 114 114 114 255 104 104 104 255 86 86 86 255 @@ -100,8 +115,22 @@ Iron Block 42 191 191 191 255 152 152 152 255 95 95 95 255 76 76 76 255 Double Stone Slab 43 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +43:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +Double Stone Slab - Sandstone +43:1 218 210 158 255 174 168 126 255 109 105 79 255 87 84 63 255 +Double Stone Slab - Wood +43:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255 +Double Stone Slab - Cobblestone +43:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255 Stone Slab 44 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +44:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +Stone Slab - Sandstone +44:1 218 210 158 255 174 168 126 255 109 105 79 255 87 84 63 255 +Stone Slab - Wood +44:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255 +Stone Slab - Cobblestone +44:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255 Brick 45 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255 TNT diff --git a/colorschemes/flames.txt b/colorschemes/flames.txt index 84b20d9b..8dccb7eb 100644 --- a/colorschemes/flames.txt +++ b/colorschemes/flames.txt @@ -69,20 +69,35 @@ Black Cloth Wool 35 247 255 239 255 244 251 236 255 204 210 197 255 244 251 236 255 35:0 247 255 239 255 244 251 236 255 204 210 197 255 244 251 236 255 +Wool - Orange 35:1 227 128 52 255 224 126 51 255 187 105 42 255 224 126 51 255 +Wool - Magenta 35:2 185 76 188 255 183 75 186 255 153 63 155 255 183 75 186 255 +Wool - Light Blue 35:3 102 139 199 255 100 137 196 255 84 114 164 255 100 137 196 255 +Wool - Yellow 35:4 189 181 26 255 187 178 26 255 156 149 22 255 187 178 26 255 +Wool - Light Green 35:5 57 189 45 255 56 186 44 255 47 156 37 255 56 186 44 255 +Wool - Pink 35:6 211 132 145 255 209 130 143 255 174 109 120 255 209 130 143 255 +Wool - Gray 35:7 65 67 63 255 64 66 62 255 54 55 52 255 64 66 62 255 +Wool - Light Gray 35:8 154 166 156 255 152 163 154 255 127 137 128 255 152 163 154 255 +Wool - Cyan 35:9 38 117 141 255 37 115 139 255 31 96 116 255 37 115 139 255 +Wool - Purple 35:10 126 54 184 255 124 53 181 255 104 44 151 255 124 53 181 255 +Wool - Blue 35:11 38 51 144 255 37 50 143 255 31 42 119 255 37 50 143 255 +Wool - Brown 35:12 83 51 26 255 82 50 26 255 69 42 22 255 82 50 26 255 +Wool - Dark Green 35:13 54 77 22 255 54 76 22 255 45 63 19 255 54 76 22 255 +Wool - Red 35:14 159 45 38 255 157 44 38 255 131 37 32 255 157 44 38 255 +Wool - Black 35:15 26 23 22 255 26 23 21 255 22 19 18 255 26 23 21 255 Gray Cloth 36 125 125 125 255 114 114 114 255 104 104 104 255 86 86 86 255 @@ -100,8 +115,22 @@ Iron Block 42 191 191 191 255 152 152 152 255 95 95 95 255 76 76 76 255 Double Stone Slab 43 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +43:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +Double Stone Slab - Sandstone +43:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255 +Double Stone Slab - Wood +43:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255 +Double Stone Slab - Cobblestone +43:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255 Stone Slab 44 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +44:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +Stone Slab - Sandstone +44:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255 +Stone Slab - Wood +44:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255 +Stone Slab - Cobblestone +44:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255 Brick 45 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255 TNT diff --git a/colorschemes/ovocean.txt b/colorschemes/ovocean.txt index 58d0e28a..36474f09 100644 --- a/colorschemes/ovocean.txt +++ b/colorschemes/ovocean.txt @@ -69,20 +69,35 @@ Black Cloth Wool 35 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255 35:0 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255 +Wool - Orange 35:1 204 111 48 255 162 89 38 255 102 56 24 255 81 44 19 255 +Wool - Magenta 35:2 166 66 175 255 133 53 140 255 83 33 87 255 66 26 69 255 +Wool - Light Blue 35:3 91 121 185 255 73 96 147 255 46 61 92 255 36 48 73 255 +Wool - Yellow 35:4 170 158 24 255 135 126 19 255 85 79 12 255 67 62 10 255 +Wool - Light Green 35:5 51 165 42 255 41 131 33 255 26 82 21 255 20 65 17 255 +Wool - Pink 35:6 190 115 135 255 151 92 108 255 95 57 67 255 75 46 53 255 +Wool - Gray 35:7 58 58 58 255 47 47 47 255 29 29 29 255 23 23 23 255 +Wool - Light Gray 35:8 138 145 145 255 110 115 115 255 69 72 72 255 55 57 57 255 +Wool - Cyan 35:9 34 102 131 255 27 81 104 255 17 51 65 255 13 40 52 255 +Wool - Purple 35:10 113 47 171 255 90 37 136 255 57 24 85 255 45 19 68 255 +Wool - Blue 35:11 34 44 134 255 27 35 107 255 17 22 67 255 13 18 53 255 +Wool - Brown 35:12 75 44 24 255 60 35 19 255 37 22 12 255 30 18 10 255 +Wool - Dark Green 35:13 49 67 21 255 39 53 17 255 24 34 10 255 19 27 8 255 +Wool - Red 35:14 143 39 36 255 114 31 28 255 71 20 18 255 57 16 14 255 +Wool - Black 35:15 24 20 20 255 19 16 16 255 12 10 10 255 9 8 8 255 Gray Cloth 36 125 125 125 255 114 114 114 255 104 104 104 255 86 86 86 255 @@ -100,8 +115,22 @@ Iron Block 42 191 191 191 255 152 152 152 255 95 95 95 255 76 76 76 255 Double Stone Slab 43 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +43:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +Double Stone Slab - Sandstone +43:1 214 182 111 255 203 171 100 255 186 154 83 255 173 141 70 255 +Double Stone Slab - Wood +43:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255 +Double Stone Slab - Cobblestone +43:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255 Stone Slab 44 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +44:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255 +Stone Slab - Sandstone +44:1 214 182 111 255 203 171 100 255 186 154 83 255 173 141 70 255 +Stone Slab - Wood +44:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255 +Stone Slab - Cobblestone +44:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255 Brick 45 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255 TNT diff --git a/colorschemes/sk89q.txt b/colorschemes/sk89q.txt index 5cb0e8b7..4b052513 100644 --- a/colorschemes/sk89q.txt +++ b/colorschemes/sk89q.txt @@ -16,6 +16,7 @@ 17 119 97 74 255 99 81 62 255 83 68 52 255 99 81 62 255 18 27 69 37 180 22 57 31 180 19 48 25 180 22 57 31 180 20 178 217 223 90 148 181 186 90 124 151 155 90 148 181 186 90 +24 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255 35 247 255 239 255 244 251 236 255 204 210 197 255 244 251 236 255 35:0 247 255 239 255 244 251 236 255 204 210 197 255 244 251 236 255 35:1 227 128 52 255 224 126 51 255 187 105 42 255 224 126 51 255 @@ -41,7 +42,15 @@ 41 247 255 239 255 244 251 236 255 204 210 197 255 244 251 236 255 42 249 249 249 255 207 207 207 255 173 173 173 255 207 207 207 255 43 122 112 99 255 101 93 82 255 85 78 69 255 101 93 82 255 +43:0 122 112 99 255 101 93 82 255 85 78 69 255 101 93 82 255 +43:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255 +43:2 109 80 60 255 91 67 50 255 76 56 41 255 91 67 50 255 +43:3 118 112 96 255 98 93 80 255 82 78 67 255 98 93 80 255 44 122 112 99 254 101 93 82 254 85 78 69 254 101 93 82 254 +44:0 122 112 99 254 101 93 82 254 85 78 69 254 101 93 82 254 +44:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255 +44:2 109 80 60 255 91 67 50 255 76 56 41 255 91 67 50 255 +44:3 118 112 96 255 98 93 80 255 82 78 67 255 98 93 80 255 45 230 103 73 255 192 86 61 255 160 71 50 255 192 86 61 255 46 255 79 30 255 231 72 27 255 193 60 22 255 231 72 27 255 48 96 108 70 255 80 90 58 255 67 75 49 255 80 90 58 255 From 2b01db451d652f878269d1bd202478d83dcc4cee Mon Sep 17 00:00:00 2001 From: zeeZ Date: Sat, 14 May 2011 01:16:26 +0200 Subject: [PATCH 02/11] (Optionally) set map center in web config, automagically pan there on map change. --- configuration.txt | 8 ++++++++ web/js/map.js | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/configuration.txt b/configuration.txt index 8bdf9bfa..31b7be9b 100644 --- a/configuration.txt +++ b/configuration.txt @@ -126,6 +126,10 @@ web: worlds: - title: World name: world + center: + x: 0 + y: 64 + z: 0 maps: - type: FlatMapType title: Flat @@ -145,6 +149,10 @@ web: prefix: ct - title: Nether name: nether + center: + x: 0 + y: 64 + z: 0 maps: - type: FlatMapType title: Flat diff --git a/web/js/map.js b/web/js/map.js index 0380c569..0ae78f17 100644 --- a/web/js/map.js +++ b/web/js/map.js @@ -316,6 +316,11 @@ DynMap.prototype = { if (worldChanged) { $(me).trigger('worldchanged'); } + if (map.world.center) { + me.map.panTo(map.projection.fromWorldToLatLng(map.world.center.x||0,map.world.center.y||0,map.world.center.z||0)); + } else { + me.map.panTo(map.projection.fromWorldToLatLng(0,64,0)); + } $(me).trigger('mapchanged'); if (completed) { completed(); From ecf6ae69a3d74a99e311eef77412933678bfd243 Mon Sep 17 00:00:00 2001 From: zeeZ Date: Sat, 14 May 2011 14:32:18 +0200 Subject: [PATCH 03/11] Fixed kzed map scrolling on higher zoom levels --- web/js/kzedmaps.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/js/kzedmaps.js b/web/js/kzedmaps.js index 262e7ba9..825023e2 100644 --- a/web/js/kzedmaps.js +++ b/web/js/kzedmaps.js @@ -1,8 +1,8 @@ function KzedProjection() {} KzedProjection.prototype = { fromLatLngToPoint: function(latLng) { - var x = (latLng.lng() * config.tileWidth)|0; - var y = (latLng.lat() * config.tileHeight)|0; + var x = latLng.lng() * config.tileWidth; + var y = latLng.lat() * config.tileHeight; return new google.maps.Point(x, y); }, From d41422fc2c2f601e1c5a70bac010b86db3bc9cec Mon Sep 17 00:00:00 2001 From: zeeZ Date: Sat, 14 May 2011 15:20:10 +0200 Subject: [PATCH 04/11] Added data value colored blocks to flat map --- src/main/java/org/dynmap/flat/FlatMap.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/flat/FlatMap.java b/src/main/java/org/dynmap/flat/FlatMap.java index 2bed72bb..acdc49c0 100644 --- a/src/main/java/org/dynmap/flat/FlatMap.java +++ b/src/main/java/org/dynmap/flat/FlatMap.java @@ -81,7 +81,15 @@ public class FlatMap extends MapType { int mz = y + t.y * t.size; int my = w.getHighestBlockYAt(mx, mz) - 1; int blockType = w.getBlockTypeIdAt(mx, my, mz); - Color[] colors = colorScheme.colors[blockType]; + byte data = 0; + if(colorScheme.datacolors[blockType] != null) { /* If data colored */ + data = w.getBlockAt(mx, my, mz).getData(); + } + Color[] colors; + if(data != 0) + colors = colorScheme.datacolors[blockType][data]; + else + colors = colorScheme.colors[blockType]; if (colors == null) continue; Color c = colors[0]; From b01e0c8cdc06defd554a561f16688f2a9929bf63 Mon Sep 17 00:00:00 2001 From: zeeZ Date: Mon, 16 May 2011 14:28:18 +0200 Subject: [PATCH 05/11] Op always has permission --- src/main/java/org/dynmap/DynmapPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/dynmap/DynmapPlugin.java b/src/main/java/org/dynmap/DynmapPlugin.java index c9f731b1..51631af8 100644 --- a/src/main/java/org/dynmap/DynmapPlugin.java +++ b/src/main/java/org/dynmap/DynmapPlugin.java @@ -374,8 +374,8 @@ public class DynmapPlugin extends JavaPlugin { return false; } - private boolean checkPlayerPermission(CommandSender sender, String permission) { - if (!(sender instanceof Player)) { + private boolean checkPlayerPermission(CommandSender sender, String permission) { + if (!(sender instanceof Player) || sender.isOp()) { return true; } else if (!permissions.has(sender, permission.toLowerCase())) { sender.sendMessage("You don't have permission to use this command!"); From 05f3ced64f1d4d4201043efd5e4dac12a84bcb53 Mon Sep 17 00:00:00 2001 From: zeeZ Date: Mon, 16 May 2011 14:51:18 +0200 Subject: [PATCH 06/11] Tabs and spaces. --- src/main/java/org/dynmap/Client.java | 6 +- src/main/java/org/dynmap/Color.java | 4 +- src/main/java/org/dynmap/ColorScheme.java | 10 +- .../org/dynmap/DynmapPlayerChatListener.java | 2 +- src/main/java/org/dynmap/DynmapPlugin.java | 10 +- src/main/java/org/dynmap/Event.java | 8 +- src/main/java/org/dynmap/HeroChatHandler.java | 4 +- src/main/java/org/dynmap/MapManager.java | 66 +++---- src/main/java/org/dynmap/MapTile.java | 6 +- src/main/java/org/dynmap/MapType.java | 2 +- src/main/java/org/dynmap/PlayerList.java | 2 +- src/main/java/org/dynmap/UpdateQueue.java | 4 +- src/main/java/org/dynmap/debug/Debug.java | 6 +- .../java/org/dynmap/debug/LogDebugger.java | 4 +- .../java/org/dynmap/debug/NullDebugger.java | 2 +- src/main/java/org/dynmap/flat/FlatMap.java | 90 ++++----- .../org/dynmap/kzedmap/CaveTileRenderer.java | 10 +- .../dynmap/kzedmap/DefaultTileRenderer.java | 184 +++++++++--------- .../dynmap/kzedmap/HighlightTileRenderer.java | 36 ++-- src/main/java/org/dynmap/kzedmap/KzedMap.java | 18 +- .../java/org/dynmap/kzedmap/KzedMapTile.java | 2 +- .../java/org/dynmap/web/BoundInputStream.java | 16 +- src/main/java/org/dynmap/web/HttpRequest.java | 2 +- .../java/org/dynmap/web/HttpResponse.java | 4 +- .../org/dynmap/web/HttpServerConnection.java | 30 +-- src/main/java/org/dynmap/web/HttpStatus.java | 8 +- src/main/java/org/dynmap/web/Json.java | 6 +- .../handlers/ClientConfigurationHandler.java | 6 +- .../web/handlers/ClientUpdateHandler.java | 28 +-- .../org/dynmap/web/handlers/FileHandler.java | 14 +- .../web/handlers/FilesystemHandler.java | 2 +- .../dynmap/web/handlers/JarFileHandler.java | 2 +- .../web/handlers/SendMessageHandler.java | 18 +- 33 files changed, 306 insertions(+), 306 deletions(-) diff --git a/src/main/java/org/dynmap/Client.java b/src/main/java/org/dynmap/Client.java index 307784c7..0d00991e 100644 --- a/src/main/java/org/dynmap/Client.java +++ b/src/main/java/org/dynmap/Client.java @@ -30,7 +30,7 @@ public class Client { public static class Stamped { public long timestamp = System.currentTimeMillis(); } - + public static class ChatMessage extends Stamped { public String type = "chat"; public String source; @@ -43,7 +43,7 @@ public class Client { this.message = ChatColor.stripColor(message); } } - + public static class PlayerJoinMessage extends Stamped { public String type = "playerjoin"; public String playerName; @@ -51,7 +51,7 @@ public class Client { this.playerName = ChatColor.stripColor(playerName); } } - + public static class PlayerQuitMessage extends Stamped { public String type = "playerquit"; public String playerName; diff --git a/src/main/java/org/dynmap/Color.java b/src/main/java/org/dynmap/Color.java index 4c7fe0ae..18812e2e 100644 --- a/src/main/java/org/dynmap/Color.java +++ b/src/main/java/org/dynmap/Color.java @@ -7,9 +7,9 @@ package org.dynmap; public class Color { /* RGBA value */ private int val; - + public static final int TRANSPARENT = 0; - + public Color(int red, int green, int blue, int alpha) { setRGBA(red, green, blue, alpha); } diff --git a/src/main/java/org/dynmap/ColorScheme.java b/src/main/java/org/dynmap/ColorScheme.java index bd59b34d..7c0ae59f 100644 --- a/src/main/java/org/dynmap/ColorScheme.java +++ b/src/main/java/org/dynmap/ColorScheme.java @@ -15,9 +15,9 @@ import org.dynmap.debug.Debug; public class ColorScheme { protected static final Logger log = Logger.getLogger("Minecraft"); private static final HashMap cache = new HashMap(); - + public String name; - /* Switch to arrays - faster than map */ + /* Switch to arrays - faster than map */ public Color[][] colors; /* [blk-type][step] */ public Color[][][] datacolors; /* [bkt-type][blk-dat][step] */ @@ -26,11 +26,11 @@ public class ColorScheme { this.colors = colors; this.datacolors = datacolors; } - + private static File getColorSchemeDirectory() { return new File(DynmapPlugin.dataDirectory, "colorschemes"); } - + public static ColorScheme getScheme(String name) { if (name == null) name = "default"; @@ -41,7 +41,7 @@ public class ColorScheme { } return scheme; } - + public static ColorScheme loadScheme(String name) { File colorSchemeFile = new File(getColorSchemeDirectory(), name + ".txt"); Color[][] colors = new Color[256][]; diff --git a/src/main/java/org/dynmap/DynmapPlayerChatListener.java b/src/main/java/org/dynmap/DynmapPlayerChatListener.java index f7676e34..51a03d28 100644 --- a/src/main/java/org/dynmap/DynmapPlayerChatListener.java +++ b/src/main/java/org/dynmap/DynmapPlayerChatListener.java @@ -28,4 +28,4 @@ public class DynmapPlayerChatListener extends PlayerListener { plugin.mapManager.pushUpdate(new Client.PlayerQuitMessage(event.getPlayer().getDisplayName())); } -} \ No newline at end of file +} diff --git a/src/main/java/org/dynmap/DynmapPlugin.java b/src/main/java/org/dynmap/DynmapPlugin.java index 51631af8..d719aef3 100644 --- a/src/main/java/org/dynmap/DynmapPlugin.java +++ b/src/main/java/org/dynmap/DynmapPlugin.java @@ -72,7 +72,7 @@ public class DynmapPlugin extends JavaPlugin { public HttpServer getWebServer() { return webServer; } - + public void onEnable() { permissions = NijikokunPermissions.create(getServer(), "dynmap"); if (permissions == null) @@ -108,14 +108,14 @@ public class DynmapPlugin extends JavaPlugin { } hchand = new HeroChatHandler(configuration, this, getServer()); - + enabledTriggers.clear(); for (Object trigger : configuration.getList("render-triggers")) { enabledTriggers.add((String) trigger); } registerEvents(); - + /* Print version info */ PluginDescriptionFile pdfFile = this.getDescription(); log.info("[dynmap] version " + pdfFile.getVersion() + " is enabled" ); @@ -152,7 +152,7 @@ public class DynmapPlugin extends JavaPlugin { } }); }}; - + webServer.handlers.put("/up/sendmessage", messageHandler); } @@ -408,7 +408,7 @@ public class DynmapPlugin extends JavaPlugin { mapManager.pushUpdate(new Client.ChatMessage("web", name, message)); log.info("[WEB]" + name + ": " + message); /* Let HeroChat take a look - only broadcast to players if it doesn't handle it */ - if(hchand.sendWebMessageToHeroChat(name, message) == false) + if(hchand.sendWebMessageToHeroChat(name, message) == false) getServer().broadcastMessage("[WEB]" + name + ": " + message); } } diff --git a/src/main/java/org/dynmap/Event.java b/src/main/java/org/dynmap/Event.java index 9cba4e97..f387d978 100644 --- a/src/main/java/org/dynmap/Event.java +++ b/src/main/java/org/dynmap/Event.java @@ -5,21 +5,21 @@ import java.util.List; public class Event { private List> listeners = new LinkedList>(); - + public synchronized void addListener(Listener l) { listeners.add(l); } - + public synchronized void removeListener(Listener l) { listeners.remove(l); } - + public synchronized void trigger(T t) { for (Listener l : listeners) { l.triggered(t); } } - + public interface Listener { void triggered(T t); } diff --git a/src/main/java/org/dynmap/HeroChatHandler.java b/src/main/java/org/dynmap/HeroChatHandler.java index 3f84a7d9..59243367 100644 --- a/src/main/java/org/dynmap/HeroChatHandler.java +++ b/src/main/java/org/dynmap/HeroChatHandler.java @@ -151,7 +151,7 @@ public class HeroChatHandler { .forName("com.herocraftonline.dthielke.herochat.channels.Channel"); getname = channel.getMethod("getName"); getnick = channel.getMethod("getNick", new Class[0]); - sendmessage = channel.getMethod("sendMessage", new Class[] { + sendmessage = channel.getMethod("sendMessage", new Class[] { String.class, String.class, String.class, boolean.class } ); isgood = true; } catch (ClassNotFoundException cnfx) { @@ -256,7 +256,7 @@ public class HeroChatHandler { log.severe("[dynmap] Cannot load HeroChat channel event class!"); return; } - + /* Register event handler */ plugin.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, new OurEventListener(), Event.Priority.Monitor, plugin); diff --git a/src/main/java/org/dynmap/MapManager.java b/src/main/java/org/dynmap/MapManager.java index bda34f63..a5eab8c6 100644 --- a/src/main/java/org/dynmap/MapManager.java +++ b/src/main/java/org/dynmap/MapManager.java @@ -33,7 +33,7 @@ public class MapManager { public AsynchronousQueue tileQueue; public AsynchronousQueue writeQueue; - + public Map worlds = new HashMap(); public Map inactiveworlds = new HashMap(); private BukkitScheduler scheduler; @@ -48,7 +48,7 @@ public class MapManager { public static final Object lock = new Object(); public static MapManager mapman; /* Our singleton */ - + private static class ImageWriter { Runnable run; } @@ -62,7 +62,7 @@ public class MapManager { HashSet rendered = null; LinkedList renderQueue = null; MapTile tile0 = null; - + /* Full world, all maps render */ FullWorldRenderState(DynmapWorld dworld, Location l) { world = dworld; @@ -71,16 +71,16 @@ public class MapManager { rendered = new HashSet(); renderQueue = new LinkedList(); } - + /* Single tile render - used for incremental renders */ FullWorldRenderState(MapTile t) { world = worlds.get(t.getWorld().getName()); tile0 = t; } - + public void run() { MapTile tile; - + if(tile0 == null) { /* Not single tile render */ /* If render queue is empty, start next map */ if(renderQueue.isEmpty()) { @@ -144,12 +144,12 @@ public class MapManager { for(Entity e: cc.getEntities()) e.remove(); } - /* Since we only remember ones we loaded, and we're synchronous, no player has + /* Since we only remember ones we loaded, and we're synchronous, no player has * moved, so it must be safe (also prevent chunk leak, which appears to happen * because isChunkInUse defined "in use" as being within 256 blocks of a player, * while the actual in-use chunk area for a player where the chunks are managed * by the MC base server is 21x21 (or about a 160 block radius) */ - w.unloadChunk(c.x, c.z, false, false); + w.unloadChunk(c.x, c.z, false, false); } if(tile0 == null) { /* fullrender */ /* Schedule the next tile to be worked */ @@ -159,20 +159,20 @@ public class MapManager { } public MapManager(DynmapPlugin plugin, ConfigurationNode configuration) { - + mapman = this; - + this.tileQueue = new AsynchronousQueue(new Handler() { @Override public void handle(MapTile t) { if(do_sync_render) - scheduler.scheduleSyncDelayedTask(plug_in, + scheduler.scheduleSyncDelayedTask(plug_in, new FullWorldRenderState(t), 1); else render(t); } }, (int) (configuration.getDouble("renderinterval", 0.5) * 1000)); - + this.writeQueue = new AsynchronousQueue( new Handler() { @Override @@ -184,7 +184,7 @@ public class MapManager { do_timesliced_render = configuration.getBoolean("timeslicerender", true); timeslice_interval = configuration.getDouble("timesliceinterval", 0.5); do_sync_render = configuration.getBoolean("renderonsync", true); - + for(Object worldConfigurationObj : (List)configuration.getProperty("worlds")) { Map worldConfiguration = (Map)worldConfigurationObj; String worldName = (String)worldConfiguration.get("name"); @@ -195,21 +195,21 @@ public class MapManager { } } inactiveworlds.put(worldName, world); - + World bukkitWorld = plugin.getServer().getWorld(worldName); if (bukkitWorld != null) activateWorld(bukkitWorld); } - + scheduler = plugin.getServer().getScheduler(); plug_in = plugin; - + tileQueue.start(); writeQueue.start(); } - - + + void renderFullWorld(Location l) { DynmapWorld world = worlds.get(l.getWorld().getName()); if (world == null) { @@ -232,7 +232,7 @@ public class MapManager { return; } World w = world.world; - + log.info("Full render starting on world '" + w.getName() + "'..."); for (MapType map : world.maps) { int requiredChunkCount = 200; @@ -303,7 +303,7 @@ public class MapManager { log.info("Activated world '" + w.getName() + "' in Dynmap."); } } - + private MapType[] loadMapTypes(List mapConfigurations) { Event.Listener invalitateListener = new Event.Listener() { @Override @@ -332,7 +332,7 @@ public class MapManager { mapTypes.toArray(result); return result; } - + public int touch(Location l) { DynmapWorld world = worlds.get(l.getWorld().getName()); if (world == null) @@ -352,24 +352,24 @@ public class MapManager { Debug.debug("Invalidating tile " + tile.getFilename()); tileQueue.push(tile); } - + public void startRendering() { tileQueue.start(); writeQueue.start(); } - + public void stopRendering() { tileQueue.stop(); writeQueue.stop(); } - + public boolean render(MapTile tile) { boolean result = tile.getMap().render(tile, getTileFile(tile)); //Do update after async file write - + return result; - } - + } + private HashMap worldTileDirectories = new HashMap(); public File getTileFile(MapTile tile) { World world = tile.getWorld(); @@ -381,7 +381,7 @@ public class MapManager { if (!worldTileDirectory.isDirectory() && !worldTileDirectory.mkdirs()) { log.warning("Could not create directory for tiles ('" + worldTileDirectory + "')."); } - return new File(worldTileDirectory, tile.getFilename()); + return new File(worldTileDirectory, tile.getFilename()); } public void pushUpdate(Object update) { @@ -389,29 +389,29 @@ public class MapManager { world.updates.pushUpdate(update); } } - + public void pushUpdate(World world, Object update) { pushUpdate(world.getName(), update); } - + public void pushUpdate(String worldName, Object update) { DynmapWorld world = worlds.get(worldName); world.updates.pushUpdate(update); } - + public Object[] getWorldUpdates(String worldName, long since) { DynmapWorld world = worlds.get(worldName); if (world == null) return new Object[0]; return world.updates.getUpdatedObjects(since); } - + public void enqueueImageWrite(Runnable run) { ImageWriter handler = new ImageWriter(); handler.run = run; writeQueue.push(handler); } - + public boolean doSyncRender() { return do_sync_render; } diff --git a/src/main/java/org/dynmap/MapTile.java b/src/main/java/org/dynmap/MapTile.java index 9484a352..8ab828eb 100644 --- a/src/main/java/org/dynmap/MapTile.java +++ b/src/main/java/org/dynmap/MapTile.java @@ -9,7 +9,7 @@ public abstract class MapTile { public World getWorld() { return world; } - + public MapType getMap() { return map; } @@ -20,12 +20,12 @@ public abstract class MapTile { this.world = world; this.map = map; } - + @Override public int hashCode() { return getFilename().hashCode() ^ getWorld().hashCode(); } - + @Override public boolean equals(Object obj) { if (obj instanceof MapTile) { diff --git a/src/main/java/org/dynmap/MapType.java b/src/main/java/org/dynmap/MapType.java index 64ff0f24..006d1846 100644 --- a/src/main/java/org/dynmap/MapType.java +++ b/src/main/java/org/dynmap/MapType.java @@ -6,7 +6,7 @@ import org.bukkit.Location; public abstract class MapType { public Event onTileInvalidated = new Event(); - + public abstract MapTile[] getTiles(Location l); public abstract MapTile[] getAdjecentTiles(MapTile tile); diff --git a/src/main/java/org/dynmap/PlayerList.java b/src/main/java/org/dynmap/PlayerList.java index 3954264c..75e6f3e6 100644 --- a/src/main/java/org/dynmap/PlayerList.java +++ b/src/main/java/org/dynmap/PlayerList.java @@ -87,7 +87,7 @@ public class PlayerList { visiblePlayers.toArray(result); return result; } - + public Player[] getVisiblePlayers() { ArrayList visiblePlayers = new ArrayList(); Player[] onlinePlayers = server.getOnlinePlayers(); diff --git a/src/main/java/org/dynmap/UpdateQueue.java b/src/main/java/org/dynmap/UpdateQueue.java index 995a57c5..3dfb244a 100644 --- a/src/main/java/org/dynmap/UpdateQueue.java +++ b/src/main/java/org/dynmap/UpdateQueue.java @@ -13,7 +13,7 @@ public class UpdateQueue { public void pushUpdate(Object obj) { synchronized (lock) { - /* Do inside lock - prevent delay between time and actual work */ + /* Do inside lock - prevent delay between time and actual work */ long now = System.currentTimeMillis(); long deadline = now - maxUpdateAge; ListIterator i = updateQueue.listIterator(0); @@ -49,7 +49,7 @@ public class UpdateQueue { break; } } - + // Reverse output. updates = new Object[tmpupdates.size()]; for (int i = 0; i < updates.length; i++) { diff --git a/src/main/java/org/dynmap/debug/Debug.java b/src/main/java/org/dynmap/debug/Debug.java index 727d268d..d6973e6f 100644 --- a/src/main/java/org/dynmap/debug/Debug.java +++ b/src/main/java/org/dynmap/debug/Debug.java @@ -8,15 +8,15 @@ public class Debug { public synchronized static void addDebugger(Debugger d) { debuggers.add(d); } - + public synchronized static void removeDebugger(Debugger d) { debuggers.remove(d); } - + public synchronized static void clearDebuggers() { debuggers.clear(); } - + public synchronized static void debug(String message) { for(int i = 0; i < debuggers.size(); i++) debuggers.get(i).debug(message); } diff --git a/src/main/java/org/dynmap/debug/LogDebugger.java b/src/main/java/org/dynmap/debug/LogDebugger.java index c52ecd85..3c5911a8 100644 --- a/src/main/java/org/dynmap/debug/LogDebugger.java +++ b/src/main/java/org/dynmap/debug/LogDebugger.java @@ -9,10 +9,10 @@ import org.bukkit.plugin.java.JavaPlugin; public class LogDebugger implements Debugger { protected static final Logger log = Logger.getLogger("Minecraft"); private static String prepend = "dynmap: "; - + public LogDebugger(JavaPlugin plugin, Map configuration) { } - + @Override public void debug(String message) { log.info(prepend + message); diff --git a/src/main/java/org/dynmap/debug/NullDebugger.java b/src/main/java/org/dynmap/debug/NullDebugger.java index 6d2fca74..7b4b689a 100644 --- a/src/main/java/org/dynmap/debug/NullDebugger.java +++ b/src/main/java/org/dynmap/debug/NullDebugger.java @@ -9,7 +9,7 @@ public class NullDebugger implements Debugger { public NullDebugger(JavaPlugin plugin, Map configuration) { } - + public void debug(String message) { } diff --git a/src/main/java/org/dynmap/flat/FlatMap.java b/src/main/java/org/dynmap/flat/FlatMap.java index b9e2abd3..f509cef5 100644 --- a/src/main/java/org/dynmap/flat/FlatMap.java +++ b/src/main/java/org/dynmap/flat/FlatMap.java @@ -24,7 +24,7 @@ public class FlatMap extends MapType { private String prefix; private ColorScheme colorScheme; private int maximumHeight = 127; - + public FlatMap(Map configuration) { prefix = (String) configuration.get("prefix"); colorScheme = ColorScheme.getScheme((String) configuration.get("colorscheme")); @@ -91,36 +91,36 @@ public class FlatMap extends MapType { int my; int blockType; if(isnether) { - /* Scan until we hit air */ - my = 127; - while((blockType = w.getBlockTypeIdAt(mx, my, mz)) != 0) { - my--; - if(my < 0) { /* Solid - use top */ - my = 127; - blockType = w.getBlockTypeIdAt(mx, my, mz); - break; - } - } - if(blockType == 0) { /* Hit air - now find non-air */ - while((blockType = w.getBlockTypeIdAt(mx, my, mz)) == 0) { - my--; - if(my < 0) { - my = 0; - break; - } - } - } + /* Scan until we hit air */ + my = 127; + while((blockType = w.getBlockTypeIdAt(mx, my, mz)) != 0) { + my--; + if(my < 0) { /* Solid - use top */ + my = 127; + blockType = w.getBlockTypeIdAt(mx, my, mz); + break; + } + } + if(blockType == 0) { /* Hit air - now find non-air */ + while((blockType = w.getBlockTypeIdAt(mx, my, mz)) == 0) { + my--; + if(my < 0) { + my = 0; + break; + } + } + } } else { - my = w.getHighestBlockYAt(mx, mz) - 1; - if(my > maximumHeight) my = maximumHeight; - blockType = w.getBlockTypeIdAt(mx, my, mz); + my = w.getHighestBlockYAt(mx, mz) - 1; + if(my > maximumHeight) my = maximumHeight; + blockType = w.getBlockTypeIdAt(mx, my, mz); } byte data = 0; Color[] colors = colorScheme.colors[blockType]; if(colorScheme.datacolors[blockType] != null) { - data = w.getBlockAt(mx, my, mz).getData(); - colors = colorScheme.datacolors[blockType][data]; + data = w.getBlockAt(mx, my, mz).getData(); + colors = colorScheme.datacolors[blockType][data]; } if (colors == null) continue; @@ -129,26 +129,26 @@ public class FlatMap extends MapType { continue; boolean below = my < 64; - + // Make height range from 0 - 1 (1 - 0 for below and 0 - 1 above) float height = (below ? 64 - my : my - 64) / 64.0f; - + // Defines the 'step' in coloring. float step = 10 / 128.0f; - + // The step applied to height. float scale = ((int)(height/step))*step; // Make the smaller values change the color (slightly) more than the higher values. scale = (float)Math.pow(scale, 1.1f); - + // Don't let the color go fully white or fully black. scale *= 0.8f; - + pixel[0] = c.getRed(); pixel[1] = c.getGreen(); pixel[2] = c.getBlue(); - + if (below) { pixel[0] -= pixel[0] * scale; pixel[1] -= pixel[1] * scale; @@ -158,7 +158,7 @@ public class FlatMap extends MapType { pixel[1] += (255-pixel[1]) * scale; pixel[2] += (255-pixel[2]) * scale; } - + raster.setPixel(t.size-y-1, x, pixel); rendered = true; } @@ -167,19 +167,19 @@ public class FlatMap extends MapType { final MapTile mtile = tile; final BufferedImage img = im; MapManager.mapman.enqueueImageWrite(new Runnable() { - public void run() { - Debug.debug("saving image " + fname.getPath()); - try { - ImageIO.write(img, "png", fname); - } catch (IOException e) { - Debug.error("Failed to save image: " + fname.getPath(), e); - } catch (java.lang.NullPointerException e) { - Debug.error("Failed to save image (NullPointerException): " + fname.getPath(), e); - } - img.flush(); - MapManager.mapman.pushUpdate(mtile.getWorld(), - new Client.Tile(mtile.getFilename())); - } + public void run() { + Debug.debug("saving image " + fname.getPath()); + try { + ImageIO.write(img, "png", fname); + } catch (IOException e) { + Debug.error("Failed to save image: " + fname.getPath(), e); + } catch (java.lang.NullPointerException e) { + Debug.error("Failed to save image (NullPointerException): " + fname.getPath(), e); + } + img.flush(); + MapManager.mapman.pushUpdate(mtile.getWorld(), + new Client.Tile(mtile.getFilename())); + } }); return rendered; diff --git a/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java b/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java index 3c1f557f..142c4e86 100644 --- a/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java @@ -20,11 +20,11 @@ public class CaveTileRenderer extends DefaultTileRenderer { return; int id = world.getBlockTypeIdAt(x, y, z); - if(isnether) { /* Make ceiling into air in nether */ - if(id != 0) - id = 0; - else - isnether = false; + if(isnether) { /* Make ceiling into air in nether */ + if(id != 0) + id = 0; + else + isnether = false; } switch (seq) { diff --git a/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java b/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java index 8e034835..3ad9e98f 100644 --- a/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java @@ -26,10 +26,10 @@ public class DefaultTileRenderer implements MapTileRenderer { protected String name; protected int maximumHeight = 127; protected ColorScheme colorScheme; - + protected HashSet highlightBlocks = new HashSet(); protected Color highlightColor = new Color(255, 0, 0); - + @Override public String getName() { return name; @@ -60,10 +60,10 @@ public class DefaultTileRenderer implements MapTileRenderer { /* Don't mess with existing height-clipped renders */ if(maximumHeight < 127) - isnether = false; - + isnether = false; + int jx, jz; - + int x, y; Color c1 = new Color(); @@ -87,7 +87,7 @@ public class DefaultTileRenderer implements MapTileRenderer { r.setPixel(x - 1, y, rgb); isempty = false; } - + jx++; jz++; @@ -126,90 +126,90 @@ public class DefaultTileRenderer implements MapTileRenderer { final File fname = outputFile; final KzedMapTile mtile = tile; final BufferedImage img = im; - final KzedZoomedMapTile zmtile = new KzedZoomedMapTile(mtile.getWorld(), - (KzedMap) mtile.getMap(), mtile); - final File zoomFile = MapManager.mapman.getTileFile(zmtile); - - MapManager.mapman.enqueueImageWrite(new Runnable() { - public void run() { - doFileWrites(fname, mtile, img, zmtile, zoomFile); - } - }); + final KzedZoomedMapTile zmtile = new KzedZoomedMapTile(mtile.getWorld(), + (KzedMap) mtile.getMap(), mtile); + final File zoomFile = MapManager.mapman.getTileFile(zmtile); + + MapManager.mapman.enqueueImageWrite(new Runnable() { + public void run() { + doFileWrites(fname, mtile, img, zmtile, zoomFile); + } + }); return !isempty; } - + private void doFileWrites(final File fname, final KzedMapTile mtile, - final BufferedImage img, final KzedZoomedMapTile zmtile, final File zoomFile) { - Debug.debug("saving image " + fname.getPath()); - try { - ImageIO.write(img, "png", fname); - } catch (IOException e) { - Debug.error("Failed to save image: " + fname.getPath(), e); - } catch (java.lang.NullPointerException e) { - Debug.error("Failed to save image (NullPointerException): " + fname.getPath(), e); - } - mtile.file = fname; - // Since we've already got the new tile, and we're on an async thread, just - // make the zoomed tile here - int px = mtile.px; - int py = mtile.py; - int zpx = zmtile.getTileX(); - int zpy = zmtile.getTileY(); + final BufferedImage img, final KzedZoomedMapTile zmtile, final File zoomFile) { + Debug.debug("saving image " + fname.getPath()); + try { + ImageIO.write(img, "png", fname); + } catch (IOException e) { + Debug.error("Failed to save image: " + fname.getPath(), e); + } catch (java.lang.NullPointerException e) { + Debug.error("Failed to save image (NullPointerException): " + fname.getPath(), e); + } + mtile.file = fname; + // Since we've already got the new tile, and we're on an async thread, just + // make the zoomed tile here + int px = mtile.px; + int py = mtile.py; + int zpx = zmtile.getTileX(); + int zpy = zmtile.getTileY(); - /* scaled size */ - int scw = KzedMap.tileWidth / 2; - int sch = KzedMap.tileHeight / 2; + /* scaled size */ + int scw = KzedMap.tileWidth / 2; + int sch = KzedMap.tileHeight / 2; - /* origin in zoomed-out tile */ - int ox = 0; - int oy = 0; + /* origin in zoomed-out tile */ + int ox = 0; + int oy = 0; - if (zpx != px) - ox = scw; - if (zpy != py) - oy = sch; + if (zpx != px) + ox = scw; + if (zpy != py) + oy = sch; - BufferedImage zIm = null; - try { - zIm = ImageIO.read(zoomFile); - } catch (IOException e) { - } catch (IndexOutOfBoundsException e) { - } + BufferedImage zIm = null; + try { + zIm = ImageIO.read(zoomFile); + } catch (IOException e) { + } catch (IndexOutOfBoundsException e) { + } - if (zIm == null) { - /* create new one */ - zIm = new BufferedImage(KzedMap.tileWidth, KzedMap.tileHeight, BufferedImage.TYPE_INT_RGB); - Debug.debug("New zoom-out tile created " + zmtile.getFilename()); - } else { - Debug.debug("Loaded zoom-out tile from " + zmtile.getFilename()); - } - - /* blit scaled rendered tile onto zoom-out tile */ - Graphics2D g2 = zIm.createGraphics(); - g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); - g2.drawImage(img, ox, oy, scw, sch, null); + if (zIm == null) { + /* create new one */ + zIm = new BufferedImage(KzedMap.tileWidth, KzedMap.tileHeight, BufferedImage.TYPE_INT_RGB); + Debug.debug("New zoom-out tile created " + zmtile.getFilename()); + } else { + Debug.debug("Loaded zoom-out tile from " + zmtile.getFilename()); + } - img.flush(); + /* blit scaled rendered tile onto zoom-out tile */ + Graphics2D g2 = zIm.createGraphics(); + g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g2.drawImage(img, ox, oy, scw, sch, null); - /* save zoom-out tile */ - - try { - ImageIO.write(zIm, "png", zoomFile); - Debug.debug("Saved zoom-out tile at " + zoomFile.getName()); - } catch (IOException e) { - Debug.error("Failed to save zoom-out tile: " + zoomFile.getName(), e); - } catch (java.lang.NullPointerException e) { - Debug.error("Failed to save zoom-out tile (NullPointerException): " + zoomFile.getName(), e); - } - zIm.flush(); - /* Push updates for both files.*/ - MapManager.mapman.pushUpdate(mtile.getWorld(), - new Client.Tile(mtile.getFilename())); - MapManager.mapman.pushUpdate(zmtile.getWorld(), - new Client.Tile(zmtile.getFilename())); + img.flush(); + + /* save zoom-out tile */ + + try { + ImageIO.write(zIm, "png", zoomFile); + Debug.debug("Saved zoom-out tile at " + zoomFile.getName()); + } catch (IOException e) { + Debug.error("Failed to save zoom-out tile: " + zoomFile.getName(), e); + } catch (java.lang.NullPointerException e) { + Debug.error("Failed to save zoom-out tile (NullPointerException): " + zoomFile.getName(), e); + } + zIm.flush(); + /* Push updates for both files.*/ + MapManager.mapman.pushUpdate(mtile.getWorld(), + new Client.Tile(mtile.getFilename())); + MapManager.mapman.pushUpdate(zmtile.getWorld(), + new Client.Tile(zmtile.getFilename())); } - + protected void scan(World world, int x, int y, int z, int seq, boolean isnether, final Color result) { result.setTransparent(); @@ -219,19 +219,19 @@ public class DefaultTileRenderer implements MapTileRenderer { } int id = world.getBlockTypeIdAt(x, y, z); byte data = 0; - if(isnether) { /* Make bedrock ceiling into air in nether */ - if(id != 0) { - /* Remember first color we see, in case we wind up solid */ - if(result.isTransparent()) - if(colorScheme.colors[id] != null) - result.setColor(colorScheme.colors[id][seq]); - id = 0; - } - else - isnether = false; + if(isnether) { /* Make bedrock ceiling into air in nether */ + if(id != 0) { + /* Remember first color we see, in case we wind up solid */ + if(result.isTransparent()) + if(colorScheme.colors[id] != null) + result.setColor(colorScheme.colors[id][seq]); + id = 0; + } + else + isnether = false; } - if(colorScheme.datacolors[id] != null) { /* If data colored */ - data = world.getBlockAt(x, y, z).getData(); + if(colorScheme.datacolors[id] != null) { /* If data colored */ + data = world.getBlockAt(x, y, z).getData(); } switch (seq) { case 0: @@ -257,9 +257,9 @@ public class DefaultTileRenderer implements MapTileRenderer { } Color[] colors; if(data != 0) - colors = colorScheme.datacolors[id][data]; + colors = colorScheme.datacolors[id][data]; else - colors = colorScheme.colors[id]; + colors = colorScheme.colors[id]; if (colors != null) { Color c = colors[seq]; if (c.getAlpha() > 0) { diff --git a/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java b/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java index 826fed17..30fa8db6 100644 --- a/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java @@ -21,7 +21,7 @@ public class HighlightTileRenderer extends DefaultTileRenderer { highlightBlocks.add((Integer)highlightObj); } } - + @Override protected void scan(World world, int x, int y, int z, int seq, boolean isnether, final Color result) { result.setTransparent(); @@ -31,20 +31,20 @@ public class HighlightTileRenderer extends DefaultTileRenderer { } int id = world.getBlockTypeIdAt(x, y, z); - if(isnether) { /* Make bedrock ceiling into air in nether */ - if(id != 0) { - /* Remember first color we see, in case we wind up solid */ - if(result.isTransparent()) - if(colorScheme.colors[id] != null) - result.setColor(colorScheme.colors[id][seq]); - id = 0; - } - else - isnether = false; + if(isnether) { /* Make bedrock ceiling into air in nether */ + if(id != 0) { + /* Remember first color we see, in case we wind up solid */ + if(result.isTransparent()) + if(colorScheme.colors[id] != null) + result.setColor(colorScheme.colors[id][seq]); + id = 0; + } + else + isnether = false; } byte data = 0; - if(colorScheme.datacolors[id] != null) { /* If data colored */ - data = world.getBlockAt(x, y, z).getData(); + if(colorScheme.datacolors[id] != null) { /* If data colored */ + data = world.getBlockAt(x, y, z).getData(); } switch (seq) { @@ -67,9 +67,9 @@ public class HighlightTileRenderer extends DefaultTileRenderer { if (id != 0) { Color[] colors; if(data != 0) - colors = colorScheme.datacolors[id][data]; + colors = colorScheme.datacolors[id][data]; else - colors = colorScheme.colors[id]; + colors = colorScheme.colors[id]; if (colors != null) { Color c = colors[seq]; @@ -85,9 +85,9 @@ public class HighlightTileRenderer extends DefaultTileRenderer { * if (c.getAlpha() == 255) { return c; } */ /* this block is transparent, so recurse */ - + // No need to blend if result is opaque. - if (result.getAlpha() < 255) { + if (result.getAlpha() < 255) { int cr = result.getRed(); int cg = result.getGreen(); int cb = result.getBlue(); @@ -96,7 +96,7 @@ public class HighlightTileRenderer extends DefaultTileRenderer { cg *= ca; cb *= ca; int na = 255 - ca; - + result.setRGBA((c.getRed() * na + cr) >> 8, (c.getGreen() * na + cg) >> 8, (c.getBlue() * na + cb) >> 8, Math.min(255, c.getAlpha()+ca) // Not really correct, but gets the job done without recursion while still looking ok. ); diff --git a/src/main/java/org/dynmap/kzedmap/KzedMap.java b/src/main/java/org/dynmap/kzedmap/KzedMap.java index 8c44acf2..7da79a28 100644 --- a/src/main/java/org/dynmap/kzedmap/KzedMap.java +++ b/src/main/java/org/dynmap/kzedmap/KzedMap.java @@ -67,7 +67,7 @@ public class KzedMap extends MapType { @Override public MapTile[] getTiles(Location l) { World world = l.getWorld(); - + int x = l.getBlockX(); int y = l.getBlockY(); int z = l.getBlockZ(); @@ -141,7 +141,7 @@ public class KzedMap extends MapType { /** * Test if point x,z is inside rectangle with corner at r0x,r0z and with * size vectors s1x,s1z and s2x,s2z - * + * */ private boolean testPointInRectangle(int x, int z, int r0x, int r0z, int s1x, int s1z, int s2x, int s2z) { @@ -150,7 +150,7 @@ public class KzedMap extends MapType { int dots1 = xr*s1x + zr*s1z; int dots2 = xr*s2x + zr*s2z; /* If dot product of relative point and each side is between zero and dot product - * of each side and itself, we're inside + * of each side and itself, we're inside */ if((dots1 >= 0) && (dots1 <= (s1x*s1x+s1z*s1z)) && (dots2 >= 0) && (dots2 <= (s2x*s2x+s2z*s2z))) { @@ -162,11 +162,11 @@ public class KzedMap extends MapType { public DynmapChunk[] getRequiredChunks(MapTile tile) { if (tile instanceof KzedMapTile) { KzedMapTile t = (KzedMapTile) tile; - + int ix = KzedMap.anchorx + t.px / 2 + t.py / 2; //int iy = 127; int iz = KzedMap.anchorz + t.px / 2 - t.py / 2; - + int x1 = ix - KzedMap.tileHeight / 2; int x2 = ix + KzedMap.tileWidth / 2 + KzedMap.tileHeight / 2; @@ -183,10 +183,10 @@ public class KzedMap extends MapType { * render path to y=0), correspond to ix-64, iz+64 to * ix,iz+128 to ix+64,iz+64 to ix,iz. Projection of * the prism on to the x,z plane (which is all that matters for - * chunks) yields a diagonal rectangular area from ix-64(x1),iz+64 - * to ix,iz+128(z2) to ix+128(x2),iz to ix+64,iz-64(z1). + * chunks) yields a diagonal rectangular area from ix-64(x1),iz+64 + * to ix,iz+128(z2) to ix+128(x2),iz to ix+64,iz-64(z1). * Chunks outside this are not needed - we scan a simple rectangle - * (chunk grid aligned) and skip adding the ones that are outside. + * (chunk grid aligned) and skip adding the ones that are outside. * This results in 42% less chunks being loaded. */ ArrayList chunks = new ArrayList(); @@ -211,7 +211,7 @@ public class KzedMap extends MapType { chunks.add(chunk); } } - + DynmapChunk[] result = new DynmapChunk[chunks.size()]; chunks.toArray(result); return result; diff --git a/src/main/java/org/dynmap/kzedmap/KzedMapTile.java b/src/main/java/org/dynmap/kzedmap/KzedMapTile.java index 3bab1245..78453ff2 100644 --- a/src/main/java/org/dynmap/kzedmap/KzedMapTile.java +++ b/src/main/java/org/dynmap/kzedmap/KzedMapTile.java @@ -9,7 +9,7 @@ public class KzedMapTile extends MapTile { public KzedMap map; public MapTileRenderer renderer; public int px, py; - + // Hack. public File file = null; diff --git a/src/main/java/org/dynmap/web/BoundInputStream.java b/src/main/java/org/dynmap/web/BoundInputStream.java index 66665f16..0cf9b54d 100644 --- a/src/main/java/org/dynmap/web/BoundInputStream.java +++ b/src/main/java/org/dynmap/web/BoundInputStream.java @@ -8,12 +8,12 @@ public class BoundInputStream extends InputStream { protected static final Logger log = Logger.getLogger("Minecraft"); private InputStream base; private long bound; - + public BoundInputStream(InputStream base, long bound) { this.base = base; this.bound = bound; } - + @Override public int read() throws IOException { if (bound <= 0) return -1; @@ -22,17 +22,17 @@ public class BoundInputStream extends InputStream { bound--; return r; } - + @Override public int available() throws IOException { return (int)Math.min(base.available(), bound); } - + @Override public boolean markSupported() { return false; } - + @Override public int read(byte[] b, int off, int len) throws IOException { if (bound <= 0) return -1; @@ -41,19 +41,19 @@ public class BoundInputStream extends InputStream { bound -= r; return r; } - + @Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); } - + @Override public long skip(long n) throws IOException { long r = base.skip(Math.min(bound, n)); bound -= r; return r; } - + @Override public void close() throws IOException { base.close(); diff --git a/src/main/java/org/dynmap/web/HttpRequest.java b/src/main/java/org/dynmap/web/HttpRequest.java index db25e396..a2cb2746 100644 --- a/src/main/java/org/dynmap/web/HttpRequest.java +++ b/src/main/java/org/dynmap/web/HttpRequest.java @@ -9,5 +9,5 @@ public class HttpRequest { public String path; public String version; public Map fields = new HashMap(); - public InputStream body; + public InputStream body; } diff --git a/src/main/java/org/dynmap/web/HttpResponse.java b/src/main/java/org/dynmap/web/HttpResponse.java index 102f249e..5b0c80b8 100644 --- a/src/main/java/org/dynmap/web/HttpResponse.java +++ b/src/main/java/org/dynmap/web/HttpResponse.java @@ -10,7 +10,7 @@ public class HttpResponse { public String version = "1.1"; public HttpStatus status = null; public Map fields = new HashMap(); - + private OutputStream body; public OutputStream getBody() throws IOException { if (body != null) { @@ -21,7 +21,7 @@ public class HttpResponse { } return null; } - + public HttpResponse(HttpServerConnection connection, OutputStream body) { this.connection = connection; this.body = body; diff --git a/src/main/java/org/dynmap/web/HttpServerConnection.java b/src/main/java/org/dynmap/web/HttpServerConnection.java index 6b6d2225..67a1ecb5 100644 --- a/src/main/java/org/dynmap/web/HttpServerConnection.java +++ b/src/main/java/org/dynmap/web/HttpServerConnection.java @@ -21,10 +21,10 @@ public class HttpServerConnection extends Thread { private static Pattern requestHeaderLine = Pattern.compile("^(\\S+)\\s+(\\S+)\\s+HTTP/(.+)$"); private static Pattern requestHeaderField = Pattern.compile("^([^:]+):\\s*(.+)$"); - + private Socket socket; private HttpServer server; - + private PrintStream printOut; private StringWriter sw = new StringWriter(); private Matcher requestHeaderLineMatcher; @@ -45,7 +45,7 @@ public class HttpServerConnection extends Thread { sw.append(c); } } - + private final String readLine(InputStream in) throws IOException { readLine(in, sw); String r = sw.toString(); @@ -55,16 +55,16 @@ public class HttpServerConnection extends Thread { private final boolean readRequestHeader(InputStream in, HttpRequest request) throws IOException { String statusLine = readLine(in); - + if (statusLine == null) return false; - + if (requestHeaderLineMatcher == null) { requestHeaderLineMatcher = requestHeaderLine.matcher(statusLine); } else { requestHeaderLineMatcher.reset(statusLine); } - + Matcher m = requestHeaderLineMatcher; if (!m.matches()) return false; @@ -79,7 +79,7 @@ public class HttpServerConnection extends Thread { } else { requestHeaderFieldMatcher.reset(line); } - + m = requestHeaderFieldMatcher; // Warning: unknown lines are ignored. if (m.matches()) { @@ -109,7 +109,7 @@ public class HttpServerConnection extends Thread { out.append("\r\n"); out.flush(); } - + public final void writeResponseHeader(HttpResponse response) throws IOException { writeResponseHeader(printOut, response); } @@ -121,16 +121,16 @@ public class HttpServerConnection extends Thread { socket.setSoTimeout(5000); InputStream in = socket.getInputStream(); BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream(), 40960); - + printOut = new PrintStream(out, false); while (true) { HttpRequest request = new HttpRequest(); - + if (!readRequestHeader(in, request)) { socket.close(); return; } - + long bound = -1; BoundInputStream boundBody = null; { @@ -166,9 +166,9 @@ public class HttpServerConnection extends Thread { socket.close(); return; } - + HttpResponse response = new HttpResponse(this, out); - + try { handler.handle(relativePath, request, response); } catch (IOException e) { @@ -187,9 +187,9 @@ public class HttpServerConnection extends Thread { //socket.close(); //return; } - + boolean isKeepalive = !"close".equals(request.fields.get(HttpField.Connection)) && !"close".equals(response.fields.get(HttpField.Connection)); - + String contentLength = response.fields.get("Content-Length"); if (isKeepalive && contentLength == null) { // A handler has been a bad boy, but we're here to fix it. diff --git a/src/main/java/org/dynmap/web/HttpStatus.java b/src/main/java/org/dynmap/web/HttpStatus.java index e4aaa3d6..efe5353f 100644 --- a/src/main/java/org/dynmap/web/HttpStatus.java +++ b/src/main/java/org/dynmap/web/HttpStatus.java @@ -3,20 +3,20 @@ package org.dynmap.web; public final class HttpStatus { private int code; private String text; - + public int getCode() { return code; } - + public String getText() { return text; } - + public HttpStatus(int code, String text) { this.code = code; this.text = text; } - + // Reference: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html public static final HttpStatus Continue = new HttpStatus(100, "Continue"); public static final HttpStatus SwitchingProtocols = new HttpStatus(101, "Switching Protocols"); diff --git a/src/main/java/org/dynmap/web/Json.java b/src/main/java/org/dynmap/web/Json.java index dd3a86a0..882b00fb 100644 --- a/src/main/java/org/dynmap/web/Json.java +++ b/src/main/java/org/dynmap/web/Json.java @@ -13,7 +13,7 @@ public class Json { appendJson(o, sb); return sb.toString(); } - + public static void appendJson(Object o, StringBuilder s) { if (o == null) { s.append("null"); @@ -59,7 +59,7 @@ public class Json { } else if (o instanceof Object) /* TODO: Always true, maybe interface? */ { s.append("{"); boolean first = true; - + Class c = o.getClass(); for(Field field : c.getFields()) { if (!Modifier.isPublic(field.getModifiers())) @@ -73,7 +73,7 @@ public class Json { } catch (IllegalAccessException e) { continue; } - + if (first) first = false; else diff --git a/src/main/java/org/dynmap/web/handlers/ClientConfigurationHandler.java b/src/main/java/org/dynmap/web/handlers/ClientConfigurationHandler.java index 52c5591b..56edb4c1 100644 --- a/src/main/java/org/dynmap/web/handlers/ClientConfigurationHandler.java +++ b/src/main/java/org/dynmap/web/handlers/ClientConfigurationHandler.java @@ -20,18 +20,18 @@ public class ClientConfigurationHandler implements HttpHandler { public void handle(String path, HttpRequest request, HttpResponse response) throws Exception { if (cachedConfiguration == null) { String s = Json.stringifyJson(configuration); - + cachedConfiguration = s.getBytes(); } String dateStr = new Date().toString(); - + response.fields.put("Date", dateStr); response.fields.put("Content-Type", "text/plain"); response.fields.put("Expires", "Thu, 01 Dec 1994 16:00:00 GMT"); response.fields.put("Last-modified", dateStr); response.fields.put("Content-Length", Integer.toString(cachedConfiguration.length)); response.status = HttpStatus.OK; - + BufferedOutputStream out = null; out = new BufferedOutputStream(response.getBody()); out.write(cachedConfiguration); diff --git a/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java b/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java index 09d57459..d123f1a8 100644 --- a/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java +++ b/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java @@ -31,26 +31,26 @@ public class ClientUpdateHandler implements HttpHandler { } Pattern updatePathPattern = Pattern.compile("world/([^/]+)/([0-9]*)"); - private static final HttpStatus WorldNotFound = new HttpStatus(HttpStatus.NotFound.getCode(), "World Not Found"); + private static final HttpStatus WorldNotFound = new HttpStatus(HttpStatus.NotFound.getCode(), "World Not Found"); @Override public void handle(String path, HttpRequest request, HttpResponse response) throws Exception { - + Matcher match = updatePathPattern.matcher(path); - + if (!match.matches()) { response.status = HttpStatus.Forbidden; return; } - + String worldName = match.group(1); String timeKey = match.group(2); - + World world = server.getWorld(worldName); if (world == null) { response.status = WorldNotFound; return; } - + long current = System.currentTimeMillis(); long since = 0; @@ -60,14 +60,14 @@ public class ClientUpdateHandler implements HttpHandler { } catch (NumberFormatException e) { } } - + Client.Update update = new Client.Update(); update.timestamp = current; update.servertime = world.getTime() % 24000; update.hasStorm = world.hasStorm(); update.isThundering = world.isThundering(); - - + + Player[] players = playerList.getVisiblePlayers(); update.players = new Client.Player[players.length]; for(int i=0;i 0) return path.substring(dotindex); return null; } - + protected final String formatPath(String path) { int qmark = path.indexOf('?'); if (qmark >= 0) @@ -54,11 +54,11 @@ public abstract class FileHandler implements HttpHandler { path = getDefaultFilename(path); return path; } - + protected String getDefaultFilename(String path) { return path + "index.html"; } - + @Override public void handle(String path, HttpRequest request, HttpResponse response) throws Exception { InputStream fileInput = null; @@ -69,10 +69,10 @@ public abstract class FileHandler implements HttpHandler { response.status = HttpStatus.NotFound; return; } - + String extension = getExtension(path); String mimeType = getMimeTypeFromExtension(extension); - + response.fields.put(HttpField.ContentType, mimeType); response.status = HttpStatus.OK; OutputStream out = response.getBody(); diff --git a/src/main/java/org/dynmap/web/handlers/FilesystemHandler.java b/src/main/java/org/dynmap/web/handlers/FilesystemHandler.java index 9ad5a3dc..fa630c37 100644 --- a/src/main/java/org/dynmap/web/handlers/FilesystemHandler.java +++ b/src/main/java/org/dynmap/web/handlers/FilesystemHandler.java @@ -32,4 +32,4 @@ public class FilesystemHandler extends FileHandler { } return null; } -} \ No newline at end of file +} diff --git a/src/main/java/org/dynmap/web/handlers/JarFileHandler.java b/src/main/java/org/dynmap/web/handlers/JarFileHandler.java index abcb8e56..c822fa59 100644 --- a/src/main/java/org/dynmap/web/handlers/JarFileHandler.java +++ b/src/main/java/org/dynmap/web/handlers/JarFileHandler.java @@ -16,4 +16,4 @@ public class JarFileHandler extends FileHandler { protected InputStream getFileInput(String path, HttpRequest request, HttpResponse response) { return this.getClass().getResourceAsStream(root + "/" + path); } -} \ No newline at end of file +} diff --git a/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java b/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java index 5f7d257a..6c6294fd 100644 --- a/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java +++ b/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java @@ -17,16 +17,16 @@ import org.json.simple.parser.JSONParser; public class SendMessageHandler implements HttpHandler { protected static final Logger log = Logger.getLogger("Minecraft"); - + private static final JSONParser parser = new JSONParser(); public Event onMessageReceived = new Event(); - + public int maximumMessageInterval = 1000; public String spamMessage = "\"You may only chat once every %interval% seconds.\""; private HashMap disallowedUsers = new HashMap(); private LinkedList disallowedUserQueue = new LinkedList(); private Object disallowedUsersLock = new Object(); - + @Override public void handle(String path, HttpRequest request, HttpResponse response) throws Exception { if (!request.method.equals(HttpMethod.Post)) { @@ -36,14 +36,14 @@ public class SendMessageHandler implements HttpHandler { } InputStreamReader reader = new InputStreamReader(request.body); - + JSONObject o = (JSONObject)parser.parse(reader); final Message message = new Message(); message.name = String.valueOf(o.get("name")); message.message = String.valueOf(o.get("message")); final long now = System.currentTimeMillis(); - + synchronized(disallowedUsersLock) { // Allow users that user that are now allowed to send messages. while (!disallowedUserQueue.isEmpty()) { @@ -55,7 +55,7 @@ public class SendMessageHandler implements HttpHandler { break; } } - + WebUser user = disallowedUsers.get(message.name); if (user == null) { user = new WebUser() {{ @@ -71,14 +71,14 @@ public class SendMessageHandler implements HttpHandler { return; } } - + onMessageReceived.trigger(message); - + response.fields.put(HttpField.ContentLength, "0"); response.status = HttpStatus.OK; response.getBody(); } - + public static class Message { public String name; public String message; From b804aa72f83aefd113daf37c872e2598b42dcb85 Mon Sep 17 00:00:00 2001 From: zeeZ Date: Tue, 17 May 2011 00:38:26 +0200 Subject: [PATCH 07/11] Fix error if no render triggers are defined. --- src/main/java/org/dynmap/DynmapPlugin.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/dynmap/DynmapPlugin.java b/src/main/java/org/dynmap/DynmapPlugin.java index d719aef3..fedbdfe1 100644 --- a/src/main/java/org/dynmap/DynmapPlugin.java +++ b/src/main/java/org/dynmap/DynmapPlugin.java @@ -110,8 +110,12 @@ public class DynmapPlugin extends JavaPlugin { hchand = new HeroChatHandler(configuration, this, getServer()); enabledTriggers.clear(); - for (Object trigger : configuration.getList("render-triggers")) { - enabledTriggers.add((String) trigger); + List triggers = configuration.getList("render-triggers"); + if (triggers != null) + { + for (Object trigger : triggers) { + enabledTriggers.add((String) trigger); + } } registerEvents(); From 70dead3fb9c3223fa78bf4c39c44f91ed15fab97 Mon Sep 17 00:00:00 2001 From: zeeZ Date: Tue, 17 May 2011 00:53:31 +0200 Subject: [PATCH 08/11] Added chunkloaded trigger to config --- configuration.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration.txt b/configuration.txt index 20e94a60..196f588f 100644 --- a/configuration.txt +++ b/configuration.txt @@ -10,6 +10,7 @@ renderinterval: 1 renderonsync: true render-triggers: +# - chunkloaded # - playermove # - playerjoin - blockplaced From ccbd6bf45ee4801e4c39187adf973fdecc8068eb Mon Sep 17 00:00:00 2001 From: zeeZ Date: Tue, 17 May 2011 02:38:49 +0200 Subject: [PATCH 09/11] Prefix all (intentional) output properly. --- .../java/org/dynmap/AsynchronousQueue.java | 9 ++++---- src/main/java/org/dynmap/ColorScheme.java | 5 +++-- src/main/java/org/dynmap/DynmapPlugin.java | 15 ++++++------- src/main/java/org/dynmap/HeroChatHandler.java | 13 ++++++------ src/main/java/org/dynmap/JsonTimerTask.java | 13 ++++++------ src/main/java/org/dynmap/MapManager.java | 21 ++++++++++--------- .../java/org/dynmap/debug/LogDebugger.java | 8 +++---- src/main/java/org/dynmap/kzedmap/KzedMap.java | 3 ++- .../java/org/dynmap/web/BoundInputStream.java | 1 + src/main/java/org/dynmap/web/HttpServer.java | 13 ++++++------ .../org/dynmap/web/HttpServerConnection.java | 5 +++-- .../org/dynmap/web/handlers/FileHandler.java | 1 + .../web/handlers/SendMessageHandler.java | 1 + 13 files changed, 60 insertions(+), 48 deletions(-) diff --git a/src/main/java/org/dynmap/AsynchronousQueue.java b/src/main/java/org/dynmap/AsynchronousQueue.java index e376c8bc..828ceffb 100644 --- a/src/main/java/org/dynmap/AsynchronousQueue.java +++ b/src/main/java/org/dynmap/AsynchronousQueue.java @@ -9,6 +9,7 @@ import java.util.logging.Logger; public class AsynchronousQueue { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private Object lock = new Object(); private Thread thread; @@ -62,7 +63,7 @@ public class AsynchronousQueue { try { thread.setPriority(Thread.MIN_PRIORITY); } catch (SecurityException e) { - log.info("Failed to set minimum priority for worker thread!"); + log.info(LOG_PREFIX + "Failed to set minimum priority for worker thread!"); } } } @@ -74,13 +75,13 @@ public class AsynchronousQueue { Thread oldThread = thread; thread = null; - log.info("Stopping map renderer..."); + log.info(LOG_PREFIX + "Stopping map renderer..."); oldThread.interrupt(); try { oldThread.join(1000); } catch (InterruptedException e) { - log.info("Waiting for map renderer to stop is interrupted"); + log.info(LOG_PREFIX + "Waiting for map renderer to stop is interrupted"); } } } @@ -96,7 +97,7 @@ public class AsynchronousQueue { } } catch (Exception ex) { - log.log(Level.SEVERE, "Exception on rendering-thread", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception on rendering-thread", ex); } } diff --git a/src/main/java/org/dynmap/ColorScheme.java b/src/main/java/org/dynmap/ColorScheme.java index 7c0ae59f..64380681 100644 --- a/src/main/java/org/dynmap/ColorScheme.java +++ b/src/main/java/org/dynmap/ColorScheme.java @@ -14,6 +14,7 @@ import org.dynmap.debug.Debug; public class ColorScheme { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private static final HashMap cache = new HashMap(); public String name; @@ -115,10 +116,10 @@ public class ColorScheme { } } } catch (RuntimeException e) { - log.log(Level.SEVERE, "Could not load colors '" + name + "' ('" + colorSchemeFile + "').", e); + log.log(Level.SEVERE, LOG_PREFIX + "Could not load colors '" + name + "' ('" + colorSchemeFile + "').", e); return null; } catch (FileNotFoundException e) { - log.log(Level.SEVERE, "Could not load colors '" + name + "' ('" + colorSchemeFile + "'): File not found.", e); + log.log(Level.SEVERE, LOG_PREFIX + "Could not load colors '" + name + "' ('" + colorSchemeFile + "'): File not found.", e); } return new ColorScheme(name, colors, datacolors); } diff --git a/src/main/java/org/dynmap/DynmapPlugin.java b/src/main/java/org/dynmap/DynmapPlugin.java index fedbdfe1..3d8ccdc7 100644 --- a/src/main/java/org/dynmap/DynmapPlugin.java +++ b/src/main/java/org/dynmap/DynmapPlugin.java @@ -51,6 +51,7 @@ import org.dynmap.web.handlers.SendMessageHandler; public class DynmapPlugin extends JavaPlugin { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; public HttpServer webServer = null; public MapManager mapManager = null; @@ -87,7 +88,7 @@ public class DynmapPlugin extends JavaPlugin { tilesDirectory = getFile(configuration.getString("tilespath", "web/tiles")); if (!tilesDirectory.isDirectory() && !tilesDirectory.mkdirs()) { - log.warning("Could not create directory for tiles ('" + tilesDirectory + "')."); + log.warning(LOG_PREFIX + "Could not create directory for tiles ('" + tilesDirectory + "')."); } playerList = new PlayerList(getServer(), getFile("hiddenplayers.txt"), configuration); @@ -122,7 +123,7 @@ public class DynmapPlugin extends JavaPlugin { /* Print version info */ PluginDescriptionFile pdfFile = this.getDescription(); - log.info("[dynmap] version " + pdfFile.getVersion() + " is enabled" ); + log.info(LOG_PREFIX + "version " + pdfFile.getVersion() + " is enabled" ); } public void loadWebserver() { @@ -163,7 +164,7 @@ public class DynmapPlugin extends JavaPlugin { try { webServer.startServer(); } catch (IOException e) { - log.severe("Failed to start WebServer on " + bindAddress + ":" + port + "!"); + log.severe(LOG_PREFIX + "Failed to start WebServer on " + bindAddress + ":" + port + "!"); } } @@ -294,7 +295,7 @@ public class DynmapPlugin extends JavaPlugin { Debugger debugger = (Debugger) constructor.newInstance(this, debuggerConfigurationMap); Debug.addDebugger(debugger); } catch (Exception e) { - log.severe("Error loading debugger: " + e); + log.severe(LOG_PREFIX + "Error loading debugger: " + e); e.printStackTrace(); continue; } @@ -402,15 +403,15 @@ public class DynmapPlugin extends JavaPlugin { fos.write(Json.stringifyJson(clientConfig).getBytes()); fos.close(); } catch (FileNotFoundException ex) { - log.log(Level.SEVERE, "Exception while writing JSON-configuration-file.", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while writing JSON-configuration-file.", ex); } catch (IOException ioe) { - log.log(Level.SEVERE, "Exception while writing JSON-configuration-file.", ioe); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while writing JSON-configuration-file.", ioe); } } public void webChat(String name, String message) { mapManager.pushUpdate(new Client.ChatMessage("web", name, message)); - log.info("[WEB]" + name + ": " + message); + log.info(LOG_PREFIX + "[WEB]" + name + ": " + message); /* Let HeroChat take a look - only broadcast to players if it doesn't handle it */ if(hchand.sendWebMessageToHeroChat(name, message) == false) getServer().broadcastMessage("[WEB]" + name + ": " + message); diff --git a/src/main/java/org/dynmap/HeroChatHandler.java b/src/main/java/org/dynmap/HeroChatHandler.java index 59243367..78648d51 100644 --- a/src/main/java/org/dynmap/HeroChatHandler.java +++ b/src/main/java/org/dynmap/HeroChatHandler.java @@ -15,6 +15,7 @@ import java.lang.reflect.Method; public class HeroChatHandler { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private static final String DEF_CHANNEL = "Global"; private static final List DEF_CHANNELS = Collections @@ -156,7 +157,7 @@ public class HeroChatHandler { isgood = true; } catch (ClassNotFoundException cnfx) { } catch (NoSuchMethodException nsmx) { - System.out.println(nsmx); + log.severe(LOG_PREFIX + nsmx); } return isgood; } @@ -229,7 +230,7 @@ public class HeroChatHandler { public HeroChatHandler(Configuration cfg, DynmapPlugin plugin, Server server) { /* If we're enabling hero chat support */ if (cfg.getNode("web").getBoolean("enableherochat", false)) { - log.info("[dynmap] HeroChat support configured"); + log.info(LOG_PREFIX + "HeroChat support configured"); this.plugin = plugin; /* Now, get the monitored channel list */ hcchannels = cfg.getNode("web").getStringList("herochatchannels", @@ -245,22 +246,22 @@ public class HeroChatHandler { private void activateHeroChat(Plugin herochat) { if (HeroChatChannelChatEvent.initialize() == false) { - log.severe("[dynmap] Cannot load HeroChat chat event class!"); + log.severe(LOG_PREFIX + "Cannot load HeroChat chat event class!"); return; } if (HeroChatChannel.initialize() == false) { - log.severe("[dynmap] Cannot load HeroChat channel class!"); + log.severe(LOG_PREFIX + "Cannot load HeroChat channel class!"); return; } if (HeroChatChannelEvent.initialize() == false) { - log.severe("[dynmap] Cannot load HeroChat channel event class!"); + log.severe(LOG_PREFIX + "Cannot load HeroChat channel event class!"); return; } /* Register event handler */ plugin.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, new OurEventListener(), Event.Priority.Monitor, plugin); - log.info("[dynmap] HeroChat integration active"); + log.info(LOG_PREFIX + "HeroChat integration active"); } /** * Send message from web to appropriate HeroChat channel diff --git a/src/main/java/org/dynmap/JsonTimerTask.java b/src/main/java/org/dynmap/JsonTimerTask.java index 5e829182..bd5f9841 100644 --- a/src/main/java/org/dynmap/JsonTimerTask.java +++ b/src/main/java/org/dynmap/JsonTimerTask.java @@ -25,6 +25,7 @@ import org.json.simple.parser.ParseException; class JsonTimerTask extends TimerTask { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private final DynmapPlugin plugin; private Server server; @@ -66,9 +67,9 @@ class JsonTimerTask extends TimerTask { jsonMsgs = (JSONArray) parser.parse(inputFileReader); inputFileReader.close(); } catch (IOException ex) { - log.log(Level.SEVERE, "Exception while reading JSON-file.", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while reading JSON-file.", ex); } catch (ParseException ex) { - log.log(Level.SEVERE, "Exception while parsing JSON-file.", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while parsing JSON-file.", ex); } if (jsonMsgs != null) { @@ -120,9 +121,9 @@ class JsonTimerTask extends TimerTask { fos.write(Json.stringifyJson(update).getBytes()); fos.close(); } catch (FileNotFoundException ex) { - log.log(Level.SEVERE, "Exception while writing JSON-file.", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while writing JSON-file.", ex); } catch (IOException ioe) { - log.log(Level.SEVERE, "Exception while writing JSON-file.", ioe); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while writing JSON-file.", ioe); } } lastTimestamp = System.currentTimeMillis(); @@ -166,9 +167,9 @@ class JsonTimerTask extends TimerTask { fos.write(Json.stringifyJson(regionData).getBytes()); fos.close(); } catch (FileNotFoundException ex) { - log.log(Level.SEVERE, "Exception while writing JSON-file.", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while writing JSON-file.", ex); } catch (IOException ioe) { - log.log(Level.SEVERE, "Exception while writing JSON-file.", ioe); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while writing JSON-file.", ioe); } } } diff --git a/src/main/java/org/dynmap/MapManager.java b/src/main/java/org/dynmap/MapManager.java index a5eab8c6..044c5a08 100644 --- a/src/main/java/org/dynmap/MapManager.java +++ b/src/main/java/org/dynmap/MapManager.java @@ -30,6 +30,7 @@ import org.bukkit.Chunk; public class MapManager { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; public AsynchronousQueue tileQueue; public AsynchronousQueue writeQueue; @@ -88,7 +89,7 @@ public class MapManager { rendered.clear(); map_index++; /* Next map */ if(map_index >= world.maps.size()) { /* Last one done? */ - log.info("Full render finished."); + log.info(LOG_PREFIX + "Full render finished."); active_renders.remove(world.world.getName()); return; } @@ -213,27 +214,27 @@ public class MapManager { void renderFullWorld(Location l) { DynmapWorld world = worlds.get(l.getWorld().getName()); if (world == null) { - log.severe("Could not render: world '" + l.getWorld().getName() + "' not defined in configuration."); + log.severe(LOG_PREFIX + "Could not render: world '" + l.getWorld().getName() + "' not defined in configuration."); return; } if(do_timesliced_render) { String wname = l.getWorld().getName(); FullWorldRenderState rndr = active_renders.get(wname); if(rndr != null) { - log.info("Full world render of world '" + wname + "' already active."); + log.info(LOG_PREFIX + "Full world render of world '" + wname + "' already active."); return; } rndr = new FullWorldRenderState(world,l); /* Make new activation record */ active_renders.put(wname, rndr); /* Add to active table */ /* Schedule first tile to be worked */ scheduler.scheduleSyncDelayedTask(plug_in, rndr, (int)(timeslice_interval*20)); - log.info("Full render starting on world '" + wname + "' (timesliced)..."); + log.info(LOG_PREFIX + "Full render starting on world '" + wname + "' (timesliced)..."); return; } World w = world.world; - log.info("Full render starting on world '" + w.getName() + "'..."); + log.info(LOG_PREFIX + "Full render starting on world '" + w.getName() + "'..."); for (MapType map : world.maps) { int requiredChunkCount = 200; HashSet found = new HashSet(); @@ -287,7 +288,7 @@ public class MapManager { w.unloadChunk(c.x, c.z, false, true); } } - log.info("Full render finished."); + log.info(LOG_PREFIX + "Full render finished."); } public void activateWorld(World w) { @@ -300,7 +301,7 @@ public class MapManager { if (world != null) { world.world = w; worlds.put(w.getName(), world); - log.info("Activated world '" + w.getName() + "' in Dynmap."); + log.info(LOG_PREFIX + "Activated world '" + w.getName() + "' in Dynmap."); } } @@ -317,14 +318,14 @@ public class MapManager { @SuppressWarnings("unchecked") Map configuredMap = (Map) configuredMapObj; String typeName = (String) configuredMap.get("class"); - log.info("Loading map '" + typeName.toString() + "'..."); + log.info(LOG_PREFIX + "Loading map '" + typeName.toString() + "'..."); Class mapTypeClass = Class.forName(typeName); Constructor constructor = mapTypeClass.getConstructor(Map.class); MapType mapType = (MapType) constructor.newInstance(configuredMap); mapType.onTileInvalidated.addListener(invalitateListener); mapTypes.add(mapType); } catch (Exception e) { - log.log(Level.SEVERE, "Error loading maptype", e); + log.log(Level.SEVERE, LOG_PREFIX + "Error loading maptype", e); e.printStackTrace(); } } @@ -379,7 +380,7 @@ public class MapManager { worldTileDirectories.put(world, worldTileDirectory); } if (!worldTileDirectory.isDirectory() && !worldTileDirectory.mkdirs()) { - log.warning("Could not create directory for tiles ('" + worldTileDirectory + "')."); + log.warning(LOG_PREFIX + "Could not create directory for tiles ('" + worldTileDirectory + "')."); } return new File(worldTileDirectory, tile.getFilename()); } diff --git a/src/main/java/org/dynmap/debug/LogDebugger.java b/src/main/java/org/dynmap/debug/LogDebugger.java index 3c5911a8..b5c52dd8 100644 --- a/src/main/java/org/dynmap/debug/LogDebugger.java +++ b/src/main/java/org/dynmap/debug/LogDebugger.java @@ -8,24 +8,24 @@ import org.bukkit.plugin.java.JavaPlugin; public class LogDebugger implements Debugger { protected static final Logger log = Logger.getLogger("Minecraft"); - private static String prepend = "dynmap: "; + protected static final String LOG_PREFIX = "[dynmap] "; public LogDebugger(JavaPlugin plugin, Map configuration) { } @Override public void debug(String message) { - log.info(prepend + message); + log.info(LOG_PREFIX + message); } @Override public void error(String message) { - log.log(Level.SEVERE, prepend + message); + log.log(Level.SEVERE, LOG_PREFIX + message); } @Override public void error(String message, Throwable thrown) { - log.log(Level.SEVERE, prepend + message); + log.log(Level.SEVERE, LOG_PREFIX + message); thrown.printStackTrace(); } diff --git a/src/main/java/org/dynmap/kzedmap/KzedMap.java b/src/main/java/org/dynmap/kzedmap/KzedMap.java index 7da79a28..f963c703 100644 --- a/src/main/java/org/dynmap/kzedmap/KzedMap.java +++ b/src/main/java/org/dynmap/kzedmap/KzedMap.java @@ -16,6 +16,7 @@ import org.dynmap.debug.Debug; public class KzedMap extends MapType { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; /* dimensions of a map tile */ public static final int tileWidth = 128; @@ -49,7 +50,7 @@ public class KzedMap extends MapType { @SuppressWarnings("unchecked") Map configuredRenderer = (Map) configuredRendererObj; String typeName = (String) configuredRenderer.get("class"); - log.info("Loading renderer '" + typeName.toString() + "'..."); + log.info(LOG_PREFIX + "Loading renderer '" + typeName.toString() + "'..."); Class mapTypeClass = Class.forName(typeName); Constructor constructor = mapTypeClass.getConstructor(Map.class); MapTileRenderer mapTileRenderer = (MapTileRenderer) constructor.newInstance(configuredRenderer); diff --git a/src/main/java/org/dynmap/web/BoundInputStream.java b/src/main/java/org/dynmap/web/BoundInputStream.java index 0cf9b54d..9292dd85 100644 --- a/src/main/java/org/dynmap/web/BoundInputStream.java +++ b/src/main/java/org/dynmap/web/BoundInputStream.java @@ -6,6 +6,7 @@ import java.util.logging.Logger; public class BoundInputStream extends InputStream { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private InputStream base; private long bound; diff --git a/src/main/java/org/dynmap/web/HttpServer.java b/src/main/java/org/dynmap/web/HttpServer.java index 5b3f148b..1a0bbb6f 100644 --- a/src/main/java/org/dynmap/web/HttpServer.java +++ b/src/main/java/org/dynmap/web/HttpServer.java @@ -12,6 +12,7 @@ import java.util.logging.Logger; public class HttpServer extends Thread { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private ServerSocket sock = null; private Thread listeningThread; @@ -30,7 +31,7 @@ public class HttpServer extends Thread { sock = new ServerSocket(port, 5, bindAddress); listeningThread = this; start(); - log.info("Dynmap WebServer started on " + bindAddress + ":" + port); + log.info(LOG_PREFIX + "Dynmap WebServer started on " + bindAddress + ":" + port); } public void run() { @@ -41,24 +42,24 @@ public class HttpServer extends Thread { HttpServerConnection requestThread = new HttpServerConnection(socket, this); requestThread.start(); } catch (IOException e) { - log.info("map WebServer.run() stops with IOException"); + log.info(LOG_PREFIX + "map WebServer.run() stops with IOException"); break; } } - log.info("Webserver shut down."); + log.info(LOG_PREFIX + "Webserver shut down."); } catch (Exception ex) { - log.log(Level.SEVERE, "Exception on WebServer-thread", ex); + log.log(Level.SEVERE, LOG_PREFIX + "Exception on WebServer-thread", ex); } } public void shutdown() { - log.info("Shutting down webserver..."); + log.info(LOG_PREFIX + "Shutting down webserver..."); try { if (sock != null) { sock.close(); } } catch (IOException e) { - log.log(Level.INFO, "Exception while closing socket for webserver shutdown", e); + log.log(Level.INFO, LOG_PREFIX + "Exception while closing socket for webserver shutdown", e); } listeningThread = null; } diff --git a/src/main/java/org/dynmap/web/HttpServerConnection.java b/src/main/java/org/dynmap/web/HttpServerConnection.java index 67a1ecb5..0f7c8036 100644 --- a/src/main/java/org/dynmap/web/HttpServerConnection.java +++ b/src/main/java/org/dynmap/web/HttpServerConnection.java @@ -18,6 +18,7 @@ import org.dynmap.debug.Debug; public class HttpServerConnection extends Thread { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private static Pattern requestHeaderLine = Pattern.compile("^(\\S+)\\s+(\\S+)\\s+HTTP/(.+)$"); private static Pattern requestHeaderField = Pattern.compile("^([^:]+):\\s*(.+)$"); @@ -174,7 +175,7 @@ public class HttpServerConnection extends Thread { } catch (IOException e) { throw e; } catch (Exception e) { - log.log(Level.SEVERE, "HttpHandler '" + handler + "' has thown an exception", e); + log.log(Level.SEVERE, LOG_PREFIX + "HttpHandler '" + handler + "' has thown an exception", e); if (socket != null) { out.flush(); socket.close(); @@ -228,7 +229,7 @@ public class HttpServerConnection extends Thread { } catch (IOException ex) { } } - log.log(Level.SEVERE, "Exception while handling request: ", e); + log.log(Level.SEVERE, LOG_PREFIX + "Exception while handling request: ", e); e.printStackTrace(); return; } diff --git a/src/main/java/org/dynmap/web/handlers/FileHandler.java b/src/main/java/org/dynmap/web/handlers/FileHandler.java index 8f51fc6c..07181e24 100644 --- a/src/main/java/org/dynmap/web/handlers/FileHandler.java +++ b/src/main/java/org/dynmap/web/handlers/FileHandler.java @@ -15,6 +15,7 @@ import org.dynmap.web.HttpStatus; public abstract class FileHandler implements HttpHandler { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private byte[] readBuffer = new byte[40960]; private static Map mimes = new HashMap(); diff --git a/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java b/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java index 6c6294fd..2f5ab721 100644 --- a/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java +++ b/src/main/java/org/dynmap/web/handlers/SendMessageHandler.java @@ -17,6 +17,7 @@ import org.json.simple.parser.JSONParser; public class SendMessageHandler implements HttpHandler { protected static final Logger log = Logger.getLogger("Minecraft"); + protected static final String LOG_PREFIX = "[dynmap] "; private static final JSONParser parser = new JSONParser(); public Event onMessageReceived = new Event(); From 17ba0d4d000cdc05b6256e8b5c6002d7eb563586 Mon Sep 17 00:00:00 2001 From: zeeZ Date: Tue, 17 May 2011 02:43:25 +0200 Subject: [PATCH 10/11] Organize imports. --- src/main/java/org/dynmap/ColorScheme.java | 1 - src/main/java/org/dynmap/HeroChatHandler.java | 10 +++++----- src/main/java/org/dynmap/MapManager.java | 11 +---------- src/main/java/org/dynmap/flat/FlatMap.java | 2 +- .../java/org/dynmap/kzedmap/CaveTileRenderer.java | 2 +- .../java/org/dynmap/kzedmap/DefaultTileRenderer.java | 4 +--- .../org/dynmap/kzedmap/HighlightTileRenderer.java | 2 +- 7 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/dynmap/ColorScheme.java b/src/main/java/org/dynmap/ColorScheme.java index 64380681..dc32a1ae 100644 --- a/src/main/java/org/dynmap/ColorScheme.java +++ b/src/main/java/org/dynmap/ColorScheme.java @@ -1,6 +1,5 @@ package org.dynmap; -import org.dynmap.Color; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; diff --git a/src/main/java/org/dynmap/HeroChatHandler.java b/src/main/java/org/dynmap/HeroChatHandler.java index 78648d51..e764e091 100644 --- a/src/main/java/org/dynmap/HeroChatHandler.java +++ b/src/main/java/org/dynmap/HeroChatHandler.java @@ -1,17 +1,17 @@ package org.dynmap; +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.List; import java.util.logging.Logger; import org.bukkit.Server; import org.bukkit.event.CustomEventListener; -import org.bukkit.plugin.Plugin; -import org.bukkit.util.config.Configuration; import org.bukkit.event.Event; import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.event.server.ServerListener; -import java.util.List; -import java.util.Collections; -import java.lang.reflect.Method; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.config.Configuration; public class HeroChatHandler { protected static final Logger log = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/dynmap/MapManager.java b/src/main/java/org/dynmap/MapManager.java index 044c5a08..285e29b3 100644 --- a/src/main/java/org/dynmap/MapManager.java +++ b/src/main/java/org/dynmap/MapManager.java @@ -1,8 +1,6 @@ package org.dynmap; import java.io.File; -import java.io.IOException; -import java.awt.image.BufferedImage; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.HashMap; @@ -12,21 +10,14 @@ import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.HashMap; -import javax.imageio.ImageIO; -import org.dynmap.kzedmap.KzedMapTile; +import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.util.config.ConfigurationNode; -import org.dynmap.DynmapWorld; -import org.dynmap.MapTile; import org.dynmap.debug.Debug; -import org.dynmap.kzedmap.KzedMap; -import org.dynmap.kzedmap.KzedZoomedMapTile; -import org.bukkit.Chunk; public class MapManager { protected static final Logger log = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/dynmap/flat/FlatMap.java b/src/main/java/org/dynmap/flat/FlatMap.java index f509cef5..895c46be 100644 --- a/src/main/java/org/dynmap/flat/FlatMap.java +++ b/src/main/java/org/dynmap/flat/FlatMap.java @@ -1,6 +1,5 @@ package org.dynmap.flat; -import org.dynmap.Color; import java.awt.image.BufferedImage; import java.awt.image.WritableRaster; import java.io.File; @@ -13,6 +12,7 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.World.Environment; import org.dynmap.Client; +import org.dynmap.Color; import org.dynmap.ColorScheme; import org.dynmap.DynmapChunk; import org.dynmap.MapManager; diff --git a/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java b/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java index 142c4e86..80b3fdc1 100644 --- a/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/CaveTileRenderer.java @@ -1,9 +1,9 @@ package org.dynmap.kzedmap; -import org.dynmap.Color; import java.util.Map; import org.bukkit.World; +import org.dynmap.Color; public class CaveTileRenderer extends DefaultTileRenderer { diff --git a/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java b/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java index 3ad9e98f..da514443 100644 --- a/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java @@ -1,6 +1,5 @@ package org.dynmap.kzedmap; -import org.dynmap.Color; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; @@ -12,13 +11,12 @@ import java.util.Map; import javax.imageio.ImageIO; -import org.bukkit.Material; import org.bukkit.World; import org.bukkit.World.Environment; import org.dynmap.Client; +import org.dynmap.Color; import org.dynmap.ColorScheme; import org.dynmap.MapManager; -import org.dynmap.MapTile; import org.dynmap.debug.Debug; public class DefaultTileRenderer implements MapTileRenderer { diff --git a/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java b/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java index 30fa8db6..c4e9567e 100644 --- a/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/HighlightTileRenderer.java @@ -1,11 +1,11 @@ package org.dynmap.kzedmap; -import org.dynmap.Color; import java.util.HashSet; import java.util.List; import java.util.Map; import org.bukkit.World; +import org.dynmap.Color; public class HighlightTileRenderer extends DefaultTileRenderer { protected HashSet highlightBlocks = new HashSet(); From d840b0796044b693265613f13948f073dfabbc2c Mon Sep 17 00:00:00 2001 From: zeeZ Date: Tue, 17 May 2011 11:30:06 +0200 Subject: [PATCH 11/11] Organize imports. --- src/main/java/org/dynmap/web/handlers/FileHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/web/handlers/FileHandler.java b/src/main/java/org/dynmap/web/handlers/FileHandler.java index 327808ff..9c6a2daa 100644 --- a/src/main/java/org/dynmap/web/handlers/FileHandler.java +++ b/src/main/java/org/dynmap/web/handlers/FileHandler.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; +import java.util.LinkedList; import java.util.Map; import java.util.logging.Logger; @@ -12,7 +13,6 @@ import org.dynmap.web.HttpHandler; import org.dynmap.web.HttpRequest; import org.dynmap.web.HttpResponse; import org.dynmap.web.HttpStatus; -import java.util.LinkedList; public abstract class FileHandler implements HttpHandler { protected static final Logger log = Logger.getLogger("Minecraft");