Skip to content

TicketManager 4.0.0 Release

Compare
Choose a tag to compare
@HoshiKurama HoshiKurama released this 08 Jun 23:15
· 385 commits to master since this release

TicketManager 4 has finally released! A great amount of time has been spent writing this version because it internally shares no similarities with any previous versions. The entire code base was written from scratch and in Kotlin; the database version is new and vastly different from the V2 version, and even the config file is new! Kotlin really has made this project better in so many ways, and quite frankly without Kotlin, TicketManager 4 would still only be a hated idea. Anyways, enough of me advertising Kotlin, here are the changes:

NOTE: PLEASE scroll to the bottom of this release to the section labeled "Important Information For Returning Users" If you are currently using a prior version of TicketManager.

Main Changelog

  • Tickets can now be assigned to groups! To do so, use the format ::<group>. For example, the group Developer would be ::Developer.
  • Full Localization and multi-language support! Everything about TicketManager with exception to a few things are localized! More on this is explained in the new V4 wiki. Currently the only locales supported are UK English, Canadian English, and American English, but more support could be added in the future! (provided someone took the time to write a translated file and maybe translate the wiki to that language too)
  • TicketManager now records the actions users take on a ticket! This includes the time the modification occurred, the type of modification, and the message if applicable.
  • There are now two ways to view tickets due to ticket actions being more advanced.
    /ticket view: shows the basic ticket with only the comments. Useful if you only need the conversation and the basic information about the ticket.
    /ticket deepview: shows the ticket information along with every action that has been performed on a ticket.
  • Permissions have been overhauled. Please read the section for users with a previous TicketManager version.
  • Basic colour changing has been added! The main colour can now be changed in config.
  • Tab completion and the help command now only show the commands a user has permission for.
  • Tab completion behaviour is overhauled. More information in next section.
  • Players can receive messages based on the type of modification now

Paper vs. Spigot

In previous versions of TicketManager, running Paper of Spigot made no difference in how the code behaved. This changes in TicketManager 4. Paper supports asynchronous execution of tab completions while Spigot does not. Because of this, TicketManager will alter its behaviour based on the type of server it's being ran on. While this may or may not make a noticeable difference in performance, it brings up the question of who the target audience this plugin is for.

TicketManager 4 and onwards will first and foremost be made for Paper. Spigot support will be continued, but Spigot-only code will not receive any optimizations.

Important Information For Returning Users

TicketManager 4 appears to be an iteration of previous versions on the surface, but internally it is very, very different. With great change also comes the ability fix past mistakes, and version 4 is unapologetic in this regard. Users starting out with V4 have no use for this section, but if you are currently running TicketManager 2 or 3, then please read this section carefully. It's incredibly important to the proper functioning of the plugin, not to mention other things that will be explained.

Database Version

All TicketManager databases have a sort of internal "database version". If you would like to read up on this concept, there is a wiki page entirely dedicated to it (here). For the people who don't care or the people who would like a TLDR, TicketManager 4 uses database V4 while TicketManager 2 and 3 use V2. As a result, the database will require an update.

This update process is entirely automatic, but like any sort of data migration, there is a risk for data loss or corruption. TM2 and TM3 users will only be able to use TM4 if they start a fresh database or allow TM4 to update the database.

Permissions

TicketManager 4 has received a massive overhaul with permission nodes. Users will need to remove every previous permission TicketManager used and replace them with the new ones. I deeply apologize for causing the people who truly customized the plugin this kind of hassle, but with a complete rewrite, it made sense to clean up and set TM4+ for success in the future.

Notification permissions especially received some well-needed attention. I HIGHLY recommend looking at the new V4 permissions to see what has been added and how things have changed.

Config

Config has receive a total overhaul. Previous users MUST remove the old config file from the TicketManager plugin folder and allow the new file to generate. An alternative option is to download the new config file from the repository and upload that after changing it to your liking.

TLDR Instructions For People Who Don't Bother Reading the Above:

First off, shame on you for not reading this stuff I painstakingly wrote in detail for you. Seriously, go read it. For the people who did read it, thank you. Anyways, I know I wrote a lot of detail, so here's a nicely summed up instruction set for how to upgrade from TicketManager 2 and 3 to TicketManager 4:

  • Stop the server.
  • Remove the old config file from the TicketManager plugin folder. You may allow a new one to be generated or download it from this repo and modify it to your liking.
  • Replace the old jar file with the new jar file.
  • Start the server
  • Remove all previous permission nodes and replace them with the new ones
  • (Optional for SQLite users) TM4 stores information in a new database file called TicketManager-SQLite.db. You may delete the old database file if you wish, but it does no harm remaining. It's not deleted in the event something goes awry during the database update.

End Notes

This section is an optional read:

  • I apologize to any individuals who have truly customized this plugin as I know there are a lot of things different, but now that everything has been written, there is no need for it to happen again in the future. I designed these new permission nodes to scale well with the future, so pretty much anything now is here to stay.

  • Just like previous versions, TicketManager 4.0.0 requires Java 11+. However, this requirement will be immediately increased to Java 16+ for the 1.17 version. The 1.16 version will still remain Java 11+ compatible, so don't worry.

  • Please don't report bugs on the Spigot page. It's a LOT easier to properly report them here on GitHub so I can keep it all organized. I expect this version to have most of the kinks worked out, but like any piece of software, end users are gonna find things I didn't.

  • Thank you so much for sticking with me!