Towny Versions Save

Towny Advanced Minecraft plugin for Bukkit/Spigot.

0.100.2.5

1 week ago
  • Fix spawn particles able to be drawn while Towny is disabled.
    • Closes #7372.
  • Fix regression from 0.100.2.4 where deleted town/nation bank refunds could cause money duplication, courtesy of Warrior with PR #7375.
    • Closes #7374.

Cumulative changes since 0.100.2.0
0.100.2.4
  • Skip showing the "Modes set:" message when someone has their town removed.
  • Add ability to pay out town and nation bank balances to the mayor or nation leader when possible, when a town or nation is deleted.
    • Closes #7370.
  • New Config Option: economy.banks.is_deleted_town_and_nation_bank_balances_paid_to_owner
    • Default: true
    • When set to true, a town or nation which is deleted will attempt to pay the balance bank balance to the mayor or leader.
    • This will only succeed if the town or nation has a mayor or leader.
  • Fix OutlawTeleportEvent being able to be thrown async.
  • Add the ability to see who is selling a plot.
    • Closes #7371.
  • New Config Option: notification.plot.forsaleby
    • Default: &e[For Sale by %s: %s]
  • Removed Config Option: notification.plot.forsale
  • Add better error message when you try to buy a plot you already own.
  • Update logging code, courtesy of Articdive with PR #7314.
    • Drops the usage of deprecated methods and begins using the towny.log file again.
    • Closes #5855.
0.100.2.3
  • Stop non-Towny-using worlds showing a ChunkNotification when entered.
  • Fix /ta unclaim throwing an NPE while the refund on unclaim feature is active.
  • Fix missing "info" from plot command tab completes.
  • Fix regression from 0.100.2.2 which broke the folia tasks.
0.100.2.2
  • Fix issue with max-allies-per-nation not being respected.
  • Add CancelledTownyTeleportEvent, thrown when a player has their towny spawn cancelled via moving, damage, or via the TownyAPI class.
    • Closes #7353.
  • Skip processing claim particles for unloaded chunks, courtesy of Warrior with PR #7351.
  • Add consumer methods to the task scheduler, courtesy of Warrior with PR #7264.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.78.0 to 3.80.0.
  • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1.
  • Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1.
0.100.2.1
  • Fix regression dating back to 0.99.5.17 which broke the are_new_residents_prompted_to_town_spawn feature.
  • Fix regression dating back to 0.100.1.8, which caused the hasWorld causing SQL dbs to not load worlds with capital letters' townblocks.
    • Closes #7337.
  • Fix unclaim entity delete not working on folia, courtesy of Warrior with PR #7345.
  • Fix potential NPE in the TownyDamageEvent, courtesy of FiLKoNd with PR #7339. (First-Time Contributor!)

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
tomhmagicxShadowLightxMKieburtztypicalsmartmanjshalbrookParvatisGitHub
sde-wolfcobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllison
NoisereactzSmallSansSerifworstvideogamerNoikzGamingtrevor1097KeNickGong
MilesBHuffroflmarvZenithDevvDynamite99CasperTimmyMattWillen
Bloc-kxSTORMYxSHMKalqbEcoSMPTheeno74ItzXPurpleX
MrQuackiosRekar7Folas1337vyvinNeumimToProjectGuinness
gageeetPainOchocoLemar98snhannon9dawwggSediton96
ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxMatheny01
AustinGoodrichokorde12RandaeMCxxThyPopeCraig1020PoseidonGames
Yatochka8Ricola4325DruidBrandonX-DigitalninjanayrledurBetr101
dduri8674Oppy-Gasaijb0sSaytenicGirlsMomshroomIntrabit71
MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSM
JunkieCraftCorruptedGreedGranpaGamerMCOdin-The-All-FatherImperialSam12Ashparty
Roman90879qiqiMaijosegoustTriaieSilaXXSTheStarFlare
tlm9201Supersmurf82ItsSynchroGl0W1EMultipedBeatleFruitloopins
gorbyhailSexy-JurabeabuenodevHikitsune-RedTheNyloxkeijodputt
cloverlucyand 50 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.2.4

