Skip to content

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

Compare
Choose a tag to compare
@LlmDl LlmDl released this 02 Oct 22:04
· 762 commits to master since this release

Towny Advanced 0.99.6.0

Release contains:

Towny 0.99.6.0
TownyChat 0.109

Welcome to Towny 0.99.6.0.
Towny 0.99.6.0 is the seventh release in the 0.99.*.* series!
0.99.6.0 supports all versions of Minecraft 1.16 and newer.
This version adds support for MC 1.20.2, as well as a smattering of new commands and features.
This version 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.
➕ Added (41)

➕ Added:

  • Add ability for mayors to exempt their townblocks from charging plot taxes.

    • Mayors can toggle a plot's status using /plot toggle taxed.
    • When false, the owner of that plot will pay no plot tax.
    • A Plot Tax: [Amount|Untaxed] blurb will now appear in the townblock status screens.
    • Closes #3675.
  • Add the ability to set colours for TownBlockTypes.

    • The TownBlockTypes section by default will come with a new "colour:" option.
    • Only the Shop plot currently being configured with a colour (as is the previous behaviour.)
    • Existing configs will have to add the colour: line to each TownBlock Type if they want to take advantage.
    • Closes #6115.
  • Add a new plotgroup mode for residents to toggle.

    • Allows a resident to set /res toggle plotgroup, which will auto-group walked-into plots, as long as the resident has a plotgroupname set in memory.
    • The plotgroupname is automatically set when a resident successfully runs /plot group add NAME.
    • Closes #6404.
  • Add placing items onto Campfires cause a Build test.

  • Add ability to customize the dimensions of the ASCII map seen in /towny map and the /res toggle map commands.

  • Add ability for towns and nations to have a negative fixed-rate tax amount.

  • Add permission node that bypasses deny_bed_use config setting.

  • Add the ability to hide towns from the /towny top and /t list by commands (as well as the PAPIPlaceholders.)

  • Add warning about MyCommand taking over /t in the startup.

  • Upgrade HelpMenus to accept Translatables for multilanguage help menus.

  • Refactor Resident Command, add HelpMenus for everything that was not yet using them.

  • Add translatable descriptions to all of the HelpMenus.

  • Add protection for milkable animals, using a destroy test.

  • Add protection for parrots being fed cookies. Now requires passing a destroy test.

  • Update PowerRanks warning to mention their version that fixes the incompatibility.

  • Add Position object, courtesy of Warrior with PR #6536.
    • The position object aims to resolve issues with world manager plugins that load after Towny loads, causing spawns to be wiped.
    • By representing these spawns with an object that's not associated with a loaded bukkit world, but instead our own internal TownyWorld, we can successfully load them every time, regardless of plugin load order.
  • Add coreprotect integration, courtesy of Warrior with PR #6825.
    • Adds integration with coreprotect so that people using it can easily rollback/lookup things done by towny.
  • Add support for Paper's SpawnReason, allowing for the summoning of mobs which are spawned into towns which have mobs off and other nice things.
  • Allow negating nodes with {townname} and {nationname}, courtesy of Warrior with PR #6850.
    • Allows nodes with {townname} and {nationname} to be prefixed with a -.
  • Make it possible to recover from safemode without restarting, courtesy of Warrior with PR #6526.
    • If you have managed to put your server into safemode, and you can manage to fix what's caused it, you can now use /ta reload all to have towny re-attempt loading.
  • Add getOfflinePlayerIfCached to BukkitTools, courtesy of Warrior with PR #6847.
  • Cache a townblock's worldcoord/pos, courtesy of Warrior with PR #6853.
  • Implement a filter method for registry lists, courtesy of Warrior with PR #6859.
  • Add testing for registry lists, courtesy of Warrior with PR #6871.
  • Skip tests by default, courtesy of Warrior with PR #6878.
  • Refactor the regen API to use hashmaps, courtesy of Warrior with PR #6827.
  • Add contributors to plugin.yml, courtesy of Warrior with PR #6915.
  • Speed up calculating bonus block costs, courtesy of Warrior with PR #6919.
  • Add spigot fallback to sign open event, courtesy of Warrior with PR #6920.
  • Replace lang3 validate with guava, courtesy of Warrior with PR #6931.
  • Make the default resident about configurable, courtesy of Warrior with PR #6954.
  • Add gitattributes file, courtesy of Warrior with PR #6962.
  • Improve trident lightning protection, courtesy of Warrior with PR #6964.
  • Replace http urls with https, courtesy of Warrior with PR #6965.
  • Area effect cloud protection improvements, courtesy of Warrior with PR #6967.
  • Add hasTranslation method, courtesy of Warrior with PR #7001.
  • Add utility for getting the bukkit command map, courtesy of Warrior with PR #7011.
  • Add ability for mayors to put their Towns up for sale, and for other players to buy them, courtesy of Fruitloopins with PR #6934. (First-Time Contributor!)
  • Add "about" section to resident status screen, courtesy of Fruitloopins with PR #6944.
  • Add getMapColor to Government, courtesy of ewof #6881. (First-Time Contributor!)
  • Add towny.receives-plot-notifications permission, courtesy of invpt with PR #6908. (First-Time Contributor!)

