This update has two highly-requested features that I have finally added. Both of these new features had a bunch of changes under-the-hood, so if you have/made any addons, they might need to be updated. Feel free to contact me with any questions you might have.
Both of the new features also have new messages which replace old ones. The old messages will still be in the messages file, and the new ones are automatically added with the default. If you modified all of ajQueue's messages, you might need to copy these over. But be sure to note the differences between the old and new ones.
With this release, ajQueue now absolutely requires velocity 3.2.0 or later. Bungeecord requirements have not changed.
Big New Features
- Express Queues for ajQueuePlus. Express queues are meant to be a more fair replacement for the existing priority system. Theoretically with priority, if enough priority (paid) players keep joining the queue, no standard players will ever be sent. The express queue is a separate queue that is meant to only be open to paid members. ajQueue then alternates between sending players from the standard queue and express queue. You can also change the ratio in the config to send more express players or more standard players, or leave it at the default of 1:1. Since the express queue is only open to some players, the idea is that it will be shorter than the standard queue, so paid players can join the server faster without the possibility of no standard players ever being sent. The priority system still works and will probably never go anywhere (it even works within the express queue if that's something you'd want). Players need the ajQueue.express.<server> permission to join an express queue, so by default nothing will change for players.
- Better ETAs. ajQueue now measures the time it takes to send players to the server, and will use that to calculate a rolling average for more accurate ETAs. This new system even allows servers that are full to have an ETA. I've set the default to average the last 10 sends, but you can tweak that in the config if you want more stable or ETAs that update to changes in sending times faster. If you want for some reason, this new ETA system can be disabled in the config.
Other changes
- Take supported-protocols into account in group balancing (for default and first balancers)
- Fixed priority messages ignoring everything after a second colon in the message
- Added treat-negative-one-max-player-as-infinite config option
- Don't let instant send if more than 1 player is in the queue without bypass
- Fixed backend trying to access PlaceholderAPI when its not installed
- Limited /ajQueue list to showing 50 players per queue (otherwise it kicks the command sender if too many players are in queues)
- Fixed a ConcurrentModificationException that sometimes happened when a player leaves the proxy
- Fixed a rare NullPointerException that could happen if a player is in the queue and queue events are sent while they are in between servers
- Optimized bypass and priority logic for ajQueuePlus
- Some other small optimizations for both versions
- Fixed a conflict with nLogin, where queue-server wouldn't work if a premium member was redirected to it using nLogin
- Fixed server aliases ignoring everything after a second colon
- Fixed the config updater putting the priority-messages into enable-priority-messages when updating the config
- Fixed velocity-kick-reason not supporting hex colors
- Fixed make-room comment saying the permission twice but not that the server needs to be full
- Fixed SuccessfulSendEvent being triggered for remove-player-on-server-switch
- Added first-strict balancer, that always picks the first server in the group no matter what
- Added 1.21.10 and 1.21.11 protocol names to default messages (you can always add protocol names manually btw)
- Add a warning when auto-add-to-queue-on-kick fails to queue a player. It suggests raising auto-add-to-queue-on-kick-delay
- Added ping-timeout option for velocity if you want to use a different timeout for ajQueue pinging servers than the one from velocity.toml
- Fixed instant sends not working if an offline player is sitting in the queue
- Clarified that velocity-kick-message does not apply to offline/full servers
- Re-check the stayqueued permission for a player when they leave, to be sure we have the most up-to-date max offline time for them.