Discord: eigener Kanal fuer Beitritte, Spielvorschlaege und Reactions als Forum

Beitrittsmeldungen liefen nach #allgemein, weil Discord ohne Angabe den
ersten Kanal nimmt. Jetzt gehen sie nach #begruessung (SYSTEM_CHANNEL).

Die von Abdu angelegten Textkanaele spielvorschlaege und
reaction-einsendungen sind jetzt Foren im Bauplan: ein Beitrag je Spiel
bzw. Clip, 👍 als Standard-Reaktion, Stand-Tags nur fuer Mods. apply.ts
kann dafuer Tags und Standard-Reaktion anlegen und nachziehen; fremde
Tags bleiben mit ihrer ID stehen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZeasyAlexandClaude Opus 5.5 committed 2026-10-17 21:52:02 +02:00
1 parent 81ab865de0
commit 5494c6d24d
7 files changed
+211 -9

No files matched your search

+73
View File
@@ -49,16 +49,30 @@ export type CategoryPlan = {
overwrites?: OverwritePlan[];
};
/** Ein Stichwort, mit dem Forenbeitraege markiert werden. */
export type TagPlan = {
/** Hoechstens 20 Zeichen, sonst lehnt Discord ab. */
name: string;
emoji: string;
/** Setzen duerfen nur Mods (MANAGE_THREADS), nicht der Verfasser. */
moderated?: boolean;
};
export type ChannelPlan = {
key: string;
name: string;
aliases?: string[];
type: number;
/** Bei Foren sind das die Richtlinien, die ueber jedem neuen Beitrag stehen. */
topic?: string;
/** `key` einer Kategorie aus CATEGORIES. */
category?: string;
overwrites?: OverwritePlan[];
webhooks?: Array<{ name: string; slot: WebhookSlot }>;
/** Nur Foren. Von Hand angelegte Tags bleiben daneben stehen. */
tags?: TagPlan[];
/** Nur Foren: die Reaktion, die unter jedem Beitrag schon angeboten wird. */
reaction?: string;
};
// ---------------------------------------------------------------- Rechte
@@ -184,6 +198,17 @@ export const CHANNELS: ChannelPlan[] = [
topic: 'Was das hier ist und die drei Regeln.',
overwrites: READONLY,
},
{
// Hier landen Discords Beitrittsmeldungen (SYSTEM_CHANNEL). Beschreibbar,
// damit der Winke-Knopf unter der Meldung funktioniert - der antwortet im
// Namen dessen, der klickt.
key: 'begruessung',
name: '🙋│begrüßung',
aliases: ['begrüßung', 'begruessung'],
type: CH.TEXT,
category: 'info',
topic: 'Wer neu ist, taucht hier auf. Sag Hallo.',
},
{
key: 'ankuendigungen',
name: '📢│ankündigungen',
@@ -214,6 +239,44 @@ export const CHANNELS: ChannelPlan[] = [
topic: 'Gute Momente aus dem Stream. Der Clip-Knopf postet hier hin.',
webhooks: [{ name: 'Clips', slot: 'clipsWebhook' }],
},
{
// Von Abdu als Textkanal angelegt, seit 2026-10-17 ein Forum: ein Beitrag
// je Spiel, abgestimmt wird per Daumen. Im Textkanal schlaegt nach drei
// Wochen jemand dasselbe Spiel noch einmal vor, weil der erste Vorschlag
// weggescrollt ist. Der erste Satz der Richtlinien ist Abdus eigener.
// Die Stand-Tags setzen nur Mods, sonst markiert jeder sein Spiel als
// "wird gespielt".
key: 'spielvorschlaege',
name: '🎮│spielvorschläge',
aliases: ['spielvorschläge', 'spielvorschlaege'],
type: CH.FORUM,
category: 'community',
topic: 'Ihr wollt sehen wie ich Spiele zocke, die euch gefallen? Schreibt gerne eure Vorschläge rein!\n\n' +
'Ein Beitrag pro Spiel. Gibt es das Spiel schon, Daumen hoch drücken statt noch einmal posten - ' +
'so sehe ich, was ihr am meisten sehen wollt.',
reaction: '👍',
tags: [
{ name: 'Wird gespielt', emoji: '🎮', moderated: true },
{ name: 'Gespielt', emoji: '✅', moderated: true },
{ name: 'Eher nicht', emoji: '❌', moderated: true },
],
},
{
// Ebenfalls von Abdu angelegt und ebenfalls ein Forum: ein Beitrag je
// Clip, damit man sieht, was schon dran war.
key: 'reaction',
name: '👀│reaction-einsendungen',
aliases: ['reaction-einsendungen'],
type: CH.FORUM,
category: 'community',
topic: 'Ihr habt Clips oder Videos worauf ich reagieren sollte? Schickt hier die Clips rein!\n\n' +
'Ein Beitrag pro Clip, Link in den Beitrag.',
reaction: '👍',
tags: [
{ name: 'Kommt dran', emoji: '🔜', moderated: true },
{ name: 'Angeschaut', emoji: '✅', moderated: true },
],
},
{
key: 'voice',
name: '🔊 Zusammen zocken',
@@ -260,6 +323,14 @@ export const GUILD_SETTINGS = {
system_channel_flags: 4, // Einrichtungstipps unterdruecken, Beitritte zeigen
};
/**
* `key` des Kanals, in den Discord "X ist beigetreten" schreibt. Ohne Angabe
* nimmt Discord den ersten Kanal des Servers, und das war #allgemein: dort
* gingen die Beitritte zwischen den Gespraechen unter, und umgekehrt.
* Steht nicht in GUILD_SETTINGS, weil die ID erst nach den Kanaelen feststeht.
*/
export const SYSTEM_CHANNEL = 'begruessung';
/**
* Wird einmalig in #willkommen gepostet, wenn der Kanal noch leer ist.
* {key} wird durch die Erwaehnung des Kanals mit diesem `key` ersetzt.
@@ -276,6 +347,8 @@ Das hier ist der Ort zwischen den Streams. Wer mitliest, gehört dazu.
**Wo was passiert**
> {allgemein} - alles andere
> {clips} - die guten Momente
> {spielvorschlaege} - was Abdu mal spielen sollte
> {reaction} - Clips, auf die Abdu reagieren soll
> {ankuendigungen} - Stream-Start und die Zusammenfassung danach
**Bescheid wissen, wenn der Stream startet**