/Towny

Towny Advanced Minecraft plugin for Bukkit/Spigot.

Primary LanguageJavaOtherNOASSERTION

Towny Advanced - Developed by LlmDl


A special message from LlmDl precedes the normal Readme :

Hello Towny community,

To the folks already sponsoring me: you are all awesome, the words below do not apply to you. I am grateful for the help you've provided me over the years (some of you, you know who you are,) and I am incredibly grateful for the support you've given.

I have been working with Towny since 2011. I have been in charge of the project since 2014. I have put in more than 13 years of service to an Open Source project that you use. I have not run a minecraft server, or played minecraft in over 7 years.

Some of you may know this, some may not: In 2021 my IRL work was up-ended, resulting in a major reset of my career. The result was that I have not been bringing in the same income as I was before, something I require to feed, cloth and house my wife and young children. Up until that point, my normal job fully-subsidized the time I put into coding Towny and its many add-on plugin. You all have enjoyed my works because I was able to feed and house my family via my regular work whilst paying myself to work on Towny.

I make myself available regularly on Discord answering mundane and complex questions alike. Bugs are usually fixed the same day they are reported. Other developers that contribute Pull Requests to Towny get reviews right away, and jr developers can usually expect me to help with commits so their work gets merged.

99% of Towny server admins are not sponsoring the work that I put into Towny. The truth about well-managed open source projects is that the developers of them need to be compensated for the time and energy they put into their software. Developers of large projects are unfortunately rarely compensated, and in fact receive a lot of push back from people who expect free software at no cost.

There are days that I enjoy every minute of what I do with Towny. Helping out the new server admins with their greenleaf in the Discord as they learn the ropes around Towny can be fun. Making a sponsor's feature request a reality. Creating a brand new add-on plugin from nothing but code and the TownyAPI that I have spent years fostering. As of this posting Towny has a 4.7/5 rating on Spigot, with 145 reviews. Nearly all of the reviews cite me and my efforts. I enjoy coding or I would not still be doing it.

And then there are days that I do not enjoy every minute of it, but you will not find any days that I have not answered every question asked on the Discord by new admins or sponsors.

I not only provide server owners with amazing support I also provide many plugins. It is not uncommon for servers to use Towny with side-plugins I am also in charge of: SiegeWar, Dynmap-Towny, iConomy5, TownyResources, TownyProvinces all playing very large roles on the server with other plugins like TownyChat, TownyFlight, TownyCultures, and others playing smaller roles. I read people's startup logs when they need my help and they tend to use a lot of my plugins if they use Towny.

I remember the time that Goosius decided to stop working on his fork of Towny that had SiegeWar built into it. He spent a little more than a year doing intense, active development, constantly getting feedback from server admins and players, constantly tweaking things. And then he vanished, burnt out from everything. He logged out of his SiegeWar discord and that was seemingly it. When I joined the SiegeWar discord in late 2020, I was surprised at how many people were clamouring for SiegeWar, willing to throw money at anyone that would continue coding SiegeWar. The developer left, and all of a sudden people were willing to pay. I have pulled SiegeWar from the ashes twice now, and yet the greater reward is not their.

As of the start of 2024 I have enacted a new policy:

  • If you're expecting support on the Discord: I expect you to sponsor. Companies that provide software do not provide support for free. I will probably still respond to you if you're brand new and need that extra bit of help. If you can find something that isn't already documented on the Wiki, let me know and I'll add it.
  • If you are not sponsoring, please do not make suggestions for new features, I don't need ideas right now.

This is due to underfunding, if sponsorships rise to a level at which I can sustain myself and my family the time I can devote to Towny will expand and the support floodgates will re-open. My time coding is being devoted to the people who are giving back by sponsoring me.

Thank you for reading,

  • LlmDl

The normal Readme

I'm LlmDl, the third lead developer of Towny. I have been managing the Towny project since 2014 and the release of Minecraft 1.8. Prior to me there was the original creator: Shadeness (active 2010-2011,) and the second developer: ElgarL (active 2011-2014.)

