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:
1 parent
81ab865de0
commit
5494c6d24d
7 files changed
+211
-9
No files matched your search
@@ -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**
|
||||
|
||||
Reference in new issue
Block a user