➕ Automatic Config Edits (1)

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

  • Farm Plots allowedBlock lists will have COW_SPAWN_EGG,GOAT_SPAWN_EGG,MOOSHROOM_SPAWN_EGG added to them.

✨ Command Changes (13)
✨ New Commands (13)

✨ New Commands:

  • /plot toggle taxed
    • Uses the towny.command.plot.asmayor permission node.
    • Allows a mayor to decide whether a plot will require the plotowner to pay the plot taxes.
  • /res set about [clear/none/reset/msg]
    • Similar to /t set board, adds a place for residents to remark about themselves.
  • /t forsale/fs [$]
    • Puts town up for sale at the specified amount
    • Requires towny.command.town.forsale
  • /t notforsale/nfs
    • Cancels town sale
    • Requires towny.command.town.notforsale
  • /t buytown [town]
    • Buy a town that is for sale
    • Requires towny.command.town.buytown
  • /ta set about [username] [clear/none/reset/msg]
  • /ta town [town] forsale/fs [$]
    • Admin command to force town sale at specified price
    • Requires towny.command.townyadmin.town.forsale
  • /ta town [town] notforsale/nfs
    • Admin command to force cancel town sale
    • Requires towny.command.townyadmin.town.notforsale
  • /ta town TOWNNAME toggle visibleontoplists [on|off]
    • Used by an admin to toggle a town's visiblity on the /towny top, /t list by commands (as well as the PAPIPlaceholders.)
  • /ta nation NAME meta set [key] [value]
  • /ta nation NAME meta add|remove [key]
  • /ta resident NAME meta set [key] [value]
  • /ta resident NAME meta set add|remove [key]

✨ Changed Commands (0)

✨ Changed Commands:

  • None.

❌ Removed Commands (0)

❌ Removed Commands:

  • None.


📕 Config Changes (7)
📕 New Config Options (7)

📕 New Config Options:

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

  • plugin.interfacing.coreprotect_support
    • Default: true
    • If enabled, blocks that get regenerated by Towny, such as revert-on-unclaim and explosion regeneration will be logged with CoreProtect.
    • Actions are logged with the #towny user, so Towny's actions can easily be undone using user:#towny.
  • protection.town_mob_removal_ignored_spawn_causes
  • ascii_map_symbols.map_height
    • Default: 7
    • The height of the map shown in /towny map and /res toggle map.
    • Minimum 7, maximum 18.
  • ascii_map_symbols.map_width
    • Default: 27
    • The width of the map shown in /towny map and /res toggle map.
    • Minimum 7, maximum 27, only odd numbers are accepted.
  • economy.daily_taxes.allow_negative_town_tax
    • Default: false
    • If enabled, and a town tax is set to a negative amount and is a fixed amount (not percentage,) it will result in every resident being paid by the town bank (if the town can afford it.)
  • economy.daily_taxes.allow_negative_nation_tax
    • Default: false
    • If enabled, and a nation tax is set to a negative amount and is a fixed amount (not percentage,) it will result in every town in the nation being paid by the nation bank (if the nation can afford it.)
  • resident_settings.default_about
    • Default: /res set about [msg]
    • The default resident about text, shown in the resident's status screen.

❌ Removed Config Options (0)

❌ Removed Config Options:

  • None.


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

🔑 New Permission Nodes:

No change required in townyperms.yml.

  • (All of which are child nodes of towny.command.town.*, no townyperms.yml changes are required for standard installations.)
    • towny.command.town.forsale
    • towny.command.town.notforsale
    • towny.command.town.buytown
  • (All of which are child nodes of towny.command.townyadmin.town.*, no townyperms.yml changes are required for standard installations.)
    • towny.command.townyadmin.town.forsale
    • towny.command.townyadmin.town.notforsale
  • towny.command.resident.set.about - ChildNode of towny.command.resident.set.*
  • towny.command.townyadmin.set.about - ChildNode of towny.command.townyadmin.set.*
  • towny.receives-plot-notifications - Decides whether a player will see plot notifications.
  • towny.bypass_bed_restriction
    • description: Makes the player not subject to bed-use restrictions.
    • default: false

❌ Removed Permission Nodes (0)

❌ Removed Permission Nodes:

  • None.

----
💻 API Changes (3)

💻 API:

  • Added PlotToggleTaxedEvent
    • Cancellable event that stops a mayor toggling taxation off/on on a townblock.
  • Add TownyAPI#getTownName(Player).
  • Added TownyObjectFormattedNameEvent
    • Thrown when a Resident, Town or Nation is returning a getFormattedName() value.
    • This is used to alter the prefix or postfix that flanks a TownyObject name, usually a title, surname, townlevel/nationlevel prefix/postfix.
    • Closes #6995.

🔧 Fixed (50)

🔧 Fixed:

  • Make towny handle longer world names on sql.

  • Fix personal permission line loading in TownBlocks.

  • Fix Towny uncancelling PlayerInteractEvents.

  • Fix EconomyAccount removals not paying their value into the ClosedEconomy Server Account.

  • Fix Hibernated Residents table being keyed improperly.

  • Fix /plot info throwing NPE when using_economy is false.

  • Take care of all the places we weren't using Locale.ROOT with toLowerCase().

  • Fix PlayerInteractEvent throwing NoSuchFieldError on 1.19.4 servers using a 1.20 datapack.

  • Make a couple CombatUtil methods more reliable.

  • Fix ConcurrentModificationError in saving the regen list.

  • Fix chunk notification tasks still running when Towny has disabled itself.

  • Fix edge case scenario where NPCs can be treated like Players in Combat.

  • Fix a town being able to be reclaimed a second time if the first Confirmation hadn't timed out.

  • Fix being unable to run Resident-based TownyAddonCommands from the console.

  • Fix bank history books showing the incorrect balances, a side effect of a now un-needed patch to an older issue.

  • Only warn the log when the world isn't loaded 20 ticks after Towny first tries to load it.

  • Fix removing Town from residents not being able to delete 1 man towns.

  • Fix the NewHourEvent being started with the incorrect delay.

  • Fix tourist-blacklisted commands not being usable in the wilderness.

  • Fix seeing an errant permission string when running a /res toggle addon command.

  • Handle top placeholders better, courtesy of Warrior with PR #6821.

    • Fixes top placeholders failing on towns with spaces in their name.
    • Closes #6814.
  • Remove underscores from plot names in chunk notifs, courtesy of Warrior with PR #6830.

  • Fix registry lists' add method not working as expected, courtesy of Warrior with PR #6869.

  • Fix Item Registry matching incorrectly, courtesy of Warrior with PR #6885.

  • Fix exception when putting a group for sale with eco off, courtesy of Warrior with PR #6970.

  • User internal class for expanded scheduling check, courtesy of Warrior with PR #6822.

  • Fix exception being thrown for empty key in wilderness entity regen lists, courtesy of Warrior with PR #6826.

  • Fix a typo in TownyUniverse javadoc, courtesy of Warrior with PR #6838.

  • Use better method for determining invitee online status, courtesy of Warrior with PR #6848.

  • Use invokeExact where possible, courtesy of Warrior with PR #6849.

  • Remove unneeded filtering from matchRegistry, courtesy of Warrior with PR #6851.

  • Use material key for cache debug message, courtesy of Warrior with PR #6852.

  • Fix teleport refund being done synchronously, courtesy of Warrior with PR #6870.

  • Remove redundant 1.20 check, courtesy of Warrior with PR #6873.

  • Fix returning early in the PlayerInteractEvent listeners, courtesy of Warrior with PR #6886.

  • Use concurrent collection for regen queue, courtesy of Warrior with PR #6889.

  • Cancel chunk notification tasks on logout, courtesy of Warrior with PR #6888.

  • Cancel scheduled tasks on shutdown, courtesy of Warrior with PR #6890.

  • Remove an outdated comment, courtesy of Warrior with PR #6892.

  • Improve move event listener/player cache a bit, courtesy of Warrior with PR #6910.

  • Use constant for line separator string, courtesy of Warrior with PR #6896.

  • Make the ecowarn line log on the INFO level, courtesy of Warrior with PR #6895.

  • Fix exception after creating a new PlayerCache, courtesy of Warrior with PR #6911.

  • Fix all the weirdness around world entity key loading, courtesy of Warrior with PR #6901.

  • Catch exceptions during plot group saving, courtesy of Warrior with PR #6927.

  • Run sync confirmations on the player's region, courtesy of Warrior with PR #6960.

  • Fix a lot of IDE warnings, courtesy of Warrior with PR #6658.

  • Add missing deprecation annotations, courtesy of Warrior with PR #6963.

  • Remove exception based control flow from map hud, courtesy of Warrior with PR #6972.

  • Fix unclaim all message missing color/prefix, courtesy of Warrior with PR #7014.