1 week ago
  • Skip showing the "Modes set:" message when someone has their town removed.
  • Add ability to pay out town and nation bank balances to the mayor or nation leader when possible, when a town or nation is deleted.
    • Closes #7370.
  • New Config Option: economy.banks.is_deleted_town_and_nation_bank_balances_paid_to_owner
    • Default: true
    • When set to true, a town or nation which is deleted will attempt to pay the balance bank balance to the mayor or leader.
    • This will only succeed if the town or nation has a mayor or leader.
  • Fix OutlawTeleportEvent being able to be thrown async.
  • Add the ability to see who is selling a plot.
    • Closes #7371.
  • New Config Option: notification.plot.forsaleby
    • Default: &e[For Sale by %s: %s]
  • Removed Config Option: notification.plot.forsale
  • Add better error message when you try to buy a plot you already own.
  • Update logging code, courtesy of Articdive with PR #7314.
    • Drops the usage of deprecated methods and begins using the towny.log file again.
    • Closes #5855.

Cumulative changes since 0.100.2.0
0.100.2.3
  • Stop non-Towny-using worlds showing a ChunkNotification when entered.
  • Fix /ta unclaim throwing an NPE while the refund on unclaim feature is active.
  • Fix missing "info" from plot command tab completes.
  • Fix regression from 0.100.2.2 which broke the folia tasks.
0.100.2.2
  • Fix issue with max-allies-per-nation not being respected.
  • Add CancelledTownyTeleportEvent, thrown when a player has their towny spawn cancelled via moving, damage, or via the TownyAPI class.
    • Closes #7353.
  • Skip processing claim particles for unloaded chunks, courtesy of Warrior with PR #7351.
  • Add consumer methods to the task scheduler, courtesy of Warrior with PR #7264.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.78.0 to 3.80.0.
  • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1.
  • Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1.
0.100.2.1
  • Fix regression dating back to 0.99.5.17 which broke the are_new_residents_prompted_to_town_spawn feature.
  • Fix regression dating back to 0.100.1.8, which caused the hasWorld causing SQL dbs to not load worlds with capital letters' townblocks.
    • Closes #7337.
  • Fix unclaim entity delete not working on folia, courtesy of Warrior with PR #7345.
  • Fix potential NPE in the TownyDamageEvent, courtesy of FiLKoNd with PR #7339. (First-Time Contributor!)

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
tomhmagicxShadowLightxMKieburtztypicalsmartmanjshalbrookParvatisGitHub
sde-wolfcobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllison
NoisereactzSmallSansSerifworstvideogamerNoikzGamingtrevor1097KeNickGong
MilesBHuffroflmarvZenithDevvDynamite99CasperTimmyMattWillen
Bloc-kxSTORMYxSHMKalqbEcoSMPTheeno74ItzXPurpleX
MrQuackiosRekar7Folas1337vyvinNeumimToProjectGuinness
gageeetPainOchocoLemar98snhannon9dawwggSediton96
ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxMatheny01
AustinGoodrichokorde12RandaeMCxxThyPopeCraig1020PoseidonGames
Yatochka8Ricola4325DruidBrandonX-DigitalninjanayrledurBetr101
dduri8674Oppy-Gasaijb0sMomshroomIntrabit71MetaverseRPN
AldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraft
CorruptedGreedGranpaGamerMCOdin-The-All-FatherImperialSam12AshpartyRoman90879
shepherdjerredqiqiMaijosegoustTriaieSilaXXSTheStarFlare
tlm9201Supersmurf82ItsSynchroGl0W1EMultipedBeatleFruitloopins
gorbyhailSexy-JurabeabuenodevHikitsune-RedTheNyloxkeijodputt
cloverlucyand 50 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.2.3

2 weeks ago
  • Stop non-Towny-using worlds showing a ChunkNotification when entered.
  • Fix /ta unclaim throwing an NPE while the refund on unclaim feature is active.
  • Fix missing "info" from plot command tab completes.
  • Fix regression from 0.100.2.2 which broke the folia tasks.

