2021-05-27 13:30:56 +00:00
|
|
|
import {State} from "@/store";
|
2021-07-23 19:32:15 +00:00
|
|
|
import {DynmapPlayer, DynmapUrlConfig} from "@/dynmap";
|
|
|
|
import LiveAtlasMapDefinition from "@/model/LiveAtlasMapDefinition";
|
2021-05-15 19:25:03 +00:00
|
|
|
|
|
|
|
declare module "*.png" {
|
|
|
|
const value: any;
|
|
|
|
export = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module '*.vue' {
|
2021-07-19 15:40:30 +00:00
|
|
|
import type {DefineComponent} from 'vue'
|
|
|
|
const component: DefineComponent<{}, {}, any>
|
2021-05-15 19:25:03 +00:00
|
|
|
export default component
|
2020-12-20 16:01:15 +00:00
|
|
|
}
|
|
|
|
|
2021-07-20 20:12:08 +00:00
|
|
|
declare global {
|
|
|
|
// noinspection JSUnusedGlobalSymbols
|
|
|
|
interface Window {
|
|
|
|
liveAtlasConfig: LiveAtlasGlobalConfig,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-19 15:40:30 +00:00
|
|
|
interface Coordinate {
|
|
|
|
x: number;
|
|
|
|
y: number;
|
|
|
|
z: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface LiveAtlasLocation {
|
|
|
|
x: number;
|
|
|
|
y: number;
|
|
|
|
z: number;
|
|
|
|
world?: string;
|
|
|
|
}
|
|
|
|
|
2021-07-20 20:12:08 +00:00
|
|
|
interface LiveAtlasGlobalConfig {
|
|
|
|
servers: Map<string, LiveAtlasServerDefinition>;
|
|
|
|
messages: LiveAtlasGlobalMessageConfig;
|
|
|
|
ui: LiveAtlasUIConfig;
|
|
|
|
}
|
|
|
|
|
2021-05-18 15:48:56 +00:00
|
|
|
interface LiveAtlasServerDefinition {
|
2021-05-17 02:39:25 +00:00
|
|
|
id: string
|
|
|
|
label?: string
|
2021-05-18 15:48:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
interface LiveAtlasDynmapServerDefinition extends LiveAtlasServerDefinition {
|
|
|
|
type: 'dynmap',
|
|
|
|
dynmap: DynmapUrlConfig,
|
2021-05-20 15:13:25 +00:00
|
|
|
}
|
|
|
|
|
2021-07-20 20:12:08 +00:00
|
|
|
// Messages defined directly in LiveAtlas and used for all servers
|
|
|
|
interface LiveAtlasGlobalMessageConfig {
|
2021-05-20 15:13:25 +00:00
|
|
|
chatNoMessages: string;
|
2021-05-20 15:39:41 +00:00
|
|
|
chatTitle: string;
|
2021-05-20 15:13:25 +00:00
|
|
|
chatLogin: string;
|
|
|
|
chatLoginLink: string;
|
|
|
|
chatSend: string;
|
2021-05-20 15:39:41 +00:00
|
|
|
chatPlaceholder: string;
|
2021-05-20 15:13:25 +00:00
|
|
|
chatErrorDisabled: string;
|
|
|
|
chatErrorUnknown: string;
|
2021-05-20 15:39:41 +00:00
|
|
|
serversHeading: string;
|
|
|
|
worldsSkeleton: string;
|
|
|
|
playersSkeleton: string;
|
|
|
|
playersTitle: string;
|
|
|
|
playersTitleHidden: string;
|
|
|
|
playersTitleOtherWorld: string;
|
2021-07-21 15:19:18 +00:00
|
|
|
playersSearchPlaceholder: string;
|
|
|
|
playersSearchSkeleton: string;
|
2021-05-20 15:39:41 +00:00
|
|
|
followingHeading: string;
|
|
|
|
followingUnfollow: string;
|
|
|
|
followingTitleUnfollow: string;
|
|
|
|
followingHidden: string;
|
|
|
|
linkTitle: string;
|
|
|
|
loadingTitle: string;
|
|
|
|
locationRegion: string;
|
|
|
|
locationChunk: string;
|
2021-05-24 17:23:35 +00:00
|
|
|
contextMenuCopyLink: string;
|
|
|
|
contextMenuCenterHere: string;
|
2021-05-25 18:26:14 +00:00
|
|
|
toggleTitle: string;
|
2021-05-26 20:13:54 +00:00
|
|
|
mapTitle: string;
|
2021-05-28 20:28:21 +00:00
|
|
|
layersTitle: string;
|
2021-05-28 23:38:29 +00:00
|
|
|
copyToClipboardSuccess: string;
|
|
|
|
copyToClipboardError: string;
|
2021-05-25 18:26:14 +00:00
|
|
|
}
|
|
|
|
|
2021-07-20 20:12:08 +00:00
|
|
|
// Messages defined by dynmap configuration responses and can vary per server
|
|
|
|
interface LiveAtlasServerMessageConfig {
|
|
|
|
chatPlayerJoin: string;
|
|
|
|
chatPlayerQuit: string;
|
|
|
|
chatAnonymousJoin: string;
|
|
|
|
chatAnonymousQuit: string;
|
|
|
|
chatErrorNotAllowed: string;
|
|
|
|
chatErrorRequiresLogin: string;
|
|
|
|
chatErrorCooldown: string;
|
|
|
|
worldsHeading: string;
|
|
|
|
playersHeading: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
type LiveAtlasMessageConfig = LiveAtlasGlobalMessageConfig & LiveAtlasServerMessageConfig;
|
|
|
|
|
|
|
|
interface LiveAtlasUIConfig {
|
|
|
|
playersAboveMarkers: boolean;
|
2021-07-21 15:19:18 +00:00
|
|
|
playersSearch: boolean;
|
2021-07-20 20:12:08 +00:00
|
|
|
}
|
|
|
|
|
2021-05-28 18:14:06 +00:00
|
|
|
export type LiveAtlasUIElement = 'layers' | 'chat' | 'players' | 'maps' | 'settings';
|
2021-06-23 16:40:56 +00:00
|
|
|
export type LiveAtlasSidebarSection = 'servers' | 'players' | 'maps';
|
2021-07-21 16:27:24 +00:00
|
|
|
export type LiveAtlasDimension = 'overworld' | 'nether' | 'end';
|
2021-06-23 16:40:56 +00:00
|
|
|
|
|
|
|
interface LiveAtlasSortedPlayers extends Array<DynmapPlayer> {
|
|
|
|
dirty?: boolean;
|
|
|
|
}
|
2021-07-19 15:40:30 +00:00
|
|
|
|
2021-07-23 19:32:15 +00:00
|
|
|
interface LiveAtlasWorldDefinition {
|
2021-07-19 15:40:30 +00:00
|
|
|
seaLevel: number;
|
|
|
|
name: string;
|
2021-07-21 16:27:24 +00:00
|
|
|
dimension: LiveAtlasDimension;
|
2021-07-19 15:40:30 +00:00
|
|
|
protected: boolean;
|
|
|
|
title: string;
|
|
|
|
height: number;
|
|
|
|
center: Coordinate;
|
2021-07-23 19:32:15 +00:00
|
|
|
maps: Map<string, LiveAtlasMapDefinition>;
|
2021-07-19 15:40:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
interface LiveAtlasWorldState {
|
|
|
|
raining: boolean;
|
|
|
|
thundering: boolean;
|
|
|
|
timeOfDay: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface LiveAtlasParsedUrl {
|
|
|
|
world?: string;
|
|
|
|
map?: string;
|
|
|
|
location?: Coordinate;
|
|
|
|
zoom?: number;
|
|
|
|
legacy: boolean;
|
|
|
|
}
|
2021-07-24 00:15:52 +00:00
|
|
|
|
|
|
|
interface LiveAtlasMapProvider {
|
|
|
|
loadServerConfiguration(): Promise<void>;
|
|
|
|
loadWorldConfiguration(world: LiveAtlasWorldDefinition): Promise<void>;
|
|
|
|
startUpdates(): void;
|
|
|
|
stopUpdates(): void;
|
|
|
|
sendChatMessage(message: string): void;
|
|
|
|
destroy(): void;
|
|
|
|
}
|