CatalysmsServerManager/7-Days-to-Die-API-wrapper

View on GitHub
lib/responses.ts

Summary

Maintainability
A
0 mins
Test Coverage
export interface GameTime {
    days: number,
    hours: number,
    minutes: number
}

export interface StatsResponse {
    gametime: GameTime,
    players: number,
    hostiles: number,
    animals: number
}

export interface Position {
    x: number,
    y: number,
    z: number
}

export interface OnlinePlayerResponse {
    steamid: string,
    userid: string,
    entityid: number,
    ip: string,
    name: string,
    online: boolean,
    position: Position,
    level: number,
    health: number,
    stamina: number,
    zombiekills: number,
    playerkills: number,
    playerdeaths: number,
    score: number,
    totalplaytime: number,
    lastonline: string,
    ping: number
}

export interface EntityLocation {
    id: number,
    name: string,
    position: Position
}

export interface LandClaimsResponse {
    claimsize: number,
    claimowners: Array<ClaimOwner>
}

export interface ClaimOwner {
    steamid: string,
    claimactive: boolean,
    playername: string,
    claims: Array<Position>
}

export interface CommandResponse {
    command: string,
    parameters: string,
    result: string
}

export interface AllowedCommands {
    commands: Array<CommandEntry>
}

export interface CommandEntry {
    command: string,
    description: string,
    help: string
}

export interface InventoryResponse {
    playername: string,
    userid: string,
    steamid: string,
    bag: Array<any>, // eslint-disable-line
    belt: Array<any>, // eslint-disable-line
    equipment: PlayerEquipment
}

// TODO: some generic interface for this perhaps?
/* eslint-disable */
export interface PlayerEquipment {
    head: any,
    eyes: any,
    face: any,
    armor: any,
    jacket: any,
    shirt: any,
    legarmor: any,
    pants: any,
    boots: any,
    gloves: any
}
/* eslint-enable */

export interface PlayerListResponse {
    total: number,
    totalUnfiltered: number,
    firstResult: number,
    players: Array<PlayerNotOnline>
}

export interface PlayerNotOnline {
    steamid: string,
    entityid: number,
    ip: string,
    name: string,
    online: boolean,
    position: Position,
    totalplaytime: number,
    lastonline: string,
    ping: number,
    banned: boolean
}

export interface PlayerLocation {
    steamid: string,
    userid: string,
    name: string,
    online: boolean,
    position: Position
}

export interface GetServerInfo {
    GameType: GetServerInfoEntry,
    GameName: GetServerInfoEntry,
    GameHost: GetServerInfoEntry,
    ServerDescription: GetServerInfoEntry,
    ServerWebsiteURL: GetServerInfoEntry,
    LevelName: GetServerInfoEntry,
    GameMode: GetServerInfoEntry,
    Version: GetServerInfoEntry,
    IP: GetServerInfoEntry,
    CountryCode: GetServerInfoEntry,
    SteamID: GetServerInfoEntry,
    CompatibilityVersion: GetServerInfoEntry,
    Platform: GetServerInfoEntry,
    Port: GetServerInfoEntry,
    CurrentPlayers: GetServerInfoEntry,
    MaxPlayers: GetServerInfoEntry,
    GameDifficulty: GetServerInfoEntry,
    DayNightLength: GetServerInfoEntry,
    ZombiesRun: GetServerInfoEntry,
    DayCount: GetServerInfoEntry,
    Ping: GetServerInfoEntry,
    DropOnDeath: GetServerInfoEntry,
    DropOnQuit: GetServerInfoEntry,
    BloodMoonEnemyCount: GetServerInfoEntry,
    EnemyDifficulty: GetServerInfoEntry,
    PlayerKillingMode: GetServerInfoEntry,
    CurrentServerTime: GetServerInfoEntry,
    DayLightLength: GetServerInfoEntry,
    BlockDurabilityModifier: GetServerInfoEntry,
    AirDropFrequency: GetServerInfoEntry,
    LootAbundance: GetServerInfoEntry,
    LootRespawnDays: GetServerInfoEntry,
    MaxSpawnedZombies: GetServerInfoEntry,
    LandClaimSize: GetServerInfoEntry,
    LandClaimDeadZone: GetServerInfoEntry,
    LandClaimExpiryTime: GetServerInfoEntry,
    LandClaimDecayMode: GetServerInfoEntry,
    LandClaimOnlineDurabilityModifier: GetServerInfoEntry,
    LandClaimOfflineDurabilityModifier: GetServerInfoEntry,
    MaxSpawnedAnimals: GetServerInfoEntry,
    IsDedicated: GetServerInfoEntry,
    IsPasswordProtected: GetServerInfoEntry,
    ShowFriendPlayerOnMap: GetServerInfoEntry,
    BuildCreate: GetServerInfoEntry,
    EACEnabled: GetServerInfoEntry,
    Architecture64: GetServerInfoEntry,
    StockSettings: GetServerInfoEntry,
    StockFiles: GetServerInfoEntry,
    RequiresMod: GetServerInfoEntry,
    AirDropMarker: GetServerInfoEntry,
    EnemySpawnMode: GetServerInfoEntry,
    IsPublic: GetServerInfoEntry
}

export interface GetServerInfoEntry {
    type: string,
    value: any // eslint-disable-line
}

export interface GetWebUIUpdatesResponse {
    gametime: GameTime,
    players: number,
    hostiles: number,
    animals: number,
    newlogs: number
}

export interface LogLine {
    date: string,
    time: string,
    uptime: string,
    msg: string,
    trace: string,
    type: string
}

export interface GetLog {
    firstLine: number,
    lastLine: number,
    entries: Array<LogLine>
}