feat(bot): Whitelist-Rolle kommt vom Panel, nicht aus der Umgebung
Deploy / check (push) Canceled after 0s
Deploy / deploy (push) Canceled after 0s

Zwei Aenderungen, die zusammengehoeren.

1. darfWhitelist las ein Feld, das es nicht mehr gibt
------------------------------------------------------
/person im Spielserver nimmt jetzt das zu pruefende Recht als Parameter
und antwortet mit `darf` statt mit `darfWhitelist`. Der alte Zugriff
haette ab sofort still immer false ergeben - also: jeder im Team
ausgesperrt, ohne eine Fehlermeldung, die darauf hindeutet.

`person()` nimmt das Recht jetzt optional mit; ohne Recht bleibt der
Aufruf, was er war.

2. Die Rollen-ID stand an zwei Orten
------------------------------------
Sie muss zu der passen, die der Spielserver prueft. Stimmen sie nicht
ueberein, zeigt /whitelist status "hat die Rolle" fuer eine Rolle, die
den Zutritt gar nicht oeffnet - ein Fehler, der wie eine richtige
Antwort aussieht.

Deshalb wird sie nur noch an EINEM Ort eingetragen: auf der
Einstellungsseite des Adminpanels. Der Bot holt sie ueber /bot/config,
30 Sekunden gepuffert. Ein Fehlschlag wird NICHT gepuffert, sonst bliebe
eine Stoerung eine halbe Minute stehen, nachdem sie vorbei ist.

WHITELIST_ROLE_ID bleibt als Rueckfall, damit der Befehl auch dann noch
etwas anzeigen kann, wenn das Panel nicht antwortet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 10:58:47 +02:00
co-authored by Claude Opus 5
parent c840f6fc7e
commit 8b4efb2cb9
3 changed files with 66 additions and 15 deletions
+6 -2
View File
@@ -49,8 +49,12 @@ services:
# eingerichtet" sagt.
ACP_URL: ${ACP_URL:-}
ACP_BOT_TOKEN: ${ACP_BOT_TOKEN:-}
# Die Discord-Rolle, die den Zutritt oeffnet. Muss dieselbe sein, die der
# Spielserver prueft (Convar d4rk_discord:role).
# Die Discord-Rolle, die den Zutritt oeffnet. NUR NOCH RUECKFALL: seit
# dem 04.09.2026 holt der Bot sie vom Adminpanel (/bot/config), wo sie
# auf der Seite "Einstellungen" eingetragen wird. Was dort steht, gewinnt.
#
# Der Rueckfall bleibt, damit /whitelist auch dann noch etwas anzeigen
# kann, wenn das Panel gerade nicht antwortet.
WHITELIST_ROLE_ID: ${WHITELIST_ROLE_ID:-}
# HTTP-Endpoint für Gitea-Webhooks + Webinterface
# NPM leitet bot.d4rkst3r.de → host.docker.internal:3080