Files
abdulive/packages/discord
ZeasyAlexandClaude Opus 5 e18336c57f discord:setup: der zweite Lauf schreibt wirklich nichts mehr
Der Bauplan verspricht, dass ein zweiter Lauf nichts aendert. Zwei Schritte
haben das gebrochen, weil sie ohne Vergleich geschrieben haben: die
Servereinstellungen und die Rangfolge der Rollen.

Aufgefallen beim Einrichten des Technik-Webhooks - der Lauf meldete "GESETZT
abdulive_" und "GESETZT Rangfolge", obwohl die Vorschau zuvor "steht" gesagt
hatte. Vorschau und echter Lauf sagten also Verschiedenes.

Folgenlos war es nicht: jeder Lauf kostete zwei Aufrufe und hinterliess zwei
Eintraege im Audit-Log des Servers, einen davon eine Rollen-Umsortierung.

Jetzt wird beides vorher verglichen. ApiGuild traegt dafuer die vier Felder
aus GUILD_SETTINGS. Ein Test haelt es fest: nach einem Lauf darf der zweite
weder PATCH /guilds/{id} noch PATCH /guilds/{id}/roles schicken.

Am echten Server nachgeprueft - der dritte Lauf meldet keine Aenderung mehr.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 00:12:58 +02:00
..

@abdulive/discord

Discord-Anbindung: ein kleiner REST-Client und das Einrichten des Community-Servers.

Datei Inhalt
src/permissions.ts Rechtebits als BigInt (das Feld ist 64 Bit breit)
src/api.ts REST-Client: Warteschlange, Rate Limits, lesbare Fehler
src/plan.ts Der Bauplan: Rollen, Kanaele, Rechte, Servereinstellungen
src/apply.ts Traegt den Bauplan auf einen bestehenden Server auf
src/gateway.ts WebSocket-Verbindung fuer Klicks auf Knoepfe
src/selfroles.ts Der Knopf, der Live-Ping gibt und wieder nimmt
src/bot.ts Beides zusammen; laeuft im Ingest-Daemon mit

Einrichten geschieht einmalig ueber apply.ts, der Betrieb laeuft ueber bot.ts. Beide lesen denselben Bauplan.

Aufruf ueber die CLI:

abdulive discord:setup --server <ID> --vorschau   # zeigt nur, was passieren wuerde
abdulive discord:setup --server <ID>              # wendet es an

Und der laufende Teil, der die Knoepfe bedient:

abdulive discord:bot        # zum Ausprobieren; sonst im Ingest-Daemon

Wiederholbar: gefunden wird ueber den Namen, danach wird angeglichen statt neu angelegt. Geloescht wird nie.

Begruendung der Struktur, die Schritte, die von Hand gehoeren, und die Fallstricke: docs/projects/discord-community.md