Cumulative changes since 0.100.2.0
0.100.2.2
  • Fix issue with max-allies-per-nation not being respected.
  • Add CancelledTownyTeleportEvent, thrown when a player has their towny spawn cancelled via moving, damage, or via the TownyAPI class.
    • Closes #7353.
  • Skip processing claim particles for unloaded chunks, courtesy of Warrior with PR #7351.
  • Add consumer methods to the task scheduler, courtesy of Warrior with PR #7264.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.78.0 to 3.80.0.
  • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1.
  • Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1.
0.100.2.1
  • Fix regression dating back to 0.99.5.17 which broke the are_new_residents_prompted_to_town_spawn feature.
  • Fix regression dating back to 0.100.1.8, which caused the hasWorld causing SQL dbs to not load worlds with capital letters' townblocks.
    • Closes #7337.
  • Fix unclaim entity delete not working on folia, courtesy of Warrior with PR #7345.
  • Fix potential NPE in the TownyDamageEvent, courtesy of FiLKoNd with PR #7339. (First-Time Contributor!)

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
tomhmagicxShadowLightxMKieburtztypicalsmartmanjshalbrookParvatisGitHub
sde-wolfcobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllison
NoisereactzSmallSansSerifworstvideogamerNoikzGamingtrevor1097KeNickGong
MilesBHuffroflmarvZenithDevvDynamite99CasperTimmyMattWillen
Bloc-kxSTORMYxSHMKalqbEcoSMPTheeno74ItzXPurpleX
MrQuackiosRekar7Folas1337vyvinNeumimToProjectGuinness
gageeetPainOchocoLemar98snhannon9dawwggSediton96
ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxMatheny01
AustinGoodrichokorde12RandaeMCxxThyPopeCraig1020PoseidonGames
Yatochka8Ricola4325DruidBrandonX-DigitalninjanayrledurBetr101
dduri8674Oppy-GasaiMomshroomIntrabit71MetaverseRPNAldinaMapping
CrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraftCorruptedGreed
Odin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerredqiqiMai
josegoustTriaieSilaXXSTheStarFlaretlm9201Supersmurf82
ItsSynchroGl0W1EMultipedBeatleFruitloopinsgorbyhailSexy-Jura
beabuenodevHikitsune-RedTheNyloxkeijodputtcloverlucyand 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.2.2

2 weeks ago
  • Fix issue with max-allies-per-nation not being respected.
  • Add CancelledTownyTeleportEvent, thrown when a player has their towny spawn cancelled via moving, damage, or via the TownyAPI class.
    • Closes #7353.
  • Skip processing claim particles for unloaded chunks, courtesy of Warrior with PR #7351.
  • Add consumer methods to the task scheduler, courtesy of Warrior with PR #7264.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.78.0 to 3.80.0.
  • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1.
  • Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1.

Cumulative changes since 0.100.2.0
0.100.2.1
  • Fix regression dating back to 0.99.5.17 which broke the are_new_residents_prompted_to_town_spawn feature.
  • Fix regression dating back to 0.100.1.8, which caused the hasWorld causing SQL dbs to not load worlds with capital letters' townblocks.
    • Closes #7337.
  • Fix unclaim entity delete not working on folia, courtesy of Warrior with PR #7345.
  • Fix potential NPE in the TownyDamageEvent, courtesy of FiLKoNd with PR #7339. (First-Time Contributor!)

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
tomhmagicxShadowLightxMKieburtztypicalsmartmanjshalbrookParvatisGitHub
sde-wolfcobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllison
NoisereactzSmallSansSerifworstvideogamerNoikzGamingtrevor1097KeNickGong
MilesBHuffMille12313roflmarvZenithDevvDynamite99CasperTimmy
MattWillenBloc-kxSTORMYxSHMKalqbEcoSMPTheeno74
ItzXPurpleXMrQuackiosRekar7Folas1337vyvinNeumimTo
ProjectGuinnessgageeetPainOchocoLemar98snhannon9dawwggS
editon96ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
Matheny01AustinGoodrichokorde12fangguan233RandaeMCxxThyPope
Craig1020PoseidonGamesYatochka8jeffthebassRicola4325Nemcovs
NGStudiosusDruidBrandonX-DigitalninjanayrledurBetr101Momshroom
Intrabit71MetaverseRPNAldinaMappingCrypticBladesspikehiddenSecondEarthOnline
AncientSMJunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12Ashparty
Roman90879shepherdjerredqiqiMaijosegoustTriaieSilaXXS
TheStarFlaretlm9201ItsSynchroGl0W1ESemisolMultipedBeatle
FruitloopinsgorbyhailSexy-JurabeabuenodevHikitsune-RedTheNylox
keijodputtcloverlucyand 50 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.2.1

