Files
project_vollidioten_website/constants.ts
Lars Behrends d3d7ec46e6 feat: Add DatabaseManager and LinkPlayer components, implement authentication and linking logic
- 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.
2025-12-28 16:46:04 +01:00

191 lines
6.4 KiB
TypeScript

import { Player, Organization, Project } from './types';
export const MOCK_PLAYERS: Player[] = [
{
uuid: '80301bff-74df-4579-bcfc-082ac8d26b5b',
username: 'kaiwastoshort',
isOnline: true,
tags: ['#Bürger', '#Händler'],
stats: {
playtimeHours: 482,
level: 45,
role: 'Bürger',
organizationId: 'org-3' // Moved to Old Haven
},
inventory: [
{ id: 'minecraft:diamond_pickaxe', name: 'Behutsamkeit Hacke', count: 1, type: 'tool', rarity: 'epic', nbtSummary: 'Eff V, Rep.' },
{ id: 'minecraft:stone_bricks', name: 'Polierter Andesit', count: 64, type: 'block' },
{ id: 'minecraft:stone_bricks', name: 'Polierter Andesit', count: 32, type: 'block' },
null, null,
{ id: 'minecraft:cooked_beef', name: 'Steak', count: 12, type: 'consumable' },
{ id: 'minecraft:compass', name: 'Stadtkarte', count: 1, type: 'misc', nbtSummary: 'Ziel: Spawn' },
null, null
],
storyMarkdown: `
# Der Bauplan von V
> "Stein erinnert sich an das, was Eisen vergisst."
**V** kam während der *Großen Expansion* ins Tal. Ursprünglich ein einfacher Maurer, stieg er nach dem Entwurf des **Aquädukt-Systems** schnell in den Rängen auf.
### Bekannte Verbindungen
* Die Händlergilde
* Nördliche Entdecker
### Aktuelles Ziel
Restaurierung des verfallenen Wachturms am östlichen Grat.
`
},
{
uuid: '8984c0b5-d912-4462-b189-c864fba4a1af',
username: 'DrKButz',
isOnline: false,
tags: ['#Bauunternehmer'],
stats: {
playtimeHours: 120,
level: 12,
role: 'Unternehmer',
organizationId: 'org-4'
},
inventory: [
{ id: 'minecraft:redstone', name: 'Redstone Staub', count: 64, type: 'misc' },
{ id: 'minecraft:comparator', name: 'Komparator', count: 16, type: 'misc' },
null,
{ id: 'minecraft:book', name: 'Forschungsnotizen', count: 1, type: 'misc', nbtSummary: 'Seite 12: Logikgatter' },
null, null, null, null, null
],
storyMarkdown: `
# Forschungslogbuch:
Spezialisiert auf automatisierte Logistik. Gerüchten zufolge hat er eine Maschine gebaut, die Items schneller sortieren kann als jeder Mensch.
* Sucht aktuell: Quarz
* Verkauft: Auto-Schmelzöfen
`
},
{
uuid: 'b3b84518-03a2-4b48-8551-448c3f7a7d77',
username: 'ceratic_test',
isOnline: true,
tags: ['#Bürger', '#Händler'],
stats: {
playtimeHours: 50,
level: 5,
role: 'Bürger',
organizationId: 'org-3'
},
inventory: [],
storyMarkdown: 'Einfach nur eine einfache Bäckerin, die gutes Brot liebt.'
},
{
uuid: '3c10008b-1eb2-4d89-8b8a-6d03c821eb09',
username: 'merkursun',
isOnline: true,
tags: ['#Bürger'],
stats: {
playtimeHours: 50,
level: 5,
role: 'Bürger',
organizationId: 'org-4'
},
inventory: [],
storyMarkdown: 'Einfach nur eine einfache Bäckerin, die gutes Brot liebt.'
}
];
export const MOCK_ORGS: Organization[] = [
/* {
id: 'org-2',
name: 'Butz Building GmbH',
type: 'Company',
description: 'Baugewerbe.',
memberCount: 1,
status: 'active'
},*/
{
id: 'org-3',
name: 'Provisorium Null',
type: 'City',
description: 'Die erste Siedlung, eingebettet zwischen den Zwillingsgipfeln. Bekannt für das geschäftige Marktviertel und die alten Steinmauern.',
memberCount: 6,
status: 'active',
mayor: '',
establishedYear: 'Day 0',
bannerUrl: 'images/screenshots/2025-12-28_01.11.10.png',
gallery: [
'images/screenshots/2025-12-28_01.12.07.png', // Market
'images/screenshots/2025-12-28_01.12.17.png', // Castle
'images/screenshots/2025-12-28_01.12.24.png' // Walls
],
cityStats: {
taxRate: 3.5,
biome: 'Ebene / Gebirge',
defenseRating: 8,
government: 'Feudalmonarchie',
specialty: 'Handel & Stein'
}
},
{
id: 'org-4',
name: 'Sakura',
type: 'City',
description: 'Eine dunkle, biolumineszente Hafenstadt in den tiefen Höhlen. Heimat von Schmugglern und Händlern seltener Mineralien.',
memberCount: 2,
status: 'active',
mayor: 'Kampfzwerk',
establishedYear: 'Ära 2, Jahr 10',
bannerUrl: 'images/screenshots/2025-12-28_01.11.32.png',
gallery: [
'images/screenshots/2025-12-28_01.11.38.png',
'images/screenshots/2025-12-28_01.11.44.png'
],
cityStats: {
taxRate: 15.0,
biome: 'Deep Dark / Lush Caves',
defenseRating: 4,
government: 'Syndikat',
specialty: 'Schmuggelware & Erze'
}
},
];
export const MOCK_PROJECTS: Project[] = [
{
id: 'ven-1',
title: 'DrkButz Architektur & Mauerwerk',
description: 'Führendes Architekturbüro, spezialisiert auf gotische Strukturen und Verteidigungsmauern. Wir entwerfen dein Vermächtnis.',
category: 'Enterprise',
status: 'active',
progress: 85, // Reputation
owner: 'DrKButz',
employees: [],
hiring: false,
foundedDate: 'Zyklus 12',
associatedOrgId: 'org-4', // Old Haven
bannerUrl: 'images/screenshots/2025-12-28_01.11.49.png',
shopCatalog: [
{ id: 's2', name: 'Geländevermessung', description: '1 Stunde Beratung zur Geländevorbereitung.', price: 20, currency: 'Gold', stock: 10, type: 'service' },
{ id: 's3', name: 'Mauerbau', description: 'Wir bauen deine Außenmauern. Preis pro Chunk.', price: 100, currency: 'Gold', stock: 5, type: 'service', materialsRequired: 'Kunde stellt Steinziegel' },
{ id: 's4', name: 'Terraforming', description: 'Einebnung und Landschaftsbau.', price: 75, currency: 'Gold', stock: 2, type: 'service' }
]
},
{
id: 'ven-5',
title: 'Tinas Tavern',
description: 'Täglich frisches Brot zum Spawn-Markt geliefert. Lieferant der königlichen Garde.',
category: 'Enterprise',
status: 'active',
progress: 98,
owner: 'kaiwastoshort',
employees: [],
hiring: false,
associatedOrgId: 'org-3',
bannerUrl: 'images/screenshots/tinas.png',
shopCatalog: [
{ id: 'f1', name: 'Redstone Block', description: '', price: 2, currency: 'Diamonds', stock: 45, type: 'item' },
{ id: 'f2', name: 'Honey', description: '', price: 5, currency: 'Diamonds', stock: 12, type: 'item' },
{ id: 'f3', name: 'Slime', description: '', price: 10, currency: 'Diamonds', stock: 4, type: 'item' },
{ id: 'f4', name: 'Bier', description: '', price: 3, currency: 'Diamonds', stock: 20, type: 'item' }
]
},
];