web/src/lib/types.ts
1.7 KB · sha256:9b5a7a7af80e5746aab1315eca39e9952cdadcae171e5bc4b76d79b5808bc39a
export interface Overview {
players: number;
groups: number;
tracks: number;
online: number;
maxPlayers: number;
handlers: string[];
}
export interface PlayerSummary {
uuid: string;
username: string;
primaryGroup: string;
nodeCount: number;
online: boolean;
}
export interface PlayerNode {
type: "permission" | "inheritance" | "prefix" | "suffix" | "weight" | "meta";
key: string;
value: boolean;
context?: { server?: string; world?: string };
expiry: number | null;
priority: number;
}
export interface PlayerDetail {
uuid: string;
username: string;
primaryGroup: string;
groups: string[];
prefix: string | null;
suffix: string | null;
nodes: PlayerNode[];
online: boolean;
}
export interface GroupSummary {
name: string;
displayName: string;
weight: number;
nodeCount: number;
isDefault: boolean;
}
export interface GroupDetail {
name: string;
displayName: string;
weight: number;
parents: string[];
nodes: PlayerNode[];
isDefault: boolean;
}
export interface TransactionConfig {
handler: string;
amount?: number;
[k: string]: unknown;
}
export interface TrackRung {
group: string;
requirements: string[];
costs: TransactionConfig[];
autoPromote: boolean;
}
export interface TrackSummary {
name: string;
rungCount: number;
autoRungs: number;
pollSeconds: number;
rungs: {
group: string;
requirements: number;
costs: number;
autoPromote: boolean;
}[];
}
export interface TrackDetail {
name: string;
pollSeconds: number;
rungs: TrackRung[];
}
export interface GroupBundleSummary {
name: string;
displayName: string;
groups: string[];
size: number;
}
export interface GroupBundleDetail {
name: string;
displayName: string;
groups: string[];
}