84 lines
2.1 KiB
TypeScript
84 lines
2.1 KiB
TypeScript
import { Server } from 'helios-distribution-types'
|
|
|
|
export interface UntrackedFilesOption {
|
|
/**
|
|
* The subdirectory these patterns will be applied to. Ex.
|
|
* [ "files", "forgegemods" ]
|
|
*/
|
|
appliesTo: string[]
|
|
/**
|
|
* Glob patterns to match against the file.
|
|
*/
|
|
patterns: string[]
|
|
}
|
|
|
|
export interface ServerMetaOptions {
|
|
version?: string
|
|
forgeVersion?: string
|
|
}
|
|
|
|
export function getDefaultServerMeta(id: string, version: string, options?: ServerMetaOptions): ServerMeta {
|
|
|
|
const servMeta: ServerMeta = {
|
|
meta: {
|
|
version: options?.version ?? '1.0.0',
|
|
name: `${id} (Minecraft ${version})`,
|
|
description: `${id} Running Minecraft ${version}`,
|
|
address: 'localhost:25565',
|
|
discord: {
|
|
shortId: '<FILL IN OR REMOVE DISCORD OBJECT>',
|
|
largeImageText: '<FILL IN OR REMOVE DISCORD OBJECT>',
|
|
largeImageKey: '<FILL IN OR REMOVE DISCORD OBJECT>'
|
|
},
|
|
mainServer: false,
|
|
autoconnect: false
|
|
}
|
|
}
|
|
|
|
if(options?.forgeVersion) {
|
|
servMeta.meta.description = `${servMeta.meta.description} (Forge v${options.forgeVersion})`
|
|
servMeta.forge = {
|
|
version: options.forgeVersion
|
|
}
|
|
}
|
|
|
|
// Add empty untracked files.
|
|
servMeta.untrackedFiles = []
|
|
|
|
return servMeta
|
|
}
|
|
|
|
export interface ServerMeta {
|
|
|
|
/**
|
|
* Server metadata to be forwarded to the distribution file.
|
|
*/
|
|
meta: {
|
|
version: Server['version']
|
|
name: Server['name']
|
|
description: Server['description']
|
|
address: Server['address']
|
|
discord?: Server['discord']
|
|
mainServer: Server['mainServer']
|
|
autoconnect: Server['autoconnect']
|
|
javaOptions?: Server['javaOptions']
|
|
}
|
|
|
|
/**
|
|
* Properties related to Forge.
|
|
*/
|
|
forge?: {
|
|
/**
|
|
* The forge version. This does NOT include the minecraft version.
|
|
* Ex. 14.23.5.2854
|
|
*/
|
|
version: string
|
|
}
|
|
|
|
/**
|
|
* A list of option objects defining patterns for untracked files.
|
|
*/
|
|
untrackedFiles?: UntrackedFilesOption[]
|
|
|
|
}
|