Skip to content

0.100.2.0 for MC 1.16.* & 1.17.* & 1.18.* & 1.19.* & 1.20.*

Compare
Choose a tag to compare
@LlmDl LlmDl released this 01 Apr 17:02
· 316 commits to master since this release

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.

  • Add /t invite sent removeall command.

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

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

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

  • Make it possible for ruined towns to slowly open up their plot permissions.

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

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

  • Fix using_titles messages when entering towns.

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

  • Cause trusted residents who have changed their names to auto-matically carry their trusted status in a town over, without a server restart required.

  • Prevent falling blocks falling during unclaimed land regeneration.

  • Fix the TownBlockType migrator running opposite of when it ought to, resulting in farm plot allowed blocks being reset when Towny is updated.

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