3 weeks ago
  • Fix regression dating back to 0.99.5.17 which broke the are_new_residents_prompted_to_town_spawn feature.
  • Fix regression dating back to 0.100.1.8, which caused the hasWorld causing SQL dbs to not load worlds with capital letters' townblocks.
    • Closes #7337.
  • Fix unclaim entity delete not working on folia, courtesy of Warrior with PR #7345.
  • Fix potential NPE in the TownyDamageEvent, courtesy of FiLKoNd with PR #7339. (First-Time Contributor!)

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
tomhmagicxShadowLightxMKieburtztypicalsmartmanjshalbrookParvatisGitHub
sde-wolfcobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllison
NoisereactzSmallSansSerifworstvideogamerNoikzGamingtrevor1097KeNickGong
MilesBHuffMille12313roflmarvZenithDevvDynamite99CasperTimmy
MattWillenBloc-kxSTORMYxSHMKalqbEcoSMPTheeno74
ItzXPurpleXMrQuackiosRekar7Folas1337vyvinNeumimTo
ProjectGuinnessgageeetPainOchocoLemar98sdawwggSediton96
ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMPAlink-Marty
GraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxMatheny01
AustinGoodrichokorde12fangguan233RandaeMCxxThyPopeCraig1020
PoseidonGamesYatochka8jeffthebassRicola4325NemcovsNGStudiosus
DruidBrandonX-DigitalninjanayrledurMomshroomIntrabit71MetaverseRPN
AldinaMappingCrypticBladesspikehiddenSecondEarthOnlineAncientSMJunkieCraft
CorruptedGreedOdin-The-All-FatherImperialSam12AshpartyRoman90879shepherdjerred
qiqiMaijosegoustTriaieSilaXXSTheStarFlareItsSynchro
Gl0W1ESemisolMultipedBeatleFruitloopinsgorbyhailSexy-Jura
Hikitsune-RedTheNyloxkeijodputtcloverlucyand 49 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.2.0

1 month ago

Towny Advanced 0.100.2.0

Release contains:

Towny 0.100.2.0 TownyChat 0.115

Welcome to Towny 0.100.2.0.
Towny 0.100.2.0 is the third release in the 0.100.*.* series!
0.100.2.0 supports all versions of Minecraft 1.16 and newer.
This version adds some new features requested by my Sponsors, as well as a fair bit of refactoring to clean up the codebase.
This version also contains critical fixes that you want on your server!
This is a drag-and-drop update: just replace your old .jars with the new ones and Towny will take care of the rest of the update by itself. Your config file and Towny database will not be harmed.
➕ Added (23)

