[$35] Cougar - Kotlin-Based Efficient Queue System for Spigot/Bukkit Networks.

NV6

the opensource person(?)
Premium
Feedback score
8
Posts
383
Reactions
223
Resources
1
Cougar is an efficient & scalable multi-proxy queue system written in kotlin, requires a redis server, and uses gradle as its build management tool.

Modules
Cougar contains three different modules, an explanation of each module is listed below.

ModuleWhat does it do?Dependencies
commonContains all code shared across our other modulesNone
serverHandles queue iteration, updates, and player data processingA redis server
spigotHandles everything the player sees, player priorities, and player version mapping.scala-store, a redis server
velocityHandles player disconnections at proxy-levelscala-store, a redis server


Features

  • Configurable settings at server-level.
  • Allow players to switch servers without being kicked from their queue.
  • Uses Redis to both synchronize & cache the latest server instance & queue data.
  • Server-intensive processes handled asynchronously.
    • More information on this can be seen within the scala-store project: click to view
  • Queues automatically pause/resume based on its targetServer status.
    • whitelisted: Only whitelisted players (on its target server) are able to connect.
    • offline: All players are unable to join until the first update packet is sent from the targetServer on its load.
  • An easy-to-use & basic API to access queue information, along with its target server instance.

Configuration
Cougar handles language configuration through multiple json files located within the server runtime directory. All configuration files are listed below:

iteration.json
  • iterationDelay: The speed at which the queue task iterates. (in milliseconds)
  • updateStreamIterationDelay: The speed at which the queue broadcast task iterates. (in milliseconds)

JSON:
{
  "iterationDelay": 250,
  "updateStreamIterationDelay": 5000
}

language.json
  • updateMessage: The message (with bukkit color codes) which will be parsed & sent to the player in the queue.
  • {whitelisted,offline}Addition: The text which will be added onto the updateMessage if the server is: offline, whitelisted.
JSON:
{
  "updateMessage": "\n§eYou're position §b{pos}§e/§b{max}§e in the §b{queue}§e queue.\n§7Ranks get a higher priority in queues: §f§ostore.some.server",
  "whitelistedAddition": "§cThe server you're queued for is currently whitelisted.",
  "offlineAddition": "§cThe server you're queued for is currently offline."
}

queues.json
  • targetServerId: The internal id of the server this queue is attached to.
  • fancyDisplayName: The display name players will view when receiving queue updates.
  • allowedProtocols: The list of allowed protocol version numbers.

Code:
{
  "queues": [
    {
      "targetServerId": "something",
      "fancyDisplayName": "Something Queue",
      "allowedProtocols": [5, 47]
    }
  ]
}

1642285373345.png

1642285327627.png

1642285331294.png

1642285338593.png

1642285471614.png

Pricing

Note
There currently is no priority implementations, but we are able to add them on request.

Join our discord for more questions, inquiries and support.
 
Type
Offering
Exclusivity
  1. Non-exclusive
Server software
  1. Bukkit
  2. Spigot
  3. Paper
  4. Other
Supported versions
  1. 1.7
  2. 1.8
  3. 1.9
  4. 1.10
  5. 1.11
  6. 1.12
  7. 1.13
  8. 1.14
  9. 1.15
  10. 1.16
  11. 1.17
  12. 1.18

Attachments

  • 1642285618467.png
    1642285618467.png
    111 KB · Views: 133
  • 1642285660161.png
    1642285660161.png
    111 KB · Views: 121
Last edited:
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.
Top