0.99.6.0 for MC 1.16.* & 1.17.* & 1.18.* & 1.19.* & 1.20.*
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.
- Closes #6894.
Add ability to customize the dimensions of the ASCII map seen in /towny map and the /res toggle map commands.
- Closes #6117.
Add ability for towns and nations to have a negative fixed-rate tax amount.
- Closes #6705.
Add permission node that bypasses deny_bed_use config setting.
- Closes #6956.
Add the ability to hide towns from the /towny top and /t list by commands (as well as the PAPIPlaceholders.)
- Closes #6996.
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.
- Closes #6981.
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.
- Closes #6832.
- 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 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
- Default: "" (none)
- A comma seperated list of spawn causes, if an entity has a spawn cause that is in this list they will not be removed by town mob removal.
- For the list of valid spawn causes, see https://jd.papermc.io/paper/1.20/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html
- Due to technical reasons, this setting only works on Paper servers.
- 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.
- Closes #6796.
Fix personal permission line loading in TownBlocks.
- Closes #6856.
Fix Towny uncancelling PlayerInteractEvents.
- Closes #6861.
Fix EconomyAccount removals not paying their value into the ClosedEconomy Server Account.
- Closes #6874.
Fix Hibernated Residents table being keyed improperly.
- Closes #6936.
Fix /plot info throwing NPE when using_economy is false.
- Closes #7000.
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.
- Closes #6829.
Fix registry lists' add method not working as expected, courtesy of Warrior with PR #6869.
- Closes #6866.
Fix Item Registry matching incorrectly, courtesy of Warrior with PR #6885.
- Closes #6868.
Fix exception when putting a group for sale with eco off, courtesy of Warrior with PR #6970.
- Closes #6969.
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 SponsorsI want to give a big thank you to all of my sponsors: | |||||
---|---|---|---|---|---|
MrLogano | Momshroom | Cobrex1 | TheFlagCourier | DrprofLuigi | SmallSansSerif |
TheNylox | pebblehost | NoikzGaming | ThePontificate | AllieDragon | TegulaThePig |
darthpeti | Eblyss | akup001 | Valerie2308 | Kelbbie | tjdings |
AldinaMapping | CrypticBlades | EcoSMP | Semisol | Theeno74 | ItzXPurpleX |
Rekar7 | Lambsy | guillermodiazkiernans | DeltaOrion | vyvin | keijodputt |
NeumimTo | o-zzer | Peskdt | vette-daniel | AncientSM | JunkieCraft |
Hikitsune-Red | DoctorChosen | Dynamite99 | ItsSynchro | EpicSpeed | SuperRedstoneYT |
Jayoakson | tyhppp233 | MrLogano | Tuaniwan | CorruptedGreed | ProjectGuinness |
Deathrayne225 | ReEvadere | trevor1097 | MetaverseRP | CorruptVD | GabrielTK |
bretomart | Polo-lulu | Folas1337 | GundalfWasTaken | qwlke | MayorMike |
gageeet | j0g32 | Wextra | Microweb4 | tskopen | PainOchoco |
Bloc-k | bradyyykennyy | xSTORMYxSHM | StevenSharker | Manul-Newton | Polo-lulu |
Ashparty | jsuarezl | royblue12 | tomhmagic | Roman90879 | editon96 |
Intrabit | gerardvanschip | TheWordSmith123 | CasperTimmy | MKieburtz | Exygle |
KermX | DedicatedMC | nullXer0 | skyjacc | gorbyhail | MattDeWeerd |
Rimuru-Tempest-IMP | Alink-Marty | ZenithDevv | RustyWasTaken | Kieubasiarz | MilesBHuff |
GraphicHex | spikehidden | 1456o9 | Deadhyena | TRLWeiss | typicalsmartman |
lammmypl | KeNickGong | GitDaviBastos | CyberQer | James-P-Bennett | RandalABurdJr |
DarioMavilia | AlfreDGR | incristi2 | FokshaWasTaken | SADxds | connor7K |
smokytek | papiricoh | Grigory200 | enesutku | Celestial0579 | real-vgi |
Sk8nkill | xCptSpiffyx | hexahigh | AustinGoodrich | NetherShower | numeragon |
beabuenodev | cloverlucy | and 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 |