➕ Added:

  • 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.
  • 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.
  • 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.
  • 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.
  • Add a configurable amount of bonus townblocks given to new towns.

    • Closes #7195.
  • Add /t invite sent removeall command.

    • Closes #7238.
  • Enabled /plot group toggle taxed command for plot groups.

    • You can now properly enabled/disable plot taxes for groups of plots.
  • Add config setting to prevent trusted players using personally-owned land in towns.

    • Closes #7296.
  • Add optional title message showing how long until a player will spawn, when using the spawning warmup timer.

    • Partially fills #7303.
  • 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.
  • Make it possible for ruined towns to slowly open up their plot permissions.

    • Closes #7275.
  • Add optional permission node required to add colours to title and surnames.

    • Closes #7217.
  • Added config option to turn on/off the saturation top-up that goes along with the health-regen in towns.

  • Add a wrapper for getting potion names post-1.20.4.

  • 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.

  • Add log messages describing why a town was deleted when it was ruined for too long, and when the last resident leaves town.

  • Add hint to use /t or /n deposit when your town/nation is running out of money in the login warning message.

  • Create a readme file that generates in Towny's lang folder, explaining how to properly use the translation files.

  • Make our custom registered commands identifiable, courtesy of Warrior with PR #7263.
  • Add list metadata type, courtesy of Warrior with PR #7274.
  • Add /res outlawlist command, courtesy of Fruitloopins with PR #7280.
    • Closes #7278.
  • Add sanctioned towns hover component to nation status screen, courtesy of Fruitloopins with PR #7207.
  • Add nation_resident LuckPerms context, courtesy of Sybsuper with PR #7218. (First-Time Contributor!)

➕ Automatic Config Edits (1)

➕ Towny's default config and world files will have the following automatic changes made:

  • Moved Config Option: plugin.interfacing.using_economy moves to economy.using_economy
    • Your config's setting value will be transferred to the new location.

✨ Command Changes (5)
✨ New Commands (5)

✨ New Commands:

  • /town cede plot {townname}
    • Attempts to give the townblock the player is stood in, to the given town.
  • /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.)
  • /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.
  • /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.
  • /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.

✨ Changed Commands (0)

✨ Changed Commands:

  • None.

❌ Removed Commands (0)

❌ Removed Commands:

  • None.


📕 Config Changes (9)
📕 New Config Options (9)

📕 New Config Options:

These new settings will be added to your config with their default settings.

  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

❌ Removed Config Options (0)

❌ Removed Config Options:

  • None.


🔑 Permission Node Changes (6)
🔑 New Permission Nodes (6)

🔑 New Permission Nodes:

No change required in townyperms.yml.

  • New automatic townyperms.yml edit: towny.command.resident.outlawlist will be added to the townyperms.yml nomad section.

  • 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.
  • towny.command.resident.outlawlist

    • Child node of towny.command.resident.*
    • No changes required to the townyperms.yml.
  • 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
  • towny.command.town.set.title.colours

    • Not a child node, must be given if you enable does_adding_colour_codes_require_permission_node.
  • towny.command.nation.set.title.colours

    • Not a child node, must be given if you enable does_adding_colour_codes_require_permission_node.

❌ Removed Permission Nodes (0)

❌ Removed Permission Nodes:

  • None.

----
💻 API Changes (6)

💻 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)
  • Add TitleNotification object.
  • Add TitleNotificationEvent.
    • Used by other plugins to alter what Title and Subtitle is shown by Towny when using_titles is enabled.
  • TownListDisplayedNumResidentsCalculationEvent.
    • Useful for when you want to artifically alter a town's resident count in the /t list pages.
    • Closes #7214.
  • Add town price to the PreNewTownEvent.
  • Added TownCedePlotEvent
    • A cancellable event thrown when a mayor uses /town cede plot {townname}.

🔧 Fixed (31)

