-
-
Notifications
You must be signed in to change notification settings - Fork 356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a new permission flag to toggle snowfall, like you would for firespread #7690
base: master
Are you sure you want to change the base?
Conversation
some things i know need to be looked at:
|
Towny/src/main/java/com/palmergames/bukkit/towny/huds/PermHUD.java
Outdated
Show resolved
Hide resolved
Towny/src/main/java/com/palmergames/bukkit/config/ConfigNodes.java
Outdated
Show resolved
Hide resolved
Towny/src/main/java/com/palmergames/bukkit/towny/command/HelpMenu.java
Outdated
Show resolved
Hide resolved
Towny/src/main/java/com/palmergames/bukkit/towny/command/PlotCommand.java
Show resolved
Hide resolved
Towny/src/main/java/com/palmergames/bukkit/towny/command/PlotCommand.java
Show resolved
Hide resolved
Towny/src/main/java/com/palmergames/bukkit/towny/command/TownCommand.java
Outdated
Show resolved
Hide resolved
Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before I merge this I would like you to tell me what happens to all of the plots before this feature is added.
Does the town/resident/plot require their TownyPermission to include Snow in order to have snow fall?
Will this update mean that all of a sudden snow accumulates nowhere on the server until those towns, residents, plots have their snow enabled?
as I wrote in a previous comment, I noticed that it defaulted to false and I don't know how to change that |
the property in the townypermission should probably get renamed to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As commented earlier this will have to get overhauled to work in the opposite manner, or we'll end up breaking snow everywhere on already-existing servers.
Also moved this off of the 0.101.1.0 milestone.
@LlmDl i don't think it needs to be flipped, i just don't understand why this code:
Towny/Towny/src/main/java/com/palmergames/bukkit/towny/object/TownyPermission.java Line 306 in 83c9035
doesn't load towns existing before this change as having snowfall enabled as that is the default, towns created afterwards have it enabled so why wouldn't old ones? if we can just fix that behaviour it should be ready to merge |
This is only kept when a town is newly created; when a town is loaded on startup it will use this constructor, then the permission line is changed when the town's permission line is read from the db. |
That's why it would make more sense for the db-aspect of it to assume that snow is wanted, and only get put on the perm line when snow is not wanted. |
by db side, do you mean for example changing this sql default from a 0 to a 1?
and if that is correct, i'm unsure what i would need to change to alter the default if flatfile is used, i've been digging around the code but its a bit hard for me to follow what exactly is used in which loading circumstances and as for not showing it on the perm line, i can do that, and if you would like i can also or alternatively have it show in red if it is off unlike the other perm line settings that show as green if off since it might make more sense |
i suppose an else statement here setting it to true if the key is null would work? Towny/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java Line 1358 in 83c9035
|
nvm it should be a change under loadTown right |
okay after 0729040 i deleted all my data, reloaded on a non-snowfall version, made a town, loaded a snowfall version and it was defaulted to on, so towns should no longer unexpectedly stop snowing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the hiding of the snow flag when it isn't blocking snow, that should make things a bit cleaner.
I'm not so sure I like this part of the loading though:
// To update perm lines from before the snowfall toggle was added to make sure snow doesn't unexpectedly stop falling
snow = true;
It feels like a band-aid or one-off fix to something that should be approached from a different direction.
I would rather the snow property that gets saved be a nosnow
, which is only saved into residents/plots/towns' permission lines in the DB when a player doesn't want snow. Rather than saving snow
into every resident/plot/town permission line. My thinking is that fire is fairly uncommon to want on in a plot, same with explosions. Only in the rare occurrence where a player wants fire, explosions, mobs on, does the DB get the property added to it. Not wanting snow is also the rarer state of this property and we should reflect that in how the property acts when it isn't present in the permission line.
Description:
I made this pull request as in my experience many people dread making towns in snow due to the constant covering of your builds in snow. It takes a lot of time and maintenance to keep your town clean, I've seen some go to the extreme of placing thousands of iron bars at the highest Y level to prevent snowfall. I think it is fair to add the ability to toggle this for players, if lag is a concern server admins can force snowfall on or otherwise remove access to turning it off.
New Nodes/Commands/ConfigOptions:
New config nodes:
new_world_settings.snow.world_snowfall_enabled
new_world_settings.snow.force_snow_on
New commands and their permissions:
/town toggle snow
towny.command.town.toggle.snow
/plot toggle snow
towny.command.plot.toggle.snow
/res toggle snow
towny.command.resident.toggle.snow
/tw toggle snow
towny.command.townyworld.toggle.snow
/tw toggle forcesnow
towny.command.townyworld.toggle.forcesnow
Relevant Towny Issue ticket:
N/A
By making this pull request, I represent that I have the right to waive copyright and related rights to my contribution, and agree that all copyright and related rights in my contributions are waived, and I acknowledge that the TownyAdvanced organization has the copyright to use and modify my contribution under the Towny License for perpetuity.