🌏 Language Updates (0)

🌏 Language Updates:

  • None.

🌏 Dependency Updates (12)

🌏 Dependency Updates:

  • Remove essentials maven dependency, courtesy of Warrior with PR #6842.
  • Remove iConomy soft dependency, courtesy of Warrior with PR #6980.
  • Bump org.junit.jupiter:junit-jupiter-api from 5.9.3 to 5.10.0.
  • Bump org.junit.jupiter:junit-jupiter from 5.9.3 to 5.10.0.
  • Bump net.coreprotect:coreprotect from 21.3 to 22.2.
  • Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.17.0 to 3.22.0.
  • Bump com.github.ElgarL:groupmanager from 2.9 to 3.2.
  • Bump org.apache.commons:commons-compress from 1.23.0 to 1.24.0.
  • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.0.
  • Bump adventure platform bukkit to 4.3.1, courtesy of Warrior with PR #7010.
    • Adds 1.20.2 support.
  • Bump me.clip:placeholderapi from 2.11.3 to 2.11.4.
  • Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1.

👽 Placeholder Updates (0)

👽 Placeholder Updates:

  • None.

💬 TownyChat Changes (0)

💬 TownyChat Changes:

  • Fix help menus not being coloured properly.
  • Fix worlds section not generating when per-world is set to true in the chatconfig.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 release of Towny.

MrLoganoMomshroomCobrex1TheFlagCourierDrprofLuigiSmallSansSerif
TheNyloxpebblehostNoikzGamingThePontificateAllieDragonTegulaThePig
darthpetiEblyssakup001Valerie2308Kelbbietjdings
AldinaMappingCrypticBladesEcoSMPSemisolTheeno74ItzXPurpleX
Rekar7LambsyguillermodiazkiernansDeltaOrion vyvinkeijodputt
NeumimToo-zzerPeskdtvette-danielAncientSMJunkieCraft
Hikitsune-RedDoctorChosenDynamite99ItsSynchroEpicSpeedSuperRedstoneYT
Jayoaksontyhppp233MrLoganoTuaniwanCorruptedGreedProjectGuinness
Deathrayne225ReEvaderetrevor1097MetaverseRPCorruptVDGabrielTK
bretomartPolo-luluFolas1337GundalfWasTakenqwlkeMayorMike
gageeetj0g32WextraMicroweb4tskopenPainOchoco
Bloc-kbradyyykennyyxSTORMYxSHMStevenSharkerManul-NewtonPolo-lulu
Ashparty jsuarezl royblue12tomhmagicRoman90879editon96
Intrabitgerardvanschip TheWordSmith123CasperTimmyMKieburtzExygle
KermXDedicatedMCnullXer0skyjaccgorbyhailMattDeWeerd
Rimuru-Tempest-IMPAlink-MartyZenithDevvRustyWasTakenKieubasiarzMilesBHuff
GraphicHexspikehidden1456o9DeadhyenaTRLWeisstypicalsmartman
lammmyplKeNickGongGitDaviBastos CyberQerJames-P-BennettRandalABurdJr
DarioMaviliaAlfreDGRincristi2 FokshaWasTakenSADxdsconnor7K
smokytekpapiricohGrigory200 enesutkuCelestial0579real-vgi
Sk8nkillxCptSpiffyxhexahighAustinGoodrichNetherShowernumeragon
beabuenodevcloverlucyand 43 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

Spigot_Banner_Towny

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