Skip to content

fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.12#504

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/com.palmergames.bukkit.towny-towny-0.x
Open

fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.12#504
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/com.palmergames.bukkit.towny-towny-0.x

Conversation

@renovate
Copy link

@renovate renovate bot commented Mar 1, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
com.palmergames.bukkit.towny:towny 0.102.0.70.102.0.12 age confidence

Release Notes

TownyAdvanced/Towny (com.palmergames.bukkit.towny:towny)

v0.102.0.12: for MC 1.19.* & 1.20.* & 1.21.*

Compare Source

  • Fix a bunch of nation and town level weirdness, courtesy of Warrior with PR #​8091.
    • Fixed getTownLevelMax always being 1 too high
    • Fixed TownLevelDecrease/IncreaseEvent firing for towns that have a manually set town level.
    • Fixed the code around the Town/NationLevelDecrease/IncreaseEvent bypassing the level calculate events, possibly causing them to be wrongly fired when a plugin is calculating its own levels with the level calculate events.
    • Town merge:
      • Fixed the town's resident amount being used instead of the nation's resident amount for max outpost calculations.
      • Fixed max purchased blocks not using the number of townblocks to calculate the town level when configured to do so.
      • Fixed the purchased and bonus blocks of the succumbing town not being limited by the town block limit option when the town_block_ratio is in use.
    • Fixed nation level methods wrongly using the modifier and level interchangeably (i.e. getNationLevelFromGivenInt was returning the floored modifier rather than the actual level).
    • Fix not throwing PlayerChangePlotEvents for passengers.
    • Add NationRangeAllowTownEvent, courtesy of Veyronity with PR #​8128.
      • An event thrown when a town is assessed during the nation proximity tests, allowing plugins to modify nation proximity rules on a per-town basis.
    • Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.1 to 3.6.2.

Cumulative changes since 0.102.0.0
0.102.0.11
  • Prevent renaming town/nation files when name is invalid, courtesy of Warrior with PR #​8137.
    • Flatfile databases which loaded towns/nations with invalid names could result in a town/nation file being created with a name instead of a UUID.
0.102.0.10
  • Fix HUDManager not accepting added HUDs.
  • Fix empty nations saving themselves instead of getting deleted.
  • Add only_remove_claim_count for inactive resident claim limits, courtesy of GoodrichDev with PR #​8119.
    • When delete_old_residents.enable, only_remove_town, and only_remove_claim_count are all true (and delete_only_townless is false),
      residents who are offline longer than deleted_after_time no longer count toward ratio-based max town blocks.
    • Resident data is kept: purge skips removing town/deleting residents in this mode.
  • New Config Option: resident_settings.delete_old_residents.only_remove_claim_count
    • Default: false
    • When true (and only_remove_town is true) residents are kept and only stop counting toward town claim limits after deleted_after_time.
  • Add /ta resident set for lastonline/registered with timestamp validation, courtesy of GoodrichDev with PR #​8120.
  • New Command: /ta resident set registered
    • Sets the resident registered time with the timestamp being a long.
  • New Command: /ta resident set lastonline
    • Sets the resident lastonline time with the timestamp being a long.
  • Bump org.bstats:bstats-bukkit from 3.1.0 to 3.2.1.
  • Add option to consider nation enemies as town outlaws, courtesy of Captain-S0L0 with PR #​8132. (First-Time Contributor!)
  • New Config Option: global_town_settings.consider_enemies_outlaws
    • Default: false
    • If set to true, when a town is in a nation any player in another nation that the town's nation considers enemies will be considered an outlaw in that town.
  • Improve NameValidation checks for banned names, courtesy of Veyronity with PR #​8133.
    • Prevents Towns and Nations being named with subcommands of /town and /nation.
    • Replaced hard coded list with auto-populating list, which now also includes TownyCommandAddonAPI subcommands.
  • Add cooldown on how often towns & nations can request a merge with the same target, courtesy of Veyronity with PR #​8134.
  • New Config Option: global_town_settings.merge_request_cooldown_time
    • Default: 60
    • Number of seconds that must pass before a town can send a merge request to the same target.
  • New Config Option: global_nation_settings.merge_request_cooldown_time
    • Default: 60
    • Number of seconds that must pass before a nation can send a merge request to the same target.
0.102.0.9
  • Remove some townyadmincommand permission tests in favour of subcommand permission tests, allowing for more fine-grained permission node configurations.
    • towny.command.townyadmin.town.*
    • towny.command.townyadmin.nation.*
    • towny.command.townyadmin.resident.*
    • towny.command.townyadmin.toggle.*
    • towny.command.townyadmin.plot.*
    • The subcommands of these commands now rely soley on their own permission node, and do not require the parent permission node.
  • Fix nation-level-getting broken in 0.102.0.8.
