SnowControl
Makes snow more "real" and configurable, by allowing it to fall "through" leaves (and any other object you want), in addition to allowing snow to accumulate and melt.
Also, when breaking a block with snow on it, the snow will "fall" (similar to sand or gravel) and pile up on any snow that's underneath.
Snow will only accumulate while it's snowing, and can pile up as much as you want.
Snow will also melt (configurable) during the day if it's not snowing. It can melt down to one layer (default), or down to nothing.

WARNING
This plugin is very CPU intensive, and if you have a very large server with many players always on, this plugin may cause lag. Also, if your server hardware is old and out dated it may also have issues running this plugin. Having said this, my real server where this is running is a Dual core Xeon @ 3.00GHz with 4GB ram, and haven't had any issues.
Installation
Download jar and place it in your plugins folder. (http://wiki.bukkit.org/Installing_Plugins)
There is always a development version HERE. Please keep in mind that this build may not be working 100%, or even tested, use at your own risk.
Commands/Permissions
commands: snowcontrol: description: Primary command for SnowControl. aliases: [sc] usage: - /<command> reload - Force the plugin to reload the config file. - /<command> addReplace - Adds next clicked block to 'CanReplace' list. - /<command> addAccum - Adds next clicked block to 'CanAccumulateOn' list. - /<command> addFall - Adds next clicked block to 'CanFallThrough' list. permissions: snowcontrol.reload: description: Force the plugin to reload the config file. default: op snowcontrol.addReplace: description: Adds next clicked block to 'CanReplace' list. default: op snowcontrol.addAccum: description: Adds next clicked block to 'CanAccumulateOn' list. default: op snowcontrol.addFall: description: Adds next clicked block to 'CanFallThrough' list. default: op
Configuration Defaults
"SnowFall.CheckEvery" is how often each snow eligible block will be checked. It is not recommended to set less than 5 seconds, or if you have a large server with many players, the higher the better. And then every time a block is checked, there is a chance it can accumulate, or melt based on the config below.
# # Settings for Snow Fall # blocks can be listed as ID's or their names, # but names must be exactly as seen here: # http://jd.bukkit.org/apidocs/org/bukkit/Material.html ### SnowFall: #this is only in biomes where snow falls naturally CheckEvery: 10 #number in seconds AccumulationEnabled: true AccumulationChance: 1 #percent 0-100 MaxAccumulationDefault: 8 # number of 'layers' of snow MaxAccumulationOverride: # Must match marerial name exactly LEAVES: 3 MeltingEnabled: true MeltingChance: 0.5 #percent 0-100 MeltDownCompletely: false #If true, snow could disappear during the day MinLightLevelToMelt: 11 ChanceToFallThrough: 80 #percent 0-100 CanFallThrough: #Air is always assumed - LEAVES CanReplace: #Air is always assumed - CanAccumulateOn: - BEDROCK - BRICK - CACTUS - CLAY - CLAY_BRICK - DIAMOND - DIAMOND_BLOCK - DIAMOND_ORE - DIRT - EMERALD - EMERALD_BLOCK - EMERALD_ORE - ENDER_STONE - GOLD_BLOCK - GOLD_ORE - GRASS - HUGE_MUSHROOM_1 - HUGE_MUSHROOM_2 - IRON_BLOCK - IRON_ORE - LAPIS_BLOCK - LAPIS_ORE - LEAVES - LOG - MELON_BLOCK - MOSSY_COBBLESTONE - NETHER_BRICK - NETHERRACK - OBSIDIAN - PUMPKIN - SAND - SANDSTONE - SMOOTH_BRICK - SOIL - STONE - WOOD - WOOL
Wish I had time to Do List
- Make thrown snowballs create snow patches.
- Make thrown snowballs cause damage.
- Make thrown snowballs cause slowdown (freezing effect).
- Make deeper snow slow down players and/or mobs.
- Create custom snow related recipes (ideas welcome)
. . . . . . . . . . . . .
This plugin utilizes Hidendra's plugin metrics system, which means some anonymous information will be collected and sent to mcstats.org. This allows me to track how many servers are actually running the plugin, and the larger user base I have the more likely I am to add features. If you wish to opt out of this service, it can be done by editing plugins/Plugin Metrics/config.yml
-
View User Profile
-
Send Message
Posted Feb 3, 2013@jeffro1001 Well I believe I fixed the "world" bug. Seemed to break when checking any "the_end" worlds, but only if there was more than one main world, or something like that.
beta9.3 should be available in about 10mins on the build server. I removed any worlds containing "_nether" or "_the_end" from being loaded into the config. This is only on the initial load (when the config is empty).
If for some reason you do see the same type of server hanging issue, load the config with a value: "debug: true" either at the beginning or end of the file. then Let me know the last log statements you see before it hangs.
-
View User Profile
-
Send Message
Posted Feb 3, 2013@linwetalion
I don't think I'll be implementing regions anytime soon. Yes 24k*24k is a large world, but the plugin only checks the loaded chunks, so unless you have a lot of players scattered throughout the entire map, all those chunks will never be loaded.
P.S. Sorry for those of you with huge servers and player bases, but this plugin may be too much for your server to handle.
-
View User Profile
-
Send Message
Posted Feb 3, 2013@jeffro1001
OK, I think I finally found a bug similar to what your describing. Not sure what's causing it, but I'll try and get it fixed soon.
-
View User Profile
-
Send Message
Posted Feb 3, 2013@patalkok I haven't seen that before, thanks for the pic. I'll definitely look into this ASAP.
As for the other blocks not working, you can add them using the material ID, or you have to have them names exactly as they appear on this page: http:jd.bukkit.org/apidocs/org/bukkit/Material.html so "SMOOTH_STAIRS" or "COBBLESTONE_STAIRS" etc...
-
View User Profile
-
Send Message
Posted Feb 3, 2013Guys, it is astonishing one,but could you please add some regional restrictions for it? If i get my 24k*24k map being covered with snow and then calculating its meltdown, it will explode. E.g. some manually selected regions, which could be created for snow to fall in them.
-
View User Profile
-
Send Message
Posted Feb 3, 2013This is what i've noticed by testing this morning.
The config that gets created at first start does not contain my additional world.
If I attempt to add the additional world I get the lockup issue.
If I attempt to start the server if there is already a config created, I get the lockup issue.
The only way I can actually get the server to run is to delete the existing snowcontrol folder first.
Once the server is started I can modify the config and change the max accumulation and types on blocks snow will replace and accumulate on, but the time between checks is ignored.
-
View User Profile
-
Send Message
Posted Feb 3, 2013snow accumulates on the glass blocks like this:
and i add the blocks (stone_step etc.) to the Accumulation list, but is dont work :(
i can add by material id ?
sorry for my english
-
View User Profile
-
Send Message
Posted Feb 3, 2013@jeffro1001
Thanks for all the help, but the worlds you have defined in the config shouldn't cause any errors or lock ups like your describing.
The first time the config is loaded or reloaded, it checks if any worlds have been set. if none are it will populate the config with all the worlds you have. They should match the names of the actual folders:
Then you can just remove the ones you don't want enabled (by deleting the entire line) and then issue the command: /sc reload
Then when the the plugin starts looping through all the worlds, it checks to make sure the name is in the list in the config, if not it moves on to the next.
I tried to "break" it on my test server by adding invalid world names or removing some or all, but couldn't recreate the scenario your describing.
Also I did have beta9.2 running for the last hour or so, and it eventually crashed with an outOfMemory error. just before it died I saw it had 16,000 chunks loaded... not sure how that's possible or if it's my plugin or bukkit, but I'm running another test now with a few tweaks to see how it handles.
-
View User Profile
-
Send Message
Posted Feb 3, 2013just tried beta9.2 on the test server.
It's doing the same thing I described about adding any additional worlds to the config.
The server starts up but no one can connect.
No errors in the console.
The console also will not respond to any commands
list
stop
just sits there and does nothing
Forced it down and put beta9 back and it starts ok and allows connections
Im going to let the test server run for a bit and let the snow accumlate to see if those other errors pop up again.
-
View User Profile
-
Send Message
Posted Feb 3, 2013Bukkit ver:
(Implementing API version 1.4.7-R1.0)
Another thing to add.
If I add my additional world to the config file ( the initial run doesnt seem to pick it up) It makes it so no one can connect to the server.
No errors the server just seems to lock up.
If i remove the world from the config it starts ok.
-
View User Profile
-
Send Message
Posted Feb 3, 2013@jeffro1001
Interesting... Surprised I haven't seen this. What version of Bukkit are you using?
Either way, that issue should be fixed in beta9.2 which will be available in about 10mins on the build server.
-
View User Profile
-
Send Message
Posted Feb 3, 2013@patalkok
What do you mean it falls "in"?
I just placed and enabled GLASS in my world and am not seeing snow falling "in" it. I do see a little bug where it's not piling up properly on glass, I'll try and get a fix for that soon.
As for adding the blocks you mentioned to the Accumulation list, I think I'll leave that up to each server owner to decide. You can add them if you want, but they won't be enabled by default.
-
View User Profile
-
Send Message
Posted Feb 3, 2013Im really loving the new changes
I was having no issues for about 10 min and then the console started blowing up with this:
( happened right as someone connected )
2013-02-03 10:23:35 [SEVERE] Could not pass event ChunkLoadEvent to SnowControl v1.0-beta9
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:429)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:139)
at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:85)
at org.bukkit.craftbukkit.v1_4_R1.CraftWorld.getChunkAt(CraftWorld.java:117)
at org.bukkit.craftbukkit.v1_4_R1.CraftWorld.getBlockAt(CraftWorld.java:81)
at org.bukkit.craftbukkit.v1_4_R1.block.CraftBlock.getRelative(CraftBlock.java:160)
at org.bukkit.craftbukkit.v1_4_R1.block.CraftBlock.getRelative(CraftBlock.java:168)
at org.bukkit.craftbukkit.v1_4_R1.block.CraftBlock.getRelative(CraftBlock.java:164)
at com.zmanww.bukkit.SnowControl.SnowManager.getMaxSurrounding(SnowManager.java:171)
at com.zmanww.bukkit.SnowControl.SnowManager.getMaxSurrounding(SnowManager.java:181)
at com.zmanww.bukkit.SnowControl.SnowManager.shouldIncrease(SnowManager.java:111)
at com.zmanww.bukkit.SnowControl.SnowManager.letItFall(SnowManager.java:69)
at com.zmanww.bukkit.SnowControl.SnowManager.letItFall(SnowManager.java:36)
at com.zmanww.bukkit.SnowControl.SnowManager.checkChunk(SnowManager.java:29)
at com.zmanww.bukkit.SnowControl.WorldListener.chunkLoad(WorldListener.java:26)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
It doesnt stop there and it looks like its just repeating.
Timed everyone out and i had to force the server down.
current config:
#
# SnowControl configuration
# Last updated with version: 1.0-beta9
SnowFall:
CheckEvery: 20
AccumulationEnabled: true
AccumulationChance: 50
MaxAccumulationDefault: 35
MaxAccumulationOverride:
LEAVES: 3
MeltingEnabled: true
MeltingChance: 1
MeltDownCompletely: true
MinLightLevelToMelt: 11
ChanceToFallThrough: 80
It was piling up really nicely and the issue started happening as it was reaching that limit.
EDIT:
Another thing to add.
If I add my additional world to the config file ( the initial run doesnt seem to pick it up) It makes it so no one can connect to the server.
No errors the server just seems to lock up.
If i remove the world from the config it starts ok.
-
View User Profile
-
Send Message
Posted Feb 3, 2013nice plugin, but there is some bug with glasses, snow falls in the glass blocks
and please add commulation fors this blocks :
- DOUBLE_STEP - STEP - BRICK_STEP - STONE_STEP - SANDSTONE_STEP - COBBLESTONE_STEP - SMOOTH_BRICK_STEP - ICE - GLASS - DOUBLE_CHEST
thanks :)
-
View User Profile
-
Send Message
Posted Feb 2, 2013@nicholasooo
I'd try setting it to at least 10. Other than that, I'll try and look for performance tweaks.
-
View User Profile
-
Send Message
Posted Feb 2, 2013@zwollner
I wouldn't even know how to turn on debugging, but I'll check to make sure it isn't on. For the configuration "CheckEvery" value, I have that set at 5. Snow control was working fine until beta 8, so I'm not sure what is causing it.
I have noticed my console shooting out that server overloaded error every now and then since loading the plugin, so maybe it is a processor issue. Hopefully someone else will weigh in on this.
-
View User Profile
-
Send Message
Posted Feb 2, 2013@nicholasooo
If you keep running into issues, I'll try looking for performance tweaks I can make, but not sure if there's much I can trim without possibly removing features.
-
View User Profile
-
Send Message
Posted Feb 2, 2013@zwollner
I also wanted to add: beta9 is crashing my client with a java error. Console isn't showing any errors though and after the initial crash, the server becomes non connectable.
-
View User Profile
-
Send Message
Posted Feb 2, 2013@zwollner
Thank you for all your hard work. We truly appreciate it.
-
View User Profile
-
Send Message
Posted Feb 2, 2013Look for beta8 on the build server here.
Sorry about the bugs in the last couple builds. I now completely reworked the accumulation and melting algorithms. I've have had it running on my test servers for many hours through a lot of day/night & weather cycles, and every thing looks pretty good.
There are no critical world breaking bugs.
The only thing that could use a little work would be the melting. When more than a block worth of snow are accumulated, the melting behaves strange, and takes longer for snow in some areas (near cliffs & walls) to melt. If you want to avoid this, keep your MaxAccumulationDefault at or below 8.
also as you may have guessed based on above, there is now no max to the amount of snow that can accumulate.
This build (Beta8) also contains the reload, and world config.