🔧 Fixed:

  • 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.
  • Fix claiming particles breaking on Folia servers.

    • Closes #7222.
  • Fix using_titles messages when entering towns.

    • Closes #7227.
  • Fix potential NPE when two towns are merged with no nation.

    • Closes #7240.
  • 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.
  • Prevent falling blocks falling during unclaimed land regeneration.

    • Closes #7259.
  • 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.
  • Fix minimum_amount_of_residents_in_town_for_outpost being used while limit_outposts_using_town_and_nation_levels is also true.

    • While you limit your outposts by the town/nation levels Towny will ignore any minimum_amount_of_residents_in_town_for_outpost value.
  • Fix non-mayors being able to add non-kickable-ranked residents as outlaws, which would have allowed them to be kicked.

  • Fix returning null in the relational placeholder code, returning the no-relation colour instead.

  • Fix not being able to add towns to nations when the residents-per-nation setting is 0.

  • Fix SQL db's trying to load TownBlocks from world which aren't loaded into Towny.

  • Fix unkickable ranks preventing the outlawing of non-town members.

  • Fix missing feedback messages when a resident cannot pay their plot or town taxes.

  • Close a loophole using out-of-jail teleports.

  • 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.

  • Reset player caches when using /ta reload.

  • Fix potential NPE when loading empty cooldowns.json making Towny unable to load.

  • Fix mob removal on folia, courtesy of Warrior with PR #7262.
    • Closes #7261, #7221, #7202, #7253.
  • 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 comod error when removing all sent invites, courtesy of Warrior with PR #7254.
  • Remove magic values from spawnpoint ring offsets, courtesy of Warrior with PR #7267.
  • Remove uuid percentage tracking, courtesy of Warrior with PR #7266.
  • Futureproof falling block checking, courtesy of Warrior with PR #7273.
  • 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.
  • Fix mob removal npe when townblock has no town, courtesy of Warrior with PR #7285.

🔧 Fixed Regressions(8)

🔧 Fixed Regressions:

  • 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.
  • Fix permission regression from 0.100.1.1.
  • Fix Title/Subtitle notification regression from 0.100.1.7.
  • Fix NameValidation issues.
  • Make use of the disallow numbers in town names config option again.
  • Fix being unable to unset titles and surnames.
  • Fix regresssion that started in 0.100.1.1, solving the proximity test to nearest town being flipped.
  • 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.

🔧 Refactors(25)

🔧 Refactors:

  • Refactor townAddResident method.
  • Refactor the town join command.
  • Refactor townSet and the subcommands.
  • Refactor the TownCommand's town kicking method, and decouple the admin version of town kicking.
  • Refactor townAdd method to better handle adding and revoking invites.
  • Refactor the TownyWorldCommand class.
  • Refactor the PlotClaim task.
  • Refactor MapHUD class.
  • Refactor onEntityChangeBlockEvent method.
  • Refactor some of TownyFormatter's methods, mainly moving some component-creation out into their related Util classes.
  • Overhaul the NameValidation class.
  • Remove some verbose boolean returns.
  • Remove unneeded annotations.
  • 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.
  • Add NationUtil.
  • Move max allies test into NationUtil.
  • Add more nation-joining tests to the NationUtil.
  • Refactor nation adding towns in the NationCommand class.
  • Refactor max residents per town code into TownUtil accessed via a new Town method.
  • Refactor parts of the NationCommand class, cleaning up edge case scenarios when towns might join/create nations when they shouldn't.
  • Handle recently deprecated player.getBedSpawnLocation.
  • Replace usage of deprecated IOUtils methods.
  • Move using_economy to the eco section of the config, courtesy of Warrior with PR #7265.
  • Make PlotClaim a runnable, courtesy of Warrior with PR #7268.
  • Reorganize test directory layout, courtesy of Warrior with PR #7269.

🌏 Language Updates (0)

🌏 Language Updates:

  • None.

🌏 Dependency Updates (10)

🌏 Dependency Updates:

  • Bump Spigot 1.20.2 to 1.20.4.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.60.0 to 3.78.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5.
  • 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.
  • Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0.
  • 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 org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1.

👽 Placeholder Updates (1)

👽 Placeholder Updates:

  • 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.

💬 TownyChat Changes (1)

💬 TownyChat Changes:

  • Fix channelTag not parsing properly.

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.

