-
Notifications
You must be signed in to change notification settings - Fork 0
Configurable serverslots #9
Description
Is your feature request related to a problem? Please describe.
We willen zowel soft- als hard-slots kunnen beheren. Soft cap voor onze eigen logica (queue/prioriteit), en een harde cap die het echte maximum van de server bepaalt — dynamisch aanpasbaar via een command, zonder restart. Daarnaast willen we (indien mogelijk) de waarde in server.properties:max-players programmeerbaar bijwerken zodat de wijziging ook na een reboot blijft gelden. (Paper 1.20+ ondersteunt het runtime wijzigen van max players via API.) ([jd.papermc.io]1)
Describe the solution you'd like
-
Soft cap (pluginlaag)
- Intercepteer join (PreLogin/Login) en beslis o.b.v. onze custom soft cap (integreer met wachtrij/prioriteit).
- Commands:
/slots soft show|set <n>|add <delta>|off. - Permissies:
slots.manage,slots.bypass.
-
Hard cap (echte serverlimiet, live)
- Gebruik Paper API
Server#setMaxPlayers(int)om on the fly het echte maximum te wijzigen (Paper 1.20+). - Commands:
/slots hard show|set <n>|add <delta>. - Wijziging is direct actief en zichtbaar in server ping/MOTD. ([jd.papermc.io]1)
- Gebruik Paper API
-
Persist naar server.properties (na bootup overschrijven)
- Bij wijziging van de hard cap: schrijf ook
max-players=<n>naarserver.propertieszodat het na een restart klopt. (Effect tijdens runtime komt via de API; de file-aanpassing zorgt voor persistentie.) ([PaperMC Docs]2) - Optie
persist_on_restart: true|false. - Let op: sommige hosts/panels overschrijven
server.properties; daarom ook eigen waarde in onze pluginconfig bewaren en bij serverstart opnieuw toepassen via de API. ([CubeCoders Support]3)
- Bij wijziging van de hard cap: schrijf ook
-
UX & gedrag
- Cap verlagen kickt niemand; blokkeert alleen nieuwe joins.
- Reserved slots: apart aantal + permissie (
slots.reserve). - Heldere feedback bij “vol” en na wijziging; log auditregel bij elke aanpassing.
-
Voorbeeldconfig (kort)
slots: enabled: true soft: enabled: true default_cap: 180 hard: enabled: true default_cap: 200 persist_on_restart: true # schrijf ook naar server.properties reserved: enabled: true count: 5 permission: "slots.reserve"
-
Commands (samenvatting)
/slots soft set <n>/add <delta>/show/off/slots hard set <n>/add <delta>/show- Alleen voor
slots.manage.
Additional context
- API-basis: Paper 1.20+ biedt officieel
Server#setMaxPlayers(int)(runtime). ([jd.papermc.io]1) - Behoud na reboot: update daarnaast
server.properties:max-players(persistentie), maar houd rekening met panels die file-waarden overschrijven — reapply bij start. ([PaperMC Docs]2)
Acceptatiecriteria
/slots hard set <n>wijzigt direct het echte maximum (zonder restart). ([jd.papermc.io]1)/slots soft set <n>begrenst joins via onze pluginlaag en integreert met wachtrij/prioriteit.- Bij
persist_on_restart=truewordtserver.properties:max-playersaangepast; na reboot blijft de waarde behouden (voor zover host het niet overschrijft). ([PaperMC Docs]2) - Cap-verlaging kickt niemand; permissies
slots.bypassenslots.reservewerken zoals bedoeld. - Geen console-errors; alle wijzigingen worden gelogd met gebruiker, oude/nieuwe waarde en timestamp.