Towny Versions Save

Towny Advanced Minecraft plugin for Bukkit/Spigot.

0.100.1.23

1 month ago
  • Add optional permission node required to add colours to title and surnames.
    • Closes #7217.
  • New Permission Node: towny.command.town.set.title.colours
    • Not a child node, must be given if you enable does_adding_colour_codes_require_permission_node.
  • New Permission Node: towny.command.town.set.title.colours
    • Not a child node, must be given if you enable does_adding_colour_codes_require_permission_node.
  • New Config Option: filters_colour_chat.modify_chat.does_adding_colour_codes_require_permission_node
    • Default: false
    • When true, a mayor or king will need the permission node in order to add colour codes to residents' titles and surtitles.
    • Kings require towny.command.nation.set.title.colours, mayors require towny.command.town.set.title.colours.
    • These nodes are not given out by the default townyperms.yml and must be added to the mayor and king section when this setting has been made true.
  • Add MinJoinDays and MaxJoinDays to TownBlocks.
    • A new system that allows mayors to reserve plots to only-new, or only-established town residents.
    • This means that residents cannot use /plot claim on every plot that is for sale, if min or max days are set.
    • This does not apply to embassy plots being bought by non-town-residents.
    • When set, the min join days number will mean that a resident would have to be a resident of the town for a minimum of X days.
    • When set, the max join days number will mean that a resident would have to be a resident of the town for a maximum of X days.
    • When both set, the resident must be a town resident for a number of days between the min and max amounts.
    • These values are showing on the /plot info screen, as well as in the denial message seen when /plot claim fails
    • Closes #7164.
  • New Command: /plot set minjoindays {# | clear}
    • Sets the # of days, or removes the minjoindays amount when clear is used.
    • Requires the towny.command.plot.asmayor permission node.
  • New Command: /plot set maxjoindays {# | clear}
    • Sets the # of days, or removes the maxjoindays amount when clear is used.
    • Requires the towny.command.plot.asmayor permission node.

Cumulative changes since 0.100.1.0
0.100.1.22
  • Fix PaperEvents listeners not registering, causing sign edits and other things to use outdated tests.
    • Fixes the regression which started in 0.100.1.16.
  • Reset player caches when using /ta reload.
  • Create a readme file that generates in Towny's lang folder, explaining how to properly use the translation files.
  • Fix regresssion that started in 0.100.1.1, solving the proximity test to nearest town being flipped.
  • Add the ability for Towns to cede plots to other towns, using /town cede plot {townname}
    • Their ability to give a plot away also requires the other town to be able to claim the plot, meaning that any rule applicable to /town claim is also applicable here.
    • Closes #7149.
  • New Command: /town cede plot {townname}
    • Attempts to give the townblock the player is stood in, to the given town.
  • New Permission Node: towny.command.town.cede.plot
    • Child Node of towny.command.town.cede.* which is a child node of towny.command.town.*
    • No changes required to the townyperms.yml
  • API: Added TownCedePlotEvent
    • A cancellable event thrown when a mayor uses /town cede plot {townname}.
0.100.1.21
  • Fix snapshot taking on older versions, courtesy of Warrior with PR #7316.
    • Fixes the regression started in 0.100.1.16 which caused the revert on unclaim to turn everything into air down to bedrock.
0.100.1.20
  • New Relational Placeholder colour: conquered town.
    • A member of your nation which is from a conquered town will appear as a separate colour from your normal same-nation coloured players.
    • Closes #7307.
  • New Config Option: filters_colour_chat.papi_relational_formatting.conquered_town
    • Default: &e
    • Used when the player is a member of one of your nation's conquered towns.
  • Make it possible for ruined towns to slowly open up their plot permissions.
    • Closes #7275.
  • New Config Option: town_ruining.town_ruins.do_plots_permissions_change_to_allow_all
    • Default: false
    • If this is true, when a town becomes a ruin, every hour more and more of their plots will have their permissions turned to allow build, destroy, switch, itemuse to on. This will affect the newest claims first and progress until the first claims made are opened up right before the max_duration_hours have passed. When a town has more claims than max_duration_hours, multiple plots will be opened up each hour, ie: 500 claims and 72 max hours = 7 claims per hour.
    • If a Town has less claims than max_duration hours, those claims' permissions are opened up much more slowly with hours passing between plots opening up, ie: 36 claims and 72 max hours = 1 claim every 2 hours.
    • This system is meant to give players across many time zones the chance to loot a town when it falls into ruin.
  • Bump net.kyori:adventure-text-minimessage from 4.15.0 to 4.16.0.
  • Bump net.kyori:adventure-text-serializer-plain from 4.15.0 to 4.16.0.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.74.0 to 3.78.0.
  • Bump org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1.
0.100.1.19
  • Add listener for Paper's PlayerElytraBoostEvent.
    • When using Paper, Towny can now treat Firework_Rockets as an item_use item, preventing players using boosting while gliding on an Elytra.
    • Closes #7286.
  • Fix the TownBlockType migrator running opposite of when it ought to, resulting in farm plot allowed blocks being reset when Towny is updated.
    • Closes #7300.
  • Add optional title message showing how long until a player will spawn, when using the spawning warmup timer.
    • Partially fills #7303.
  • New Config Option: spawning.spawning_warmups.uses_title_message
    • Default: false
    • When set to true, players get a large Title message showing how long until their teleport will happen, as well as a message telling them not to move if movement_cancels_spawn_warmup is true.
  • Add optional teleport warmup particle effect, which looks similar to the spawn point particles, and will swirl downwards from head to toe while a teleport warmup is occuring.
    • Closes #7303.
  • New Config Option: spawning.spawning_warmups.uses_particle_effect
    • Default: true
    • When set to true, players get a particle effect matching the towny spawn particles, which appears around them for the warmup duration.
0.100.1.18
  • Add town price to the PreNewTownEvent.
  • Fix tab complete for /t outpost missing the outposts and named outposts.
  • Fix visual glitch caused by the chest merging protection code not skipping over instances of double chests.
  • Fix typo in error message shown when the town_levels don't allow buying bonus blocks.
  • Add config setting to prevent trusted players using personally-owned land in towns.
    • Closes #7296.
  • New Config Option: global_town_settings.do_trusted_players_get_full_perms_in_personally_owned_land
    • Default: true
    • When true any trusted players will get permissions in town owned land, and the personally-owned land in that town.
    • When false, trusted players get permissions only in the town owned land, leaving player-owned plots to their normal plot perms.
0.100.1.17
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganoReEvaderelukemangoLambsyjsuarezl
tomhmagicMKieburtztypicalsmartmanjshalbrookParvatisGitHubsde-wolf
cobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllisonNoisereactz
SmallSansSerifworstvideogamerbradleybrandNoikzGamingtrevor1097KeNickGong
MilesBHuffMille12313roflmarvckeezeZenithDevvDynamite99
CasperTimmyMattWillenBloc-kxSTORMYxSHMKalqbEcoSMP
Theeno74MrQuackiosRekar7Folas1337vyvinNeumimTo
ProjectGuinnessgageeetPainOchocobradyyykennyyLemar98sdawwggS
editon96ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
AustinGoodrichokorde12fangguan233RandaeMCxxThyPopeCraig1020
connorwallyPoseidonGamesYatochka8RRRRzzzz2jeffthebassRicola4325
annko03020NemcovsNGStudiosusSeahossyDruidBrandonMomshroom
Intrabit71MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnline
AncientSMJunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12Ashparty
Roman90879shepherdjerredMdenton342ConquerBouqiqiMailolRustyNail
xXPLFOXPLXxjosegoustItsSynchroGl0W1ESemisolMultipedBeatle
FruitloopinsgorbyhailSexy-JuraHikitsune-RedTheNyloxkeijodputt
cloverlucySurvivalFrenchand 51 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.22

1 month ago
  • Fix PaperEvents listeners not registering, causing sign edits and other things to use outdated tests.
    • Fixes the regression which started in 0.100.1.16.
  • Reset player caches when using /ta reload.
  • Create a readme file that generates in Towny's lang folder, explaining how to properly use the translation files.
  • Fix regresssion that started in 0.100.1.1, solving the proximity test to nearest town being flipped.
  • Add the ability for Towns to cede plots to other towns, using /town cede plot {townname}
    • Their ability to give a plot away also requires the other town to be able to claim the plot, meaning that any rule applicable to /town claim is also applicable here.
    • Closes #7149.
  • New Command: /town cede plot {townname}
    • Attempts to give the townblock the player is stood in, to the given town.
  • New Permission Node: towny.command.town.cede.plot
    • Child Node of towny.command.town.cede.* which is a child node of towny.command.town.*
    • No changes required to the townyperms.yml
  • API: Added TownCedePlotEvent
    • A cancellable event thrown when a mayor uses /town cede plot {townname}.

Cumulative changes since 0.100.1.0
0.100.1.21
  • Fix snapshot taking on older versions, courtesy of Warrior with PR #7316.
    • Fixes the regression started in 0.100.1.16 which caused the revert on unclaim to turn everything into air down to bedrock.
0.100.1.20
  • New Relational Placeholder colour: conquered town.
    • A member of your nation which is from a conquered town will appear as a separate colour from your normal same-nation coloured players.
    • Closes #7307.
  • New Config Option: filters_colour_chat.papi_relational_formatting.conquered_town
    • Default: &e
    • Used when the player is a member of one of your nation's conquered towns.
  • Make it possible for ruined towns to slowly open up their plot permissions.
    • Closes #7275.
  • New Config Option: town_ruining.town_ruins.do_plots_permissions_change_to_allow_all
    • Default: false
    • If this is true, when a town becomes a ruin, every hour more and more of their plots will have their permissions turned to allow build, destroy, switch, itemuse to on. This will affect the newest claims first and progress until the first claims made are opened up right before the max_duration_hours have passed. When a town has more claims than max_duration_hours, multiple plots will be opened up each hour, ie: 500 claims and 72 max hours = 7 claims per hour.
    • If a Town has less claims than max_duration hours, those claims' permissions are opened up much more slowly with hours passing between plots opening up, ie: 36 claims and 72 max hours = 1 claim every 2 hours.
    • This system is meant to give players across many time zones the chance to loot a town when it falls into ruin.
  • Bump net.kyori:adventure-text-minimessage from 4.15.0 to 4.16.0.
  • Bump net.kyori:adventure-text-serializer-plain from 4.15.0 to 4.16.0.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.74.0 to 3.78.0.
  • Bump org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1.
0.100.1.19
  • Add listener for Paper's PlayerElytraBoostEvent.
    • When using Paper, Towny can now treat Firework_Rockets as an item_use item, preventing players using boosting while gliding on an Elytra.
    • Closes #7286.
  • Fix the TownBlockType migrator running opposite of when it ought to, resulting in farm plot allowed blocks being reset when Towny is updated.
    • Closes #7300.
  • Add optional title message showing how long until a player will spawn, when using the spawning warmup timer.
    • Partially fills #7303.
  • New Config Option: spawning.spawning_warmups.uses_title_message
    • Default: false
    • When set to true, players get a large Title message showing how long until their teleport will happen, as well as a message telling them not to move if movement_cancels_spawn_warmup is true.
  • Add optional teleport warmup particle effect, which looks similar to the spawn point particles, and will swirl downwards from head to toe while a teleport warmup is occuring.
    • Closes #7303.
  • New Config Option: spawning.spawning_warmups.uses_particle_effect
    • Default: true
    • When set to true, players get a particle effect matching the towny spawn particles, which appears around them for the warmup duration.
0.100.1.18
  • Add town price to the PreNewTownEvent.
  • Fix tab complete for /t outpost missing the outposts and named outposts.
  • Fix visual glitch caused by the chest merging protection code not skipping over instances of double chests.
  • Fix typo in error message shown when the town_levels don't allow buying bonus blocks.
  • Add config setting to prevent trusted players using personally-owned land in towns.
    • Closes #7296.
  • New Config Option: global_town_settings.do_trusted_players_get_full_perms_in_personally_owned_land
    • Default: true
    • When true any trusted players will get permissions in town owned land, and the personally-owned land in that town.
    • When false, trusted players get permissions only in the town owned land, leaving player-owned plots to their normal plot perms.
0.100.1.17
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganoReEvaderelukemangoLambsyjsuarezl
tomhmagicMKieburtztypicalsmartmanjshalbrookParvatisGitHubsde-wolf
cobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllisonNoisereactz
SmallSansSerifbradleybrandNoikzGamingtrevor1097KeNickGongMilesBHuff
Mille12313roflmarvckeezeZenithDevvDynamite99CasperTimmy
MattWillenBloc-kxSTORMYxSHMKalqbEcoSMPTheeno74
MrQuackiosRekar7Folas1337vyvinNeumimToProjectGuinness
gageeetPainOchocobradyyykennyyLemar98sdawwggSediton96
ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxAustinGoodrich
okorde12fangguan233RandaeMCxxThyPopeCraig1020connorwally
PoseidonGamesYatochka8RRRRzzzz2jeffthebassRicola4325annko03020
NemcovsNGStudiosusSeahossyDruidBrandonMomshroomIntrabit71
MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSM
JunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879
shepherdjerredMdenton342ConquerBouqiqiMailolRustyNailxXPLFOXPLXx
josegoustItsSynchroGl0W1ESemisolMultipedBeatleFruitloopins
gorbyhailSexy-JuraHikitsune-RedTheNyloxkeijodputtcloverlucy
SurvivalFrenchand 51 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.21

1 month ago
  • Fix snapshot taking on older versions, courtesy of Warrior with PR #7316.
    • Fixes the regression started in 0.100.1.16 which caused the revert on unclaim to turn everything into air down to bedrock.

Cumulative changes since 0.100.1.0
0.100.1.20
  • New Relational Placeholder colour: conquered town.
    • A member of your nation which is from a conquered town will appear as a separate colour from your normal same-nation coloured players.
    • Closes #7307.
  • New Config Option: filters_colour_chat.papi_relational_formatting.conquered_town
    • Default: &e
    • Used when the player is a member of one of your nation's conquered towns.
  • Make it possible for ruined towns to slowly open up their plot permissions.
    • Closes #7275.
  • New Config Option: town_ruining.town_ruins.do_plots_permissions_change_to_allow_all
    • Default: false
    • If this is true, when a town becomes a ruin, every hour more and more of their plots will have their permissions turned to allow build, destroy, switch, itemuse to on. This will affect the newest claims first and progress until the first claims made are opened up right before the max_duration_hours have passed. When a town has more claims than max_duration_hours, multiple plots will be opened up each hour, ie: 500 claims and 72 max hours = 7 claims per hour.
    • If a Town has less claims than max_duration hours, those claims' permissions are opened up much more slowly with hours passing between plots opening up, ie: 36 claims and 72 max hours = 1 claim every 2 hours.
    • This system is meant to give players across many time zones the chance to loot a town when it falls into ruin.
  • Bump net.kyori:adventure-text-minimessage from 4.15.0 to 4.16.0.
  • Bump net.kyori:adventure-text-serializer-plain from 4.15.0 to 4.16.0.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.74.0 to 3.78.0.
  • Bump org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1.
0.100.1.19
  • Add listener for Paper's PlayerElytraBoostEvent.
    • When using Paper, Towny can now treat Firework_Rockets as an item_use item, preventing players using boosting while gliding on an Elytra.
    • Closes #7286.
  • Fix the TownBlockType migrator running opposite of when it ought to, resulting in farm plot allowed blocks being reset when Towny is updated.
    • Closes #7300.
  • Add optional title message showing how long until a player will spawn, when using the spawning warmup timer.
    • Partially fills #7303.
  • New Config Option: spawning.spawning_warmups.uses_title_message
    • Default: false
    • When set to true, players get a large Title message showing how long until their teleport will happen, as well as a message telling them not to move if movement_cancels_spawn_warmup is true.
  • Add optional teleport warmup particle effect, which looks similar to the spawn point particles, and will swirl downwards from head to toe while a teleport warmup is occuring.
    • Closes #7303.
  • New Config Option: spawning.spawning_warmups.uses_particle_effect
    • Default: true
    • When set to true, players get a particle effect matching the towny spawn particles, which appears around them for the warmup duration.
0.100.1.18
  • Add town price to the PreNewTownEvent.
  • Fix tab complete for /t outpost missing the outposts and named outposts.
  • Fix visual glitch caused by the chest merging protection code not skipping over instances of double chests.
  • Fix typo in error message shown when the town_levels don't allow buying bonus blocks.
  • Add config setting to prevent trusted players using personally-owned land in towns.
    • Closes #7296.
  • New Config Option: global_town_settings.do_trusted_players_get_full_perms_in_personally_owned_land
    • Default: true
    • When true any trusted players will get permissions in town owned land, and the personally-owned land in that town.
    • When false, trusted players get permissions only in the town owned land, leaving player-owned plots to their normal plot perms.
0.100.1.17
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganoReEvaderelukemangoLambsyjsuarezl
tomhmagicMKieburtztypicalsmartmanjshalbrookParvatisGitHubsde-wolf
cobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllisonHerbertsStudios
NoisereactzSmallSansSerifbradleybrandNoikzGamingtrevor1097KeNickGong
MilesBHuffMille12313roflmarvckeezeZenithDevvDynamite99
CasperTimmyMattWillenBloc-kxSTORMYxSHMKalqbEcoSMP
Theeno74MrQuackiosRekar7Folas1337vyvinNeumimTo
ProjectGuinnessgageeetPainOchocobradyyykennyyLemar98sdawwggS
editon96ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
AustinGoodrichokorde12fangguan233RandaeMCxxThyPopeCraig1020
connorwallyPoseidonGamesYatochka8RRRRzzzz2jeffthebassRicola4325
NemcovsNGStudiosusSeahossyDruidBrandonMomshroomIntrabit71
MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSM
JunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879
shepherdjerredMdenton342ConquerBouqiqiMailolRustyNailxXPLFOXPLXx
josegoustItsSynchroGl0W1ESemisolMultipedBeatleFruitloopins
gorbyhailSexy-JuraHikitsune-RedTheNyloxkeijodputtcloverlucy
SurvivalFrenchand 52 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.20

2 months ago
  • New Relational Placeholder colour: conquered town.
    • A member of your nation which is from a conquered town will appear as a separate colour from your normal same-nation coloured players.
    • Closes #7307.
  • New Config Option: filters_colour_chat.papi_relational_formatting.conquered_town
    • Default: &e
    • Used when the player is a member of one of your nation's conquered towns.
  • Make it possible for ruined towns to slowly open up their plot permissions.
    • Closes #7275.
  • New Config Option: town_ruining.town_ruins.do_plots_permissions_change_to_allow_all
    • Default: false
    • If this is true, when a town becomes a ruin, every hour more and more of their plots will have their permissions turned to allow build, destroy, switch, itemuse to on. This will affect the newest claims first and progress until the first claims made are opened up right before the max_duration_hours have passed. When a town has more claims than max_duration_hours, multiple plots will be opened up each hour, ie: 500 claims and 72 max hours = 7 claims per hour.
    • If a Town has less claims than max_duration hours, those claims' permissions are opened up much more slowly with hours passing between plots opening up, ie: 36 claims and 72 max hours = 1 claim every 2 hours.
    • This system is meant to give players across many time zones the chance to loot a town when it falls into ruin.
  • Bump net.kyori:adventure-text-minimessage from 4.15.0 to 4.16.0.
  • Bump net.kyori:adventure-text-serializer-plain from 4.15.0 to 4.16.0.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.74.0 to 3.78.0.
  • Bump org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1.

Cumulative changes since 0.100.1.0
0.100.1.19
  • Add listener for Paper's PlayerElytraBoostEvent.
    • When using Paper, Towny can now treat Firework_Rockets as an item_use item, preventing players using boosting while gliding on an Elytra.
    • Closes #7286.
  • Fix the TownBlockType migrator running opposite of when it ought to, resulting in farm plot allowed blocks being reset when Towny is updated.
    • Closes #7300.
  • Add optional title message showing how long until a player will spawn, when using the spawning warmup timer.
    • Partially fills #7303.
  • New Config Option: spawning.spawning_warmups.uses_title_message
    • Default: false
    • When set to true, players get a large Title message showing how long until their teleport will happen, as well as a message telling them not to move if movement_cancels_spawn_warmup is true.
  • Add optional teleport warmup particle effect, which looks similar to the spawn point particles, and will swirl downwards from head to toe while a teleport warmup is occuring.
    • Closes #7303.
  • New Config Option: spawning.spawning_warmups.uses_particle_effect
    • Default: true
    • When set to true, players get a particle effect matching the towny spawn particles, which appears around them for the warmup duration.
0.100.1.18
  • Add town price to the PreNewTownEvent.
  • Fix tab complete for /t outpost missing the outposts and named outposts.
  • Fix visual glitch caused by the chest merging protection code not skipping over instances of double chests.
  • Fix typo in error message shown when the town_levels don't allow buying bonus blocks.
  • Add config setting to prevent trusted players using personally-owned land in towns.
    • Closes #7296.
  • New Config Option: global_town_settings.do_trusted_players_get_full_perms_in_personally_owned_land
    • Default: true
    • When true any trusted players will get permissions in town owned land, and the personally-owned land in that town.
    • When false, trusted players get permissions only in the town owned land, leaving player-owned plots to their normal plot perms.
0.100.1.17
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganoReEvaderelukemangoLambsytomhmagic
MKieburtztypicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschip
SW1D3RSK1lexiccnMatthewEEllisonHerbertsStudiosNoisereactzSmallSansSerif
bradleybrandNoikzGamingtrevor1097KeNickGongMilesBHuffMille12313
roflmarvckeezeZenithDevvDynamite99CasperTimmyMattWillen
Bloc-kxSTORMYxSHMKalqbEcoSMPTheeno74MrQuackios
Rekar7Folas1337vyvinNeumimToProjectGuinnessgageeet
PainOchocobradyyykennyyLemar98sdawwggSediton96Exygle
KermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-MartyGraphicHex
RandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxAustinGoodrichokorde12
fangguan233RandaeMCxxThyPopeCraig1020connorwallyPoseidonGames
Yatochka8RRRRzzzz2jeffthebassandrei106Ricola4325Nemcovs
NGStudiosusSeahossyDruidBrandonMomshroomIntrabit71MetaverseRPN
AldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraft
CorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerred
Mdenton342ConquerBouqiqiMailolRustyNailxXPLFOXPLXxjosegoust
ItsSynchroGl0W1ESemisolMultipedBeatleFruitloopinsgorbyhail
Sexy-JuraHikitsune-RedTheNyloxkeijodputtcloverlucySurvivalFrench
Vaspeiand 54 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.19

2 months ago
  • Add listener for Paper's PlayerElytraBoostEvent.
    • When using Paper, Towny can now treat Firework_Rockets as an item_use item, preventing players using boosting while gliding on an Elytra.
    • Closes #7286.
  • Fix the TownBlockType migrator running opposite of when it ought to, resulting in farm plot allowed blocks being reset when Towny is updated.
    • Closes #7300.
  • Add optional title message showing how long until a player will spawn, when using the spawning warmup timer.
    • Partially fills #7303.
  • New Config Option: spawning.spawning_warmups.uses_title_message
    • Default: false
    • When set to true, players get a large Title message showing how long until their teleport will happen, as well as a message telling them not to move if movement_cancels_spawn_warmup is true.
  • Add optional teleport warmup particle effect, which looks similar to the spawn point particles, and will swirl downwards from head to toe while a teleport warmup is occuring.
    • Closes #7303.
  • New Config Option: spawning.spawning_warmups.uses_particle_effect
    • Default: true
    • When set to true, players get a particle effect matching the towny spawn particles, which appears around them for the warmup duration.

Cumulative changes since 0.100.1.0
0.100.1.18
  • Add town price to the PreNewTownEvent.
  • Fix tab complete for /t outpost missing the outposts and named outposts.
  • Fix visual glitch caused by the chest merging protection code not skipping over instances of double chests.
  • Fix typo in error message shown when the town_levels don't allow buying bonus blocks.
  • Add config setting to prevent trusted players using personally-owned land in towns.
    • Closes #7296.
  • New Config Option: global_town_settings.do_trusted_players_get_full_perms_in_personally_owned_land
    • Default: true
    • When true any trusted players will get permissions in town owned land, and the personally-owned land in that town.
    • When false, trusted players get permissions only in the town owned land, leaving player-owned plots to their normal plot perms.
0.100.1.17
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganoReEvaderelukemangoLambsytomhmagic
MKieburtztypicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschip
SW1D3RSK1lexiccnMatthewEEllisonHerbertsStudiosNoisereactzSmallSansSerif
JustoPlayzbradleybrandNoikzGamingtrevor1097KeNickGongMilesBHuff
Mille12313roflmarvckeezeZenithDevvDynamite99CasperTimmy
MattWillenBloc-kxSTORMYxSHMKalqbEcoSMPTheeno74
MrQuackiosRekar7Folas1337vyvinNeumimToProjectGuinness
gageeetPainOchocobradyyykennyyLemar98sdawwggSediton96
ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxAustinGoodrich
okorde12fangguan233RandaeMCxxThyPopeCraig1020connorwally
PoseidonGamesYatochka8RRRRzzzz2jeffthebassandrei106Ricola4325
NemcovsNGStudiosusSeahossyDruidBrandonMomshroomIntrabit71
MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSM
JunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879
shepherdjerredMdenton342ConquerBouqiqiMailolRustyNailxXPLFOXPLXx
josegoustItsSynchroGl0W1ESemisolMultipedBeatleFruitloopins
gorbyhailSexy-JuraHikitsune-RedTheNyloxkeijodputtcloverlucy
SurvivalFrenchWuQwQVaspeiand 54 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.18

2 months ago
  • Add town price to the PreNewTownEvent.
  • Fix tab complete for /t outpost missing the outposts and named outposts.
  • Fix visual glitch caused by the chest merging protection code not skipping over instances of double chests.
  • Fix typo in error message shown when the town_levels don't allow buying bonus blocks.
  • Add config setting to prevent trusted players using personally-owned land in towns.
    • Closes #7296.
  • New Config Option: global_town_settings.do_trusted_players_get_full_perms_in_personally_owned_land
    • Default: true
    • When true any trusted players will get permissions in town owned land, and the personally-owned land in that town.
    • When false, trusted players get permissions only in the town owned land, leaving player-owned plots to their normal plot perms.

Cumulative changes since 0.100.1.0
0.100.1.17
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganoReEvaderelukemangoLambsytomhmagic
MKieburtztypicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschip
SW1D3RSK1lexiccnjsuarezlMatthewEEllisonHerbertsStudiosNoisereactz
SmallSansSerifJustoPlayzNoikzGamingtrevor1097KeNickGongMilesBHuff
Mille12313roflmarvckeezeZenithDevvDynamite99CasperTimmy
MattWillenBloc-kxSTORMYxSHMKalqbEcoSMPTheeno74
Rekar7Folas1337vyvinNeumimToProjectGuinnessgageeet
PainOchocobradyyykennyyLemar98sdawwggSediton96Exygle
KermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-MartyGraphicHex
RandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxAustinGoodrichokorde12
fangguan233RandaeMCxxThyPopeCraig1020connorwallyPoseidonGames
Yatochka8RRRRzzzz2jeffthebassandrei106Ricola4325Nemcovs
NGStudiosusSeahossyMomshroomIntrabit71MetaverseRPNAldinaMapping
CrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraftCorruptedGreed
Odin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerredMdenton342
ConquerBouqiqiMailolRustyNailItsSynchroGl0W1ESemisol
MultipedBeatleFruitloopinsgorbyhailSexy-JuraHikitsune-RedMayorMike
TheNyloxkeijodputtcloverlucySurvivalFrenchWuQwQVaspei
and 53 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.17

2 months ago
  • Replace usage of deprecated IOUtils methods.
  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • New Command: /res outlawlist {playername} - Display the list of towns in which a resident is outlawed in. Leave out the optional player name to see the towns in which you are an outlaw.
  • New Permission Node: towny.command.resident.outlawlist
    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.
  • Close a loophole using out-of-jail teleports.

Cumulative changes since 0.100.1.0
0.100.1.16
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganolukemangoLambsytomhmagicMKieburtz
typicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschipSW1D3RSK1
lexiccnjsuarezlMatthewEEllisonHerbertsStudiosSmallSansSerifJustoPlayz
yossieJPNoikzGamingtrevor1097KeNickGongMilesBHuffMille12313
roflmarvckeezeZenithDevvDynamite99CasperTimmythatguycy
MattWillenBloc-kxSTORMYxSHMKalqbEcoSMPTheeno74
Rekar7Folas1337vyvinNeumimToProjectGuinnessdiskawrs
gageeetMicroweb4PainOchocobradyyykennyyLemar98sdawwggS
editon96ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
AustinGoodrichokorde12fangguan233RandaeMCxxThyPopeCraig1020
connorwallyPoseidonGamesYatochka8RRRRzzzz2jeffthebassandrei106
Ricola4325NemcovsNGStudiosusSeahossyMomshroomIntrabit71
MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSM
JunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879
shepherdjerredMdenton342ConquerBouannko03020ItsSynchroGl0W1E
SemisolFruitloopinsgorbyhailShiftSadSexy-JuraHikitsune-Red
MayorMikeTheNyloxkeijodputtcloverlucySurvivalFrenchWuQwQ
Vaspeiand 52 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.16

2 months ago
  • Enabled /plot group toggle taxed command for plot groups.
    • You can now properly enabled/disable plot taxes for groups of plots.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.72.0 to 3.74.0.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Remove locale message on first join, courtesy of Warrior with PR #7276.
  • Skip copying light data for our chunk snapshots, courtesy of Warrior with PR #7281.

Cumulative changes since 0.100.1.0
0.100.1.15
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganolukemangoLambsytomhmagicMKieburtz
typicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschipSW1D3RSK1
lexiccnjsuarezlMatthewEEllisonHerbertsStudiosSmallSansSerifJustoPlayz
yossieJPNoikzGamingtrevor1097KeNickGongMilesBHuffMille12313
ckeezeZenithDevvDynamite99CasperTimmythatguycyMattWillen
Bloc-kPeskdtxSTORMYxSHMKalqbEcoSMPTheeno74
Rekar7Folas1337vyvinNeumimToProjectGuinnessdiskawrs
gageeetMicroweb4PainOchocobradyyykennyyLemar98sdawwggS
editon96ExygleKermXnullXer0Rimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxAustinGoodrich
okorde12fangguan233RandaeMCxxThyPopeCraig1020connorwally
PoseidonGamesYatochka8RRRRzzzz2jeffthebassandrei106Ricola4325
NemcovsNGStudiosusMomshroomIntrabit71MetaverseRPNAldinaMapping
CrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraftCorruptedGreed
Odin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerredFrac11111
Mdenton342ConquerBouannko03020ItsSynchroGl0W1ESemisol
FruitloopinsgorbyhailShiftSadSexy-JuraHikitsune-RedMayorMike
TheNyloxkeijodputtcloverlucySurvivalFrenchWuQwQVaspei
and 51 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.15

2 months ago
  • Prevent falling blocks falling during unclaimed land regeneration.
    • Closes #7259.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Automatic config edit:
    • plugin.interfacing.using_economy moves to economy.using_economy
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.

Cumulative changes since 0.100.1.0
0.100.1.14
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganolukemangoLambsytomhmagicMKieburtz
typicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschipSW1D3RSK1
lexiccnjsuarezlMatthewEEllisonHerbertsStudiosReEvadereSmallSansSerif
JustoPlayzyossieJPNoikzGamingtrevor1097KeNickGongMilesBHuff
Mille12313ckeezeZenithDevvDynamite99CasperTimmythatguycy
MattWillenBloc-kPeskdtxSTORMYxSHMKalqbEcoSMP
Theeno74Rekar7Folas1337vyvinNeumimToProjectGuinness
diskawrsgageeetMicroweb4PainOchocobradyyykennyyLemar98s
dawwggSediton96ExygleKermXnullXer0Rimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
AustinGoodrichokorde12fangguan233RandaeMCxxThyPopeCraig1020
connorwallyPoseidonGamesYatochka8RRRRzzzz2jeffthebassandrei106
Ricola4325NemcovsNGStudiosusMomshroomIntrabit71MetaverseRPN
AldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraft
CorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerred
Frac11111Mdenton342ConquerBouannko03020ItsSynchroGl0W1E
SemisolFruitloopinsgorbyhailShiftSadSexy-JuraHikitsune-Red
MayorMikeTheNyloxkeijodputtcloverlucySurvivalFrenchWuQwQ
Vaspeiand 51 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below:

0.100.1.14

3 months ago
  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.
  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.
  • Fix comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.1 to 5.10.2.
  • Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2.
  • Add do-not-overwrite block list to worlds that affects wilderness explosion reverts.
    • Prevents wilderness explosions from overwriting newly placed blocks, ie chests inside of creeper holes.
    • Closes #7255.
  • New Config Option: new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace
    • Default: ""
    • This section is applied to new worlds as default settings when new worlds are detected.
    • This is the list of blocks that should not be overwritten by wilderness explosion reverts.
    • (if empty all blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)
    • This list is useful if you have a death chest plugin which could put a player's inventory inside chest that is inside of a regenerating creeper explosion pit.
    • For Example: By putting CHEST here you can prevent the chest from being overwritten by the dirt block that used to be there.

Cumulative changes since 0.100.1.0
0.100.1.13
  • Fix NameValidation issues.
0.100.1.12
  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.
    • Closes #7249.
  • Overhaul the NameValidation class.
  • Add the towny.command.resident.jail to the nomad section of the townyperms.yml file, so that players without a town can pay bail if they're jailed.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.65.0 to 3.72.0.
0.100.1.11
  • Remove version check from potion effect name method, courtesy of Warrior with PR #7235.
  • Remove explicit citizens dependency, courtesy of Warrior with PR #7236.
  • Replace deprecated plugin loader with manager, courtesy of Warrior with PR #7237.
  • Fix potential NPE when two towns are merged with no nation.
    • Closes #7240.
  • Add /t invite sent removeall command.
    • Closes #7238.
  • New Command: /town invite sent removeall
    • Removes all of the invites which a town has sent.
    • Requires the towny.command.town.invite.add permission node to use (same node used for removing one by one.)
0.100.1.10
  • Fix unkickable ranks preventing the outlawing of non-town members.
  • Handle recently deprecated player.getBedSpawnLocation.
0.100.1.9
  • Fix using_titles messages when entering towns.
    • Closes #7227.
0.100.1.8
  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.
  • API: TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)
  • Fix claiming particles breaking on Folia servers.
    • Closes #7222.
0.100.1.7
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • API: Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
0.100.1.6
  • API: Add TitleNotification object.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
0.100.1.5
  • Remove unneeded annotations.
  • Fix permission regression from 0.100.1.1.
  • Add a wrapper for getting potion names post-1.20.4.
0.100.1.4
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.65.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • Re-add the towny.command.town.claim.town.multiple permission node.
    • A child node of towny.command.town.claim.*.
    • Negate this node to stop towns claiming multiple plots at once, ie: with /t claim auto.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
0.100.1.3
  • Refactor townAdd method to better handle adding and revoking invites.
  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.
  • Add a configurable amount of bonus townblocks given to new towns.
    • Closes #7195.
  • New Config Option: claiming.new_town_bonus_claims
    • Default: 0
    • An amount of additional townblocks that a town will receive when it is first created, in addition to any amount given via the town_block_ratio or town_levels.
    • As an example: This can be used to add 10 townblocks to a town when it is made so the borders can be grown a bit more before the mayor has to seek out residents.
0.100.1.2
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
0.100.1.1
  • Refactor parts of the TownCommand class:
    • Refactor townAddResident method.
    • Refactor the town join command.
    • Refactor townSet and the subcommands.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • API: Added new methods to TownyAPI class to determine claim-ability:
    • TownyAPI#testTownClaimOrThrow(Town town, WorldCoord coordToClaim, boolean outpost, boolean newTown)
    • TownyAPI#testTownUnclaimOrThrow(Town town, WorldCoord coordToUnclaim)
  • Create Town object methods for determining if a town has enough residents to be a part of a nation, or to be the capital of a nation.
    • Moves backing logic into TownUtil.
  • Remove some verbose boolean returns.
  • Fix issues discovered in HealthRegenTimerTask where saturation gain was being unable to happen consistently when server TPS drops.
    • Code is now run Async during player evaluation, becoming Sync'd when we are about to heal someone.
    • Towny now properly uses the EntityRegainHealthEvent, reporting the correct amount of health gain, as well as not healing players if this event is cancelled.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.
  • New Config Option: global_town_settings.saturation_regen.also_prevent_saturation_loss
    • Default: true
    • When true players cannot become hungrier when in their own or an allied town.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.

Towny Sponsors

I want to give a big thank you to all of my sponsors:
These are the people that help to make Towny's support and development as active as it is,
and who supported me during this pre-release of Towny.

DrprofLuigiAllieDragonakup001ThePontificateTegulaThePigpebblehost
EblyssMrLoganolukemangoLambsytomhmagicMKieburtz
typicalsmartmanjshalbrookParvatisGitHubcobrex1gerardvanschipSW1D3RSK1
lexiccnjsuarezlMatthewEEllisonHerbertsStudiosReEvadereSmallSansSerif
JustoPlayzyossieJPNoikzGamingtrevor1097KeNickGongMilesBHuff
Mille12313ckeezeZenithDevvDynamite99CasperTimmythatguycy
MattWillenBloc-kPeskdtxSTORMYxSHMKalqbEcoSMP
Theeno74Rekar7Folas1337vyvinNeumimToProjectGuinness
diskawrsgageeetMicroweb4PainOchocobradyyykennyyLemar98s
dawwggSediton96ExygleKermXnullXer0Rimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
AustinGoodrichokorde12fangguan233RandaeMCxxThyPopeCraig1020
connorwallyPoseidonGamesYatochka8RRRRzzzz2jeffthebassandrei106
Ricola4325NemcovsMomshroomIntrabit71MetaverseRPNAldinaMapping
CrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraftCorruptedGreed
Odin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerredFrac11111
Mdenton342ConquerBouannko03020ItsSynchroGl0W1ESemisol
FruitloopinsgorbyhailShiftSadSexy-JuraHikitsune-RedMayorMike
TheNyloxkeijodputtcloverlucySurvivalFrenchBeeeffWuQwQ
Vaspeiand 51 private sponsors.

If you want to support the developer, become a sponsor.

(It's just like Patreon but instead 100% of your support goes to the developer.)

Plus there are Sponsor Plugins!

Important Links
Frequently Asked
Questions
How Towny Works Towny Install Guide Towny Update Guide
Other Towny Plugins Complete Changelog Default Config Files Commands/Permissions
Placeholders

⏬ Download available as a .jar file in the Assets section below: