mirror of
https://github.com/ceratic/project_vollidioten_website.git
synced 2026-05-14 00:16:47 +02:00
- 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.
85 lines
1.9 KiB
TypeScript
85 lines
1.9 KiB
TypeScript
export interface Item {
|
|
id: string;
|
|
name: string;
|
|
count: number;
|
|
type: 'tool' | 'block' | 'consumable' | 'misc';
|
|
rarity?: 'common' | 'uncommon' | 'rare' | 'epic';
|
|
nbtSummary?: string;
|
|
}
|
|
|
|
export interface PlayerStats {
|
|
playtimeHours: number;
|
|
level: number;
|
|
role: string;
|
|
organizationId?: string;
|
|
}
|
|
|
|
export interface Player {
|
|
uuid: string;
|
|
username: string;
|
|
skinUrl?: string; // Placeholder in a real app
|
|
inventory: (Item | null)[];
|
|
stats: PlayerStats;
|
|
storyMarkdown: string;
|
|
tags: string[];
|
|
isOnline: boolean;
|
|
}
|
|
|
|
export interface CityStats {
|
|
taxRate: number;
|
|
biome: string;
|
|
defenseRating: number; // 0-10
|
|
government: string;
|
|
specialty: string;
|
|
}
|
|
|
|
export interface Organization {
|
|
id: string;
|
|
name: string;
|
|
type: 'City' | 'Guild' | 'Company';
|
|
description: string;
|
|
memberCount: number;
|
|
status: 'active' | 'archived';
|
|
bannerUrl?: string;
|
|
gallery?: string[];
|
|
establishedYear?: string;
|
|
mayor?: string;
|
|
cityStats?: CityStats;
|
|
}
|
|
|
|
export interface ShopItem {
|
|
id: string;
|
|
name: string;
|
|
description?: string;
|
|
price: number;
|
|
currency: 'Gold' | 'Credits' | 'Barter' | 'Diamonds';
|
|
stock: number;
|
|
type: 'item' | 'service' | 'blueprint';
|
|
imageUrl?: string;
|
|
materialsRequired?: string; // e.g. "Customer provides Stone"
|
|
}
|
|
|
|
export interface Project {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
category: 'Enterprise' | 'Service' | 'Story Arc' | 'Faction' | 'Black Market';
|
|
status: 'active' | 'recruiting' | 'private' | 'completed';
|
|
progress: number; // For story arcs completion or company reputation
|
|
owner: string;
|
|
employees: string[];
|
|
hiring: boolean;
|
|
foundedDate?: string;
|
|
associatedOrgId?: string; // Links this project to a city or guild
|
|
shopCatalog?: ShopItem[];
|
|
gallery?: string[];
|
|
bannerUrl?: string;
|
|
}
|
|
|
|
export interface DiscordUser {
|
|
id: string;
|
|
username: string;
|
|
discriminator: string;
|
|
avatarUrl: string;
|
|
linkedPlayerUuid?: string | null;
|
|
} |