MrLoganoMomshroomCobrex1DrprofLuigiSmallSansSerifTheNylox
pebblehostNoikzGamingThePontificateAllieDragonTegulaThePigGl0W1E
Eblyssakup001KelbbieAldinaMappingCrypticBladesEcoSMP
Theeno74Rekar7Lambsyguillermodiazkiernansvyvinkeijodputt
NeumimTovette-danielAncientSMJunkieCraftHikitsune-RedDynamite99
ItsSynchroEpicSpeedMrLoganoCorruptedGreedProjectGuinnesstrevor1097
MetaverseRPCorruptVDGabrielTKPolo-luluFolas1337gageeet
PainOchoco Bloc-kxSTORMYxSHMManul-NewtonPolo-luluAshparty
Roman90879editon96 Intrabit71gerardvanschip TheWordSmith123CasperTimmy
MKieburtzExygleKermXnullXer0gorbyhailRimuru-Tempest-IMP
Alink-MartyMilesBHuffGraphicHexspikehiddentypicalsmartmanKeNickGong
RandalABurdJrDarioMaviliaSk8nkillxCptSpiffyxAustinGoodrichcloverlucy
MatthewEEllisonFruitloopinstomhmagicSW1D3RSK1RandaeMCSecondEarthOnline
MattWillenlukemangojshalbrookNicholasJBondZenithDevvSemisol
Craig1020 Arclite-io PoseidonGamesConquerBou Yatochka8Odin-The-All-Father
jeffthebassfangguan233Mille12313Ricola4325BeeeffParvatisGitHub
ckeezeSexy-Juraokorde12 ImperialSam12 NemcovsNGStudiosus
roflmarvTylorTurner MultipedBeatleNoisereactzReEvadereqiqiMai
xXPLFOXPLXx josegoustDruidBrandon MrQuackios jsuarezlsde-wolf
worstvideogamer xShadowLightxTriaieMatheny01SilaXXS X-Digitalninja
nayrledurand 56 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 .zip file in the Assets section below:

0.100.1.24

1 month ago
  • Fix minimum_amount_of_residents_in_town_for_outpost being used while limit_outposts_using_town_and_nation_levels is also true.
    • While you limit your outposts by the town/nation levels Towny will ignore any minimum_amount_of_residents_in_town_for_outpost value.
  • Fix potential NPE when loading empty cooldowns.json making Towny unable to load.
  • Fix creatures unable to use switches in the wilderness.
    • Closes #7334.

Cumulative changes since 0.100.1.0
0.100.1.23
  • 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.
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
tomhmagicxShadowLightxMKieburtztypicalsmartmanjshalbrookParvatisGitHub
sde-wolfcobrex1gerardvanschipSW1D3RSK1lexiccnMatthewEEllison
NoisereactzSmallSansSerifworstvideogamerbradleybrandNoikzGamingtrevor1097
KeNickGongMilesBHuffMille12313roflmarvckeezeZenithDevv
Dynamite99CasperTimmyMattWillenBloc-kxSTORMYxSHMKalqb
EcoSMPTheeno74MrQuackiosRekar7Folas1337vyvin
NeumimToProjectGuinnessgageeetPainOchocoLemar98sdawwggS
editon96ExygleKermXnullXer0TylorTurnerRimuru-Tempest-IMP
Alink-MartyGraphicHexRandalABurdJrDarioMaviliaSk8nkillxCptSpiffyx
Matheny01AustinGoodrichokorde12fangguan233RandaeMCxxThyPope
Craig1020PoseidonGamesYatochka8RRRRzzzz2jeffthebassRicola4325
annko03020NemcovsNGStudiosusDruidBrandonX-Digitalninjanayrledur
MomshroomIntrabit71MetaverseRPNAldinaMappingCrypticBladesspikehidden
SecondEarthOnlineAncientSMJunkieCraftCorruptedGreedOdin-The-All-FatherImperialSam12
AshpartyRoman90879shepherdjerredMdenton342ConquerBouqiqiMai
lolRustyNailxXPLFOXPLXxjosegoustTriaieSilaXXSItsSynchro
Gl0W1ESemisolMultipedBeatleFruitloopinsgorbyhailSexy-Jura
Hikitsune-RedTheNyloxkeijodputtcloverlucySurvivalFrenchand 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.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: