4drian3d / 4drian3d/VLobby

Allow for combination of both handlers

Open
#64 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
Kotlin
Stars
18
Forks
3
Avg merge
3d 20h
Merged PRs (30d)
2

Description

Currently, there is two available handlers: the COMMAND_TO_SERVER handler, and the REGULAR handler. The problem is that, when using the REGULAR handler, you loose the ability to load balance servers. It would be nice to have a combination between the two, where you would do something like:
```hcl
many-to-many-handler {
command {
# Commands that can be used
commands=[
lobby,
hub
]
# List of servers
servers=[
lobby,
lobby1,
hub
]
# Send Mode Formula
# RANDOM: It will send the player to a random server among the configured ones
# FIRST_AVAILABLE: It will send the player to the first available server
# EMPTIEST: Send the player to the server with the least amount of players
send-mode=RANDOM
}

command {
# Commands that can be used
commands=[
bedwars,
bw
]
# List of servers
servers=[
bedwars1,
bedwars2
]
# Send Mode Formula
# RANDOM: It will send the player to a random server among the configured ones
# FIRST_AVAILABLE: It will send the player to the first available server
# EMPTIEST: Send the player to the server with the least amount of players
send-mode=EMPTIEST
}
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Look at the existing handlers in the codebase, likely in a handlers package. Understand how COMMAND_TO_SERVER and REGULAR handlers are implemented. The feature requires combining their logic to support command-based load balancing. Check for configuration parsing and server routing logic. Test by building the plugin and verifying the new HCL configuration works with Velocity.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.