- Created DatabaseManager component for managing database access via phpMyAdmin. - Developed LinkPlayer component to link Discord accounts with game characters, including user authentication and error handling. - Added mock data files for players, organizations, and projects to handle backend unavailability. - Implemented AuthService for managing user authentication and session checks. - Created DatabaseService to fetch and manage player, organization, and project data with fallback to mock data. - Added HTML page for handling authentication unavailability. - Developed a test script for validating Docker setup and required files.
Obsidian | RP Plattform
Obsidian ist ein modernes, webbasiertes Dashboard für Minecraft Roleplay-Server. Es dient als "Immersive Interface" für Spieler und Admins, um Charakterdaten, Inventare, Städte, Organisationen und wirtschaftliche Aktivitäten außerhalb des Spiels darzustellen.
Das Projekt zielt darauf ab, die Lücke zwischen In-Game-Geschehen und Web-Präsenz zu schließen, ohne ein komplexes Backend (PHP/Python/Node) zwingend vorauszusetzen.
✨ Features
👤 Bürger & Charakterakten
- Visuelles Inventar: Darstellung von Items, Rüstung und NBT-Daten in einem Grid-Layout.
- Story-Engine: Markdown-Rendering für Charakter-Hintergrundgeschichten.
- Identity Linking: (Mockup) Discord-Login zur Verknüpfung von Spielern mit ihren RP-Charakteren.
🏙️ Geopolitik & Organisationen
- Städte-Profile: Banner, Statistiken (Steuern, Verteidigung), Bewohnerlisten und politische Strukturen.
- Wirtschaftssystem: Spielergeführte Unternehmen mit integrierten Produkt- und Dienstleistungskatalogen.
- Hierarchie: Darstellung von Gilden, Firmen und Fraktionen.
🛠️ Technische Tools (Simuliert)
- Datapack Generator: Erstellt automatisch
.mcfunction-Dateien für den Minecraft-Server, um Daten sicher via "Item-Umbenennung" (Non-OP Input) zu erfassen. - SQL-Konsole: Eine simulierte Datenbank-Oberfläche, um SQL-Queries auf den lokalen Datensätzen auszuführen (für Immersion und Admin-Feeling).
- Telemetry Dashboard: Echtzeit-ähnliche Statistiken über Server-Aktivitäten.
🚀 Installation & Start
Da dieses Projekt auf modernen Web-Standards (ES Modules & React 19 via CDN) basiert, ist kein Build-Prozess (kein npm run build) zwingend erforderlich, um die Demo zu starten.
Voraussetzungen
- Ein moderner Browser (Chrome, Firefox, Edge).
- Ein lokaler Webserver (z.B. VS Code "Live Server", Python
http.serverodernpx serve).
Starten
- Repository klonen oder herunterladen.
- Öffne den Ordner im Terminal.
- Starte einen statischen Server. Beispiel mit Python:
python3 -m http.server 8000 - Öffne
http://localhost:8000im Browser.
⚙️ Architektur & Datenfluss (Konzept)
Obsidian ist als "Serverless"-Viewer konzipiert. In einer echten Produktionsumgebung funktioniert der Datenfluss wie folgt:
- Minecraft Server: Ein Datapack (siehe Generator im Tool) exportiert Inventare und Spielerdaten in JSON-Formate in den Server-Log oder via Plugin.
- Sync-Script: Ein einfaches Shell/Batch-Skript lädt diese JSON-Dateien per FTP auf den Webserver hoch.
- Frontend: Obsidian liest die statischen JSON-Dateien (
fetch('/api/players.json')) und stellt sie dar.
Aktueller Status: In dieser Demo-Version werden alle Daten aus constants.ts und MockDatabaseService.ts geladen, um die Funktionalität ohne echten Server zu demonstrieren.
🎨 Tech Stack
- Framework: React 19 (via ESM Imports)
- Styling: Tailwind CSS (CDN Runtime für Demo / Buildless Setup)
- Icons: Custom SVG Set (Lucide-Style)
- Type Safety: TypeScript (JSDoc/Interfaces im Code)
📸 Projektstruktur
index.html: Entry Point & Import Maps.App.tsx: Haupt-Routing und Layout-Logik.pages/: Einzelne Ansichten (Dashboard, Profile, SQL-Manager).components/: Wiederverwendbare UI-Elemente (InventoryGrid, Layout).services/: Simulierte Backend-Logik (Database, Auth).constants.ts: Mock-Daten für Spieler, Städte und Items.
📄 Lizenz
Entwickelt als Konzeptstudie für immersive RP-Communities. Frei verwendbar.