I am helped out by the TownyAdvanced team: Articdive, FlagCourier, Warrior and a few other private members. Being open-source Towny has a large list of Contributors who have helped improve the code base over the years as well.

Towny is one of the oldest still-in-development plugins for Minecraft. Shadeness created Towny for the now-defunct server platform called hMod. Shadeness ported Towny to Bukkit and left the project shortly afterwards, returning later to add EnemyWar or as it became known: FlagWar. Towny is now over 13 years old!

Go check out some of the features Towny has and see why it's still popular for yourself.

If you're interested in add-on plugins for Towny, check out the TownyAdvanced website/portal where you can view and download all of the plugins that the team maintains, or check out the SponsorPlugins you get access to when you give back!

CodeFactor


Current Recommended Versions

Minecraft VersionTowny Version
MC 1.21.* Use the the Latest Pre-Release.
MC 1.20.* Use 0.100.3.0 or the the Latest Pre-Release.
MC 1.19.*
MC 1.18.* 0.100.3.0
MC 1.17.*
MC 1.16.*
MC 1.15.2 0.98.1.0
MC 1.14.4
MC 1.13.2 0.96.2.0 for 1.13.2
MC 1.12.2 0.97.0.0 for 1.12.2
MC 1.11.2 0.93.1.0 for 1.11.2
MC 1.10.2 0.93.1.0 for 1.10.2
MC 1.9.4 0.93.1.0 for 1.9.4
MC 1.8.9 0.93.1.0a for 1.8.9
MC 1.7.10 0.92.0.0 for 1.7.10
MC 1.6.4 0.88.0.0 for 1.6.4
MC 1.5.2 0.88.0.0 for 1.5.2
MC 1.2.5 0.82.0.0

Staying up to date

Now that all Release builds and Pre-release builds are being made available here on github's Releases tab I am recommending that server admins "watch" Towny on github. Just click the watch button in the upper right and select "Custom > Releases".

Alternatively, if you watch the resource on Spigot you will be notified on that website when a new Release version is out.


Connect/Support

The documentation found on the Towny Wiki is updated every time a Release version of Towny is put out. If you are using a pre-release version it is expected that you have read the changelog for any important changes since the previous Release build.

Some important pages to look over:

Here on GitHub's Issue Tracker you can file bug reports, feature requests, or just ask general questions.

Average time to resolve an issue Percentage of issues still open

If you still need help, join us on the Discord server, where you'll find Channels for support, add-on plugins, SponsorPlugins, plugin-development and just regular old discussion of the plugin.

Note: that if you are not a new Towny admin, it is expected that you become a Sponsor if you want hands on support from LlmDl.


Video Tutorials

Courtesy of Major_Graft, we have a new series of Tutorial Videos available on the Towny website and YouTube.


Contributing

If you'd like to contribute to the Towny code, see the CONTRIBUTING.md.


Translations

If you'd like to help translating Towny into the available languages or add entirely new languages, we're on Crowdin!

Crowdin


Licensing

Towny is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0) License

We don't object to you making your own forks and builds but we do object to people being selfish, which is why we specify No Derivative Works. If you want to modify the code to add some nice feature the least you can do is ask and submit a pull request to allow everyone to benefit from it.


Importing Towny for API use

Developers who wish to use the Towny API in their plugins may read the following instructions on adding Towny via a Maven pom.xml, or read the API guide to learn about the vast API Towny has to offer.


Building Towny

If you would like to build from a specific branch yourself, you can do so with either Apache Ant or Apache Maven, depending on the age of the branch.

For building, open your terminal / command prompt and navigate to the Towny Directory (either extracted, or cloned).

  • Maven

    • Run mvn clean package to generate the plugin in the target directory, within the Towny folder.
  • Ant (Deprecated)

    • For older branches using the Ant build system, the main command to use would be: ant clean jar. This command will exit the Towny directory, creating a lib folder alongside it. A Towny.jar file will be generated and placed within there.
    • Note: As Ant is being deprecated, older branches may eventually not be able to be built against without modification of the build.xml file. We leave no guarantee that the file repo providing the dependencies will stay up.