0.102.0.8
  • Fix outposts not following the min_distances_ignored_for_towns_in_same_nation and min_distances_ignored_for_towns_in_allied_nation
    when min_distance_for_outpost_from_plot is tested while creating an outpost using /t claim outpost.
  • Fix plot command being blocked in ruined Towns for players who are not town members.
  • New PAPI Placeholder: %townyadvanced_town_outposts_claimed%
    • Displays how many outposts a town has, when the player has a town.
    • Closes #​8114.
  • Bump junit.version from 6.0.2 to 6.0.3.
  • Add setting manual NationLevels onto Nations, courtesy of confusedalex with PR #​8112. (First-Time Contributor!)
  • New Command: /ta nation NATIONNAME setnationlevel #|clear.
  • New Permission Node: towny.command.townyadmin.nation.setnationlevel
    • Child node of towny.command.townyadmin.nation.* and towny.admin.
  • Add Scoreboard/HUD support for Folia, convert Scoreboards to Adventure.
  • Ignore colors in length validation, strip unwanted minimessage tags, courtesy of Veyronity with PR #​8116.
  • Bump org.jetbrains:annotations from 26.0.2 to 26.1.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.4 to 3.5.5.
  • Add Interaction entity to right click protected list.
  • Lower listener priorities for block events, courtesy of Warrior with PR #​8123.
0.102.0.7
  • Add new CHESTS_WITHOUT_ENDERCHEST group, usable in the config switch_ids list, includes all chests but the enderchest.
  • Add getFormattedTimeValue that accepts a player locale.
  • Fix adminbypass mode not applying to nationzones.
  • Fix title and surname settings issues.
  • Restrict usable minimessage tags in titles/surnames, courtesy of Warrior with PR #​8096.
  • Re-add removed res_8 lang string, courtesy of Warrior with PR #​8097.
  • Add new hovers to town and nation lists.
    • Separate spawn and town/nation status screen hovers/clickables are now available.
    • Closes #​8100.
  • Add PLOT_GROUP_TOGGLE to TownyCommandAddonAPI, courtesy of Veyronity with PR #​8107.
  • Bump me.clip:placeholderapi from 2.11.7 to 2.12.2.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.14.1 to 3.15.0.
0.102.0.6
  • Fix titles messages showing their subtitle in the title position.
  • Fix towny_teleport_warmup_seconds permission node not working.
  • Fix copper golem test that caused Could not pass event ItemTransportingEntityValidateTargetEvent spam.
  • Bump net.coreprotect:coreprotect from 22.4 to 23.1.
  • Bump me.clip:placeholderapi from 2.11.6 to 2.11.7.
  • Bump org.apache.commons:commons-compress from 1.26.2 to 1.28.0.
  • Fix the mayor succession event not being fired, courtesy of Warrior with PR #​8086.
  • Skip proximity checks when minimum plot distance is set to 0, courtesy of MakcNmk with PR #​8087. (First-Time Contributor!)
0.102.0.5
  • This version includes Major Changes to the database structure which took place in 0.102.0.4!
  • Enforce notnull for economy account name/uuid fields, courtesy of Warrior with PR #​7705.
  • Fix IndexOutOfBounds exception in /t join, courtesy of Veyronity with PR #​8062.
  • Fix SQL loading of forSale, forSalePrice, and forSaleTime, courtesy of Groovymeister with PR #​8063. (First-Time Contributor!)
  • Add info/meta node for overriding teleport warmup.
  • New Permission Node: towny_teleport_warmup_seconds.N
  • Bump junit.version from 5.13.4 to 6.0.2.
  • Bump net.luckperms:api from 5.4 to 5.5.
  • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0.
  • Bump net.milkbowl.vault:VaultUnlockedAPI from 2.9 to 2.15.
  • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.2 to 3.12.0.
  • Fix itemuse list not being used against projectiles which are fired into the air.
  • Allow empty towns to turn into ruins, courtesy of Warrior with PR #​8071.
  • New config option: town_ruining.empty_towns_become_ruins
    • Default: false
    • When enabled, when the last resident is removed from a town and it becomes empty (such as when inactive resident deletion is enabled),
      the town will turn into a ruin instead of being immediately removed.
  • Fix IllegalArgumentException when a plugin we integrate with has a bad version, courtesy of Warrior with PR #​8072.
  • Fix unneeded msg_invalid_name exception message from /n enemy, courtesy of pernio with PR #​8073. (First-Time Contributor!)
  • Add a cooldown to prevent towns spamming residents by outlawing and unoutlawing them, courtesy of Veyronity with PR #​8074.
  • New Config Option: resident_settings.warn_player_on_outlaw_message_cooldown_in_seconds
    • Default: 30
    • How many seconds in between warning messages, to prevent spam.
