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
The plugin works perfectly on even 1.12.2 but it doesnt work on Cold Taiga biomes. I know you dont make changed anymore but can you please update it?
In reply to Itsthespace:
You can find the builds here: https://ci.pcgamingfreaks.at/job/SnowControl/
Do you still accept suggestions for this plugin?
Does it also work with Bukkit 1.12? I just want to use this plugin on my private server during the christmas time this year.
It would be great if it works with 1.12
In reply to Forge_User_42770162:
I last built it on 1.8.8 almost 2 years ago
Love it. Set it up on my Amplified world that's entirely Ice Biomes on Spigot for MC1.11 and it's working flawlessly. Keep up the good work, OP.
@spaarkimus
Oh nice, I used to love spout/spigot, glad their still around. I might have to get back into it.
@zwollner
Well, Spigot is the new fork of Bukkit.
Yes, it is still a thing. I am just now getting into it.
@spaarkimus
Sorry for getting so defensive, but when someone starts criticizing my 3 year old code with nothing to back it up I get a little annoyed.
Anyway, yes, that's how Metrics was designed, along with the whole bukkit plugin architecture. If you call plugin.getConfig(), it returns the config of only your plugin. I don't think it'd make sense for you to be able to control a 3rd party's configuration, that could lead to even more nefarious doings. I guess I could put a comment in there saying it can be disabled, but I figure anyone savvy enough to be analyzing source code would be able to also dig into any 3rd party libs that are referenced.
And yeah, I remember working on that singleton config setup for a while, and started using it in all my plugins. I just never liked the way tutorials and others handled the config.
P.S. This conversation has almost gotten me wanting to play MC again after 2 or 3 years now, and finish my other unfinished plugins... Is bukkit still a thing? :-)
@zwollner With the new information you present, if you say that the Metrics plugin can read the 'Metrics' entry in your config file and will not do anything if it is set to false, then great, case closed. I would recant my argument. I would however also remind you that when you distribute a jar, you could have packaged whatever you want in it, and those who look at your source before blindly running your jar might have issue with your code not also using the Metrics config entry. You made a method in Config.java to do just that after all; why not use it?
At the same time, I guess I was (and still am) just waiting for you to confirm whether your code really was intended to preform metrics if and only if 'Config.isMeltingEnabled()' returns true. If that is an actual "business" rule of your code's logic, then again, okay.
Either way, not including the check for 'Config.isMetricsEnabled()' in that particular part of the code makes your intentions very unclear at best and nefarious at worst.
P.S. I like your whole singleton Config thing you got going on in that project. I am most definitely going to start using that pattern in a few of my different services.
Good day sir.
@spaarkimus
Also still according to the Metrics wiki, my way is the correct way: https://github.com/Hidendra/Plugin-Metrics/wiki/Usage
Also, I don't think your allowed to access another plugin's configs, unless that's changed recently, or you manually access it from the file system. And I skimmed through your plugins, and you're not even using Metrics, so what makes you an expert?
@spaarkimus
I don't care how the metrics code works, I just tell it to start, and it manages its own config. It doesn't make any sense for me to check it's config.
@zwollner
THe point is, you have access to the Metrics config entry. You do not need to call the Metric code at all if it is set to false. That way you can be rather indifferent about how the Metric code works, cause you just simply take it out of the equation.
@spaarkimus
Maybe if there is a new version of metrics then you could very well be right, but 3+ years ago when I implemented it that was how it was done.
If you want to "fix" it for a new version of metrics, then feel free.
I just saw this code in the source:
Now it seems to me, you are ignoring the "Metrics" setting in the config file.
@GeorgH93
Cool, thanks a lot! I skimmed through the changes and they looked okay, I don't have my dev environment or minecraft setup on my new PC yet, so can't really test it out. But I did merge the changes and am trying to get a new build server configured. and will upload the new jar shortly.
I find this plugin very nice, but it's performance made it impossible to use it on my server, so I fixed it. My fix boost it's performance by up to 200 times (for the default config, or even more if you reduce the accumulate/melt percentage) (however the accumulation and the melting aren't spread out as even as in the original version (shouldn't be noticeable under normal conditions)).
Pull request: https://github.com/zwollner/SnowControl/pull/1
For everyone who don't want to wait for the official update here is the link to download my modified version: http://ci.pcgamingfreaks.at/job/Bukkit_SnowControl/lastSuccessfulBuild/artifact/target/SnowControl.jar
Unfortunately, it does something, because my Intel I5 3740 running at 3.6Ghz is rising every few seconds to 24 - 30 % utilization and ingame water keeps flowing but mobs (all) and people move-standstill-move over the land and the normal flowing way of moving is not doable. I hope you can eliminate the lag that is causing this, and maybe more snow and control on where, when and how much snow!
What a pity there are not so many peeps who develope this kind-a-christmas-winter-season plugin. Another great one has fallen....
Hi, I'm very interested by this plugin but unfortunately it does not work with 1.7.9 bukkit server. Is there a newer compatible version or another plugin doing the same thing. Thanks