# BexoGames 2.0 — Phase 8.1

Phase 7 erweitert die bestehende Phase-6-Startseite um einen echten Games-Hub und einzelne Game-Unterseiten.

## Neu
- `/games` als zentraler Games-Hub
- Unterseiten für Minecraft, Garry's Mod, Valorant, Rainbow Six Siege, ETS2, Counter-Strike 2 und Roblox
- klare Trennung zwischen eigenen BexoGames-Projekten/Servern und Community-Games
- Minecraft mit GhastTD, Spearstrike und weiteren Projekt-Plätzen
- Garry's Mod mit TTT2 / TTTC
- vorbereitete Serverstatus-/Connect-Oberfläche ohne erfundene Live-Daten
- Community-Games mit vorbereitetem Bereich für späteres „Mitspieler finden“
- durchgehendes Phase-6-Atmosphere-Design auf allen neuen Seiten
- „Und vieles mehr“ bleibt ausdrücklich Bestandteil des Multi-Gaming-Konzepts

## Start
```bash
npm install
npm run dev
```

Dann `http://localhost:3000` öffnen. Der Games-Hub liegt unter `http://localhost:3000/games`.


## Phase 7.1 Fixes
- Discord CTA now opens the official invite: https://discord.com/invite/pTNwsZrvym
- Removed the bottom `href="#"` jump that caused the page to snap to the top and leave the layout in a visually broken state.
- Fixed the React key warning in `GameDetail` by giving each mapped motion card a stable key and a single wrapped child tree.

## Phase 8 – Discord Integration

Die Startseite lädt jetzt öffentliche Live-Daten über `/api/discord` direkt aus dem BexoGames-Invite. Dafür ist kein Bot-Token nötig. Angezeigt werden – sofern Discord sie für den Invite liefert – Servername, ungefähre Mitgliederzahl und aktuell online befindliche Mitglieder.

Für die spätere offizielle Streamer-Prüfung ist `/api/discord/streamers` vorbereitet. Kopiere `.env.example` nach `.env.local` und trage dort ein:

```env
DISCORD_GUILD_ID=...
DISCORD_STREAMER_ROLE_ID=...
DISCORD_BOT_TOKEN=...
```

Der Bot-Token bleibt ausschließlich serverseitig. Für das Abrufen aller Guild-Mitglieder muss der Bot die nötigen Discord-Berechtigungen besitzen; bei größeren Servern kann zusätzlich der privilegierte Guild Members Intent im Discord Developer Portal erforderlich sein.

Die Streamer-API gibt ausschließlich Discord-Mitglieder zurück, welche die konfigurierte Streamer-Rolle besitzen. Im nächsten Schritt kann darauf die Twitch-Verknüpfung und Live-Prüfung gesetzt werden.


## Phase 8.1 – BexoGames Discord-IDs hinterlegt

Die BexoGames Discord-Konfiguration ist jetzt bereits im Projekt gesetzt:

- Guild-ID: `339497035478728704`
- Streamer-Rollen-ID: `1409229991178403970`

Für die Rollenprüfung muss lokal nur noch der Bot-Token gesetzt werden. Kopiere `.env.example` nach `.env.local` und ergänze ausschließlich:

```env
DISCORD_BOT_TOKEN=DEIN_BOT_TOKEN
```

Die beiden IDs sind zusätzlich als optionale Env-Overrides enthalten. Der Bot-Token darf niemals in Git, Client-Komponenten oder öffentliche Dateien gelangen.

## Phase 9 – Streamer & Twitch Live

Die Website verbindet die Discord-Streamer-Rolle mit den hinterlegten Twitch-Kanälen. `/api/streamers` prüft serverseitig Discord und Twitch. Bot-Token und Twitch Client Secret bleiben ausschließlich in `.env.local`.

Aktuelle Zuordnungen:
- Discord `286577400157044736` → Twitch `theonlygamer35`
- Discord `257896226366816257` → Twitch `minniiminh`

Neue Seite: `/streamer`. Die Startseite zeigt unter `#live` nur aktuell laufende Streams. Wenn mehrere Creator gleichzeitig live sind, kann mit Pfeilen zwischen ihnen gewechselt werden. Der Status wird im Browser alle 60 Sekunden aktualisiert.

Phase 11: Community Hub added at /community. Navigation updated to use the new community page.


## Phase 11.1 Fix
React 19 / Framer Motion key warnings in CommunityDirectory maps fixed by wrapping mapped motion children in a single inner element.

## Phase 12 – Mobile & Tablet Finish
- Navigation, Hero, Sections und Footer für Tablet/Smartphone nachgeschärft
- Touch-Ziele vergrößert und horizontale Navigation auf kleinen Screens scrollbar gemacht
- Große Desktop-Artworks auf Mobile reduziert/ausgeblendet
- Games, Events, Community und Streamer Layouts auf 1-Spalten-Flows optimiert
- zusätzliche 420px-Korrekturen für schmale Smartphones

## Phase 12.2
- Mobile navigation overlay fixed for Chromium/Opera: opened header now owns the full dynamic viewport and the menu panel is positioned inside it.
- Mobile game ticker changed to a seamless marquee so game names no longer appear statically clipped at the viewport edge.
- Reduced-motion fallback keeps the ticker horizontally scrollable without animation.

## Phase 13 – Impressum & Datenschutz
- Funktionale Routen `/impressum` und `/datenschutz`
- Impressum mit Anbieterangaben nach § 5 DDG
- Datenschutzerklärung passend zum aktuellen technischen Stand (Serverlogs, Discord-API, Twitch-API/CDN, Kontakt, Rechte)
- Gemeinsamer SiteFooter auf Startseite, Games, Game-Details, Community, Events und Streamer
- Keine Analyse-/Marketing-Cookies oder Trackingdienste im aktuellen Stand