0.102.0.4
  • UUID Database Update!
    • READ CAREFULLY, THIS UPDATE HAS CHANGES THAT CANNOT BE REVERSED EASILY.
    • Since Minecraft added UUIDs to players there has always been the idea of changing Towny over to using UUIDs as the main key in our database,
      but due to database instability this was not something that was considered a smart change. Database stability was majorly improved years ago
      however and starting in 2022 and 2023 I (LlmDl,) had pull requests on deck exploring/planning what a UUID-based database would look like for
      Towny. In the middle-to-late 2025 Warrior decided to revive the UUID database concept, breaking things into bite-sized pull requests that
      made the concept easier to review and merge. Those pull requests are as follows:
      • Load UUIDs for residents, towns & nations early, courtesy of Warrior with PR #​7945.
      • Replace references to names with UUIDs in the database, courtesy of Warrior with PR #​7962.
      • Clean up town/nation/resident renaming logic, courtesy of Warrior with PR #​7963.
      • Use UUIDs for town/nation/resident file names in flatfile, courtesy of Warrior with PR #​8023.
        Thanks to Warrior's efforts the UUID database has become a reality!
    • What this means for Towny server admins:
      • The database no longer saves using resident, town and nation names. Instead you will see UUID-named .txt files in the resident, town and
        nation folders, and UUIDs in the lists of friends, enemies and allies.
      • Once you updated to this version your database will be converted and there is no going back. Towny will create backups of your pre-UUID
        database if you have backups enabled in the Towny config.yml and you are using Towny in flatfile!
      • If your Towny database is stored in MYSQL you need to make your own backup! Towny doesn't back up MYSQL databases!
    • Benefits:
      • Your Towny database just got more error-proof.
      • Renaming of residents, towns, nations should no longer be prone to edge-case scenarios that could cause issues.
      • Server hosts which don't allow some unicode characters in the server file system's filenames will no longer fail to save/load towns and
        nations with special (usually accented,) characters.
      • If you change hosts and your future-host does not allow the above unicode characters to be used in the filesystem, your server will not
        immediately fail to load!
      • The main issue with Towny databases over the last few years was typically towns/nations being named with characters that server hosting
        would not allow in the filesystem, this database update will make this issue non-existant, which is why the benefits of this update
        outweigh the cons.
    • Cons:
      • The database's residents/towns/nations are no longer saved with their names. This makes editing your database manually trickier.
        • To help this out the residents' files will now contain their town's last-known name, the towns' files will contain their nation's and
          mayor's last-known name. All residents, towns and nations files will contain their last-known name in their files.
    • Ultimately, the benefits have outweighed the cons, stability has been good for Towny databases for 5+ years, and it is time to make this
      change in order to reduce the complexity of the codebase and to improve how Towny runs on varied server hosts.
0.102.0.3
  • Add test preventing copper golems moving items beyond same-owner plots.
  • Fix towns having a spawn point in a non-existent world preventing the town being deleted.
  • Add protection for the waxed copper golem statues into the switch category when COPPER_GOLEM_STATUE is a switch_id.
  • Add waxed versions of copper chests into the COPPER_CHEST category.
  • Added option to hide nations and towns from the list pages when their banks are less than or equal to zero.
  • New Config Option: economy.banks.hide_zero_or_under_banks_on_list_outputs
    • Default: false
    • When true town and nations with a bank balance of less than or equal to zero will not appear on the town and nation lists.
  • Fix admins with the adminbypass mode active not receiving teleport warmups and cooldowns.
  • Add the option to make the town bank cap plot-based.
  • New Config Option: economy.banks.town_bank_cap_is_plotbased
    • Default: false
    • When true the bank cap is plot-based. The number of townblocks/plots a town has claimed will be multiplied by the above town_bank_cap value.
  • New Config Option: economy.banks.plotbased_bank_cap_uses_town_level_modifier
    • Default: false
    • When true the plot-based bank cap will also be multiplied by the town_levels' bank cap modifiers.
  • New Config Option: economy.banks.plotbased_town_bank_cap_minimum
    • Default: 0.0
    • The smallest cap that banks can have while using the plotbased bank cap.
    • If this value is larger than the naturally-derived townblocks * town_bank_cap equation, this minimum will be used instead.
  • Fix a logic error in the PlotGroup#setResident function, courtesy of Remasuri with PR #​8043. (First-Time Contributor!)
  • Bit pack perms in TownyPermission objects, courtesy of Warrior with PR #​8048.
  • Remove world references stored inside WorldCoord, courtesy of Warrior with PR #​8050.
  • Fix message when attempting to overclaim your own town, courtesy of Warrior with PR #​8051.
  • Reduce allocations done by Resident hasRank methods, courtesy of Warrior with PR #​8037.
  • Bump com.zaxxer:HikariCP from 6.2.1 to 7.0.2.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.4.
  • Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.13.0 to 3.14.1.
  • Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.0 to 3.6.1.
  • Lazily initialize maps used by TownBlock, courtesy of Warrior with PR #​8049.
  • Fix occasions where plot groups exist in townblocks being removed.
  • Fix the townyperms group command not working with capitalized groups, courtesy of Warrior with PR #​8055.
  • Add support for enabling conquering on a town via townyadmin command.
  • Check the chunk is still wilderness after confirmation in /town new, courtesy of Veyronity with PR #​8059. (First-Time Contributor!)
  • Add null checks to the task schedulers, courtesy of Warrior with PR #​8060.
0.102.0.2
  • Fix town bank accounts being removed before the feature isDeletedObjectBalancePaidToOwner can finish logging into the bank history book.
  • Fix the message shown to mayors and assistants when someone spawns to their town showing prior to the teleport warmup time, resulting in unneeded messages.
  • Add option to refund towns upon deletion.
    • Adds a configurable system based on town age and size limits, to refund recently-made, "small" towns their full cost.
    • Closes #​7974.
  • New Config Option: economy.refund_deleted_new_towns.allow_refund_on_deletion
    • Default: false
    • Will towns that are recently created allow for a refund when the town is deleted by using the /t delete command?
    • This allows a player who has founded their town in the wrong place to delete their town and move it.
    • Towns must be less than the age specified below and have a configuable number of townblocks.
  • New Config Option: economy.refund_deleted_new_towns.max_town_age_in_hours
    • Default: 1
    • How many hours old is a town allowed to be in order to get the refund when being deleted.
  • New Config Option: economy.refund_deleted_new_towns.max_townblocks
    • Default: 8
    • How many townblocks is a town allowed to have in order to qualify for the refund.
  • Fix exception when attempting to query NPC perms through LuckPerms, courtesy of Warrior with PR #​8033.
  • Future proof minecraft version parsing, courtesy of Warrior with PR #​8034.
  • Fix 2 points where permission node tests bypass the adminbypass mode.
  • Add /town nearby command, courtesy of Nrleryx with PR #​8040. (First-Time Contributor!)
  • New Permission Node: towny.command.town.nearby
    • Will be automatically added to your nomads in the townyperms.yml.
  • New Command: /town nearby
    • Shows a player up to 10 towns that are nearest to the player in the order of closest to furthest.
0.102.0.1
  • Add new shear-to-remove-saddle mobs to entity list, courtesy of Warrior with PR #​8018.
  • Fix admin permissions on LuckPerms-using servers where OPs do not receieve towny.admin.
    • OPs will now be given the towny.admin permission node by default.
    • Closes #​8017.
  • New PAPI Placeholders:
    • %townyadvanced_player_location_in_homeblock% - Returns a string TRUE or FALSE if the player is in a homeblock.
    • %townyadvanced_player_location_in_homeblock_owntown% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to their town.
    • %townyadvanced_player_location_in_homeblock_ownnation% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town in the player's nation.
    • %townyadvanced_player_location_in_homeblock_enemy% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town that is enemied with the player's town.
    • %townyadvanced_player_location_in_homeblock_ally% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town that is allied with the player's town.
    • Closes #​8020.
  • Add new message shown to mayor and assistants when someone spawns to their town and it has resulted in the town earning the money.
  • New Config Option: global_town_settings.rank_names_to_be_treated_as_assistants
    • Default: assistant
    • The ranks to be given special priviledges, for instance when messages would be shown to only VIP town members.
    • All ranks should be as defined in townyperms.yml.

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.

DrprofLuigiakup001pebblehostDiimoniixtomhmagicjshalbrook
LuexaTurtleCraftManGoodrichDevcobrex1lexiccnSmallSansSerif
trevor1097KeNickGongMilesBHuffSolarCivLitning11Bloc-k
xSTORMYxSHMlukemangoEcoSMPTheeno74Rekar7Folas1337
keijodputtNeumimTobratoinediskawrsStevenSharkerewof
KermXTylorTurnerHippieBeakNewspoetTechirionjosegoust
druidbrandonjb0syurddZacharySeebeck2020Realm-Of-RhayaPookachu
BattleBornPMCMrG00s3ubobubobloanderrenan3235Karl4s
Kr1stuX32dannyxJ0TxKRDuckyminefortcomElementals-bit
EmperorDazederkutay-ucarWoodiieGraffAirTesqageFusionZ1
ShermansWorldminiliam7Ru1n0609AndyRecktKeKnowltonGeorgeNance
StaccatoAunt007FantaFreak04KuvviiJsincoLucasUnderlineboranovic1
erenmakalGeraldR12frendlyZatlasmcpluginsjindoiarascalik
ssdrive-flaktraPhatdog731asfouralbeirutxIgrinexuplex11Krarwi
MomshroomgerardvanschipItzXPurpleXspikehiddenAncientSMCorruptedGreed
TriaieSupersmurf82NikkilectricCactusbandityurigarciiaspektrsoyuz
Lupanchamspheroidonsush-hashgerm60787-labDGCreateschosenplayer
Triumvir-CivGl0W1EMrMirhangorbyhailSexy-JuraHikitsune-Red
CocolennonTheNyloxand 40 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:

v0.102.0.11: for MC 1.19.* & 1.20.* & 1.21.*

Compare Source

  • Prevent renaming town/nation files when name is invalid, courtesy of Warrior with PR #​8137.
    • Flatfile databases which loaded towns/nations with invalid names could result in a town/nation file being created with a name instead of a UUID.

Cumulative changes since 0.102.0.0
0.102.0.10
  • Fix HUDManager not accepting added HUDs.
  • Fix empty nations saving themselves instead of getting deleted.
  • Add only_remove_claim_count for inactive resident claim limits, courtesy of GoodrichDev with PR #​8119.
    • When delete_old_residents.enable, only_remove_town, and only_remove_claim_count are all true (and delete_only_townless is false),
      residents who are offline longer than deleted_after_time no longer count toward ratio-based max town blocks.
    • Resident data is kept: purge skips removing town/deleting residents in this mode.
  • New Config Option: resident_settings.delete_old_residents.only_remove_claim_count
    • Default: false
    • When true (and only_remove_town is true) residents are kept and only stop counting toward town claim limits after deleted_after_time.
  • Add /ta resident set for lastonline/registered with timestamp validation, courtesy of GoodrichDev with PR #​8120.
  • New Command: /ta resident set registered
    • Sets the resident registered time with the timestamp being a long.
  • New Command: /ta resident set lastonline
    • Sets the resident lastonline time with the timestamp being a long.
  • Bump org.bstats:bstats-bukkit from 3.1.0 to 3.2.1.
  • Add option to consider nation enemies as town outlaws, courtesy of Captain-S0L0 with PR #​8132. (First-Time Contributor!)
  • New Config Option: global_town_settings.consider_enemies_outlaws
    • Default: false
    • If set to true, when a town is in a nation any player in another nation that the town's nation considers enemies will be considered an outlaw in that town.
  • Improve NameValidation checks for banned names, courtesy of Veyronity with PR #​8133.
    • Prevents Towns and Nations being named with subcommands of /town and /nation.
    • Replaced hard coded list with auto-populating list, which now also includes TownyCommandAddonAPI subcommands.
  • Add cooldown on how often towns & nations can request a merge with the same target, courtesy of Veyronity with PR #​8134.
  • New Config Option: global_town_settings.merge_request_cooldown_time
    • Default: 60
    • Number of seconds that must pass before a town can send a merge request to the same target.
  • New Config Option: global_nation_settings.merge_request_cooldown_time
    • Default: 60
    • Number of seconds that must pass before a nation can send a merge request to the same target.
0.102.0.9
  • Remove some townyadmincommand permission tests in favour of subcommand permission tests, allowing for more fine-grained permission node configurations.
    • towny.command.townyadmin.town.*
    • towny.command.townyadmin.nation.*
    • towny.command.townyadmin.resident.*
    • towny.command.townyadmin.toggle.*
    • towny.command.townyadmin.plot.*
    • The subcommands of these commands now rely soley on their own permission node, and do not require the parent permission node.
  • Fix nation-level-getting broken in 0.102.0.8.
0.102.0.8
  • Fix outposts not following the min_distances_ignored_for_towns_in_same_nation and min_distances_ignored_for_towns_in_allied_nation
    when min_distance_for_outpost_from_plot is tested while creating an outpost using /t claim outpost.
  • Fix plot command being blocked in ruined Towns for players who are not town members.
  • New PAPI Placeholder: %townyadvanced_town_outposts_claimed%
    • Displays how many outposts a town has, when the player has a town.
    • Closes #​8114.
  • Bump junit.version from 6.0.2 to 6.0.3.
  • Add setting manual NationLevels onto Nations, courtesy of confusedalex with PR #​8112. (First-Time Contributor!)
  • New Command: /ta nation NATIONNAME setnationlevel #|clear.
  • New Permission Node: towny.command.townyadmin.nation.setnationlevel
    • Child node of towny.command.townyadmin.nation.* and towny.admin.
  • Add Scoreboard/HUD support for Folia, convert Scoreboards to Adventure.
  • Ignore colors in length validation, strip unwanted minimessage tags, courtesy of Veyronity with PR #​8116.
  • Bump org.jetbrains:annotations from 26.0.2 to 26.1.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.4 to 3.5.5.
  • Add Interaction entity to right click protected list.
  • Lower listener priorities for block events, courtesy of Warrior with PR #​8123.
0.102.0.7
  • Add new CHESTS_WITHOUT_ENDERCHEST group, usable in the config switch_ids list, includes all chests but the enderchest.
  • Add getFormattedTimeValue that accepts a player locale.
  • Fix adminbypass mode not applying to nationzones.
  • Fix title and surname settings issues.
  • Restrict usable minimessage tags in titles/surnames, courtesy of Warrior with PR #​8096.
  • Re-add removed res_8 lang string, courtesy of Warrior with PR #​8097.
  • Add new hovers to town and nation lists.
    • Separate spawn and town/nation status screen hovers/clickables are now available.
    • Closes #​8100.
  • Add PLOT_GROUP_TOGGLE to TownyCommandAddonAPI, courtesy of Veyronity with PR #​8107.
  • Bump me.clip:placeholderapi from 2.11.7 to 2.12.2.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.14.1 to 3.15.0.
0.102.0.6
  • Fix titles messages showing their subtitle in the title position.
  • Fix towny_teleport_warmup_seconds permission node not working.
  • Fix copper golem test that caused Could not pass event ItemTransportingEntityValidateTargetEvent spam.
  • Bump net.coreprotect:coreprotect from 22.4 to 23.1.
  • Bump me.clip:placeholderapi from 2.11.6 to 2.11.7.
  • Bump org.apache.commons:commons-compress from 1.26.2 to 1.28.0.
  • Fix the mayor succession event not being fired, courtesy of Warrior with PR #​8086.
  • Skip proximity checks when minimum plot distance is set to 0, courtesy of MakcNmk with PR #​8087. (First-Time Contributor!)
0.102.0.5
  • This version includes Major Changes to the database structure which took place in 0.102.0.4!
  • Enforce notnull for economy account name/uuid fields, courtesy of Warrior with PR #​7705.
  • Fix IndexOutOfBounds exception in /t join, courtesy of Veyronity with PR #​8062.
  • Fix SQL loading of forSale, forSalePrice, and forSaleTime, courtesy of Groovymeister with PR #​8063. (First-Time Contributor!)
  • Add info/meta node for overriding teleport warmup.
  • New Permission Node: towny_teleport_warmup_seconds.N
  • Bump junit.version from 5.13.4 to 6.0.2.
  • Bump net.luckperms:api from 5.4 to 5.5.
  • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0.
  • Bump net.milkbowl.vault:VaultUnlockedAPI from 2.9 to 2.15.
  • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.2 to 3.12.0.
  • Fix itemuse list not being used against projectiles which are fired into the air.
  • Allow empty towns to turn into ruins, courtesy of Warrior with PR #​8071.
  • New config option: town_ruining.empty_towns_become_ruins
    • Default: false
    • When enabled, when the last resident is removed from a town and it becomes empty (such as when inactive resident deletion is enabled),
      the town will turn into a ruin instead of being immediately removed.
  • Fix IllegalArgumentException when a plugin we integrate with has a bad version, courtesy of Warrior with PR #​8072.
  • Fix unneeded msg_invalid_name exception message from /n enemy, courtesy of pernio with PR #​8073. (First-Time Contributor!)
  • Add a cooldown to prevent towns spamming residents by outlawing and unoutlawing them, courtesy of Veyronity with PR #​8074.
  • New Config Option: resident_settings.warn_player_on_outlaw_message_cooldown_in_seconds
    • Default: 30
    • How many seconds in between warning messages, to prevent spam.
0.102.0.4
  • UUID Database Update!
    • READ CAREFULLY, THIS UPDATE HAS CHANGES THAT CANNOT BE REVERSED EASILY.
    • Since Minecraft added UUIDs to players there has always been the idea of changing Towny over to using UUIDs as the main key in our database,
      but due to database instability this was not something that was considered a smart change. Database stability was majorly improved years ago
      however and starting in 2022 and 2023 I (LlmDl,) had pull requests on deck exploring/planning what a UUID-based database would look like for
      Towny. In the middle-to-late 2025 Warrior decided to revive the UUID database concept, breaking things into bite-sized pull requests that
      made the concept easier to review and merge. Those pull requests are as follows:
      • Load UUIDs for residents, towns & nations early, courtesy of Warrior with PR #​7945.
      • Replace references to names with UUIDs in the database, courtesy of Warrior with PR #​7962.
      • Clean up town/nation/resident renaming logic, courtesy of Warrior with PR #​7963.
      • Use UUIDs for town/nation/resident file names in flatfile, courtesy of Warrior with PR #​8023.
        Thanks to Warrior's efforts the UUID database has become a reality!
    • What this means for Towny server admins:
      • The database no longer saves using resident, town and nation names. Instead you will see UUID-named .txt files in the resident, town and
        nation folders, and UUIDs in the lists of friends, enemies and allies.
      • Once you updated to this version your database will be converted and there is no going back. Towny will create backups of your pre-UUID
        database if you have backups enabled in the Towny config.yml and you are using Towny in flatfile!
      • If your Towny database is stored in MYSQL you need to make your own backup! Towny doesn't back up MYSQL databases!
    • Benefits:
      • Your Towny database just got more error-proof.
      • Renaming of residents, towns, nations should no longer be prone to edge-case scenarios that could cause issues.
      • Server hosts which don't allow some unicode characters in the server file system's filenames will no longer fail to save/load towns and
        nations with special (usually accented,) characters.
      • If you change hosts and your future-host does not allow the above unicode characters to be used in the filesystem, your server will not
        immediately fail to load!
      • The main issue with Towny databases over the last few years was typically towns/nations being named with characters that server hosting
        would not allow in the filesystem, this database update will make this issue non-existant, which is why the benefits of this update
        outweigh the cons.
    • Cons:
      • The database's residents/towns/nations are no longer saved with their names. This makes editing your database manually trickier.
        • To help this out the residents' files will now contain their town's last-known name, the towns' files will contain their nation's and
          mayor's last-known name. All residents, towns and nations files will contain their last-known name in their files.
    • Ultimately, the benefits have outweighed the cons, stability has been good for Towny databases for 5+ years, and it is time to make this
      change in order to reduce the complexity of the codebase and to improve how Towny runs on varied server hosts.
0.102.0.3
  • Add test preventing copper golems moving items beyond same-owner plots.
  • Fix towns having a spawn point in a non-existent world preventing the town being deleted.
  • Add protection for the waxed copper golem statues into the switch category when COPPER_GOLEM_STATUE is a switch_id.
  • Add waxed versions of copper chests into the COPPER_CHEST category.
  • Added option to hide nations and towns from the list pages when their banks are less than or equal to zero.
  • New Config Option: economy.banks.hide_zero_or_under_banks_on_list_outputs
    • Default: false
    • When true town and nations with a bank balance of less than or equal to zero will not appear on the town and nation lists.
  • Fix admins with the adminbypass mode active not receiving teleport warmups and cooldowns.
  • Add the option to make the town bank cap plot-based.
  • New Config Option: economy.banks.town_bank_cap_is_plotbased
    • Default: false
    • When true the bank cap is plot-based. The number of townblocks/plots a town has claimed will be multiplied by the above town_bank_cap value.
  • New Config Option: economy.banks.plotbased_bank_cap_uses_town_level_modifier
    • Default: false
    • When true the plot-based bank cap will also be multiplied by the town_levels' bank cap modifiers.
  • New Config Option: economy.banks.plotbased_town_bank_cap_minimum
    • Default: 0.0
    • The smallest cap that banks can have while using the plotbased bank cap.
    • If this value is larger than the naturally-derived townblocks * town_bank_cap equation, this minimum will be used instead.
  • Fix a logic error in the PlotGroup#setResident function, courtesy of Remasuri with PR #​8043. (First-Time Contributor!)
  • Bit pack perms in TownyPermission objects, courtesy of Warrior with PR #​8048.
  • Remove world references stored inside WorldCoord, courtesy of Warrior with PR #​8050.
  • Fix message when attempting to overclaim your own town, courtesy of Warrior with PR #​8051.
  • Reduce allocations done by Resident hasRank methods, courtesy of Warrior with PR #​8037.
  • Bump com.zaxxer:HikariCP from 6.2.1 to 7.0.2.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.4.
  • Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0.
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.13.0 to 3.14.1.
  • Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.0 to 3.6.1.
  • Lazily initialize maps used by TownBlock, courtesy of Warrior with PR #​8049.
  • Fix occasions where plot groups exist in townblocks being removed.
  • Fix the townyperms group command not working with capitalized groups, courtesy of Warrior with PR #​8055.
  • Add support for enabling conquering on a town via townyadmin command.
  • Check the chunk is still wilderness after confirmation in /town new, courtesy of Veyronity with PR #​8059. (First-Time Contributor!)
  • Add null checks to the task schedulers, courtesy of Warrior with PR #​8060.
0.102.0.2
  • Fix town bank accounts being removed before the feature isDeletedObjectBalancePaidToOwner can finish logging into the bank history book.
  • Fix the message shown to mayors and assistants when someone spawns to their town showing prior to the teleport warmup time, resulting in unneeded messages.
  • Add option to refund towns upon deletion.
    • Adds a configurable system based on town age and size limits, to refund recently-made, "small" towns their full cost.
    • Closes #​7974.
  • New Config Option: economy.refund_deleted_new_towns.allow_refund_on_deletion
    • Default: false
    • Will towns that are recently created allow for a refund when the town is deleted by using the /t delete command?
    • This allows a player who has founded their town in the wrong place to delete their town and move it.
    • Towns must be less than the age specified below and have a configuable number of townblocks.
  • New Config Option: economy.refund_deleted_new_towns.max_town_age_in_hours
    • Default: 1
    • How many hours old is a town allowed to be in order to get the refund when being deleted.
  • New Config Option: economy.refund_deleted_new_towns.max_townblocks
    • Default: 8
    • How many townblocks is a town allowed to have in order to qualify for the refund.
  • Fix exception when attempting to query NPC perms through LuckPerms, courtesy of Warrior with PR #​8033.
  • Future proof minecraft version parsing, courtesy of Warrior with PR #​8034.
  • Fix 2 points where permission node tests bypass the adminbypass mode.
  • Add /town nearby command, courtesy of Nrleryx with PR #​8040. (First-Time Contributor!)
  • New Permission Node: towny.command.town.nearby
    • Will be automatically added to your nomads in the townyperms.yml.
  • New Command: /town nearby
    • Shows a player up to 10 towns that are nearest to the player in the order of closest to furthest.
0.102.0.1
  • Add new shear-to-remove-saddle mobs to entity list, courtesy of Warrior with PR #​8018.
  • Fix admin permissions on LuckPerms-using servers where OPs do not receieve towny.admin.
    • OPs will now be given the towny.admin permission node by default.
    • Closes #​8017.
  • New PAPI Placeholders:
    • %townyadvanced_player_location_in_homeblock% - Returns a string TRUE or FALSE if the player is in a homeblock.
    • %townyadvanced_player_location_in_homeblock_owntown% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to their town.
    • %townyadvanced_player_location_in_homeblock_ownnation% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town in the player's nation.
    • %townyadvanced_player_location_in_homeblock_enemy% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town that is enemied with the player's town.
    • %townyadvanced_player_location_in_homeblock_ally% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town that is allied with the player's town.
    • Closes #​8020.
  • Add new message shown to mayor and assistants when someone spawns to their town and it has resulted in the town earning the money.
  • New Config Option: global_town_settings.rank_names_to_be_treated_as_assistants
    • Default: assistant
    • The ranks to be given special priviledges, for instance when messages would be shown to only VIP town members.
    • All ranks should be as defined in townyperms.yml.

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.

and 0 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:

v0.102.0.9: for MC 1.19.* & 1.20.* & 1.21.*

Compare Source

  • Remove some townyadmincommand permission tests in favour of subcommand permission tests, allowing for more fine-grained permission node configurations.
    • towny.command.townyadmin.town.*
    • towny.command.townyadmin.nation.*
    • towny.command.townyadmin.resident.*
    • towny.command.townyadmin.toggle.*
    • towny.command.townyadmin.plot.*
    • The subcommands of these commands now rely soley on their own permission node, and do not require the parent permission node.
    • Fix nation-level-getting broken in 0.102.0.8.

Cumulative changes since 0.102.0.0
0.102.0.8
  • Fix outposts not following the min_distances_ignored_for_towns_in_same_nation and min_distances_ignored_for_towns_in_allied_nation
    when min_distance_for_outpost_from_plot is tested while creating an outpost using /t claim outpost.
  • Fix plot command being blocked in ruined Towns for players who are not town members.
  • New PAPI Placeholder: %townyadvanced_town_outposts_claimed%
    • Displays how many outposts a town has, when the player has a town.
    • Closes #​8114.
  • Bump junit.version from 6.0.2 to 6.0.3.
  • Add setting manual NationLevels onto Nations, courtesy of confusedalex with PR #​8112. (First-Time Contributor!)
  • New Command: /ta nation NATIONNAME setnationlevel #|clear.
  • New Permission Node: towny.command.townyadmin.nation.setnationlevel
    • Child node of towny.command.townyadmin.nation.* and towny.admin.
  • Add Scoreboard/HUD support for Folia, convert Scoreboards to Adventure.
  • Ignore colors in length validation, strip unwanted minimessage tags, courtesy of Veyronity with PR #​8116.
  • Bump org.jetbrains:annotations from 26.0.2 to 26.1.0.
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.4 to 3.5.5.
  • Add Interaction entity to right click protected list.
  • Lower listener priorities for block events, courtesy of Warrior with PR #​8123.
0.102.0.7
  • Add new CHESTS_WITHOUT_ENDERCHEST group, usable in the config switch_ids list, includes all chests but the enderchest.
  • Add getFormattedTimeValue that accepts a player locale.
  • Fix adminbypass mode not applying to nationzones.
  • Fix title and surname settings issues.
  • Restrict usable minimessage tags in titles/surnames, courtesy of Warrior with PR #​8096.
  • Re-add removed res_8 lang string, courtesy of Warrior with PR #​8097.
  • Add new hovers to town and nation lists.
    • Separate spawn and town/nation status screen hovers/clickables are now available.
    • Closes #​8100.
  • Add PLOT_GROUP_TOGGLE to TownyCommandAddonAPI, courtesy of Veyronity with PR [#&#8203

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies label Mar 1, 2026
@renovate renovate bot force-pushed the renovate/com.palmergames.bukkit.towny-towny-0.x branch from 4ccd1a6 to 8ddcefb Compare March 3, 2026 18:03
@renovate renovate bot changed the title fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.8 fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.9 Mar 3, 2026
@renovate renovate bot force-pushed the renovate/com.palmergames.bukkit.towny-towny-0.x branch from 8ddcefb to f0e6794 Compare March 11, 2026 19:03
@renovate renovate bot changed the title fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.9 fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.11 Mar 11, 2026
@renovate renovate bot force-pushed the renovate/com.palmergames.bukkit.towny-towny-0.x branch from f0e6794 to ac60ec2 Compare March 17, 2026 21:08
@renovate renovate bot changed the title fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.11 fix(deps): update dependency com.palmergames.bukkit.towny:towny to v0.102.0.12 Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants