SurviePote 2/4: atlas Nebula (serveur SurviePote-26.3, distribution.json, sans binaires)

This commit is contained in:
kisakay
2026-10-18 18:44:09 +02:00
parent 14355ac2ad
commit ccaee11472
69 changed files with 8289 additions and 0 deletions
@@ -0,0 +1,5 @@
export enum LibraryType {
FORGE = 'FORGE'
}
@@ -0,0 +1,44 @@
export interface ClaritasModuleMetadata {
/**
* Present on ForgeMods (1.7-1.12) of type MOD.
* Possibly present on ForgeMods (1.7-1.12) of type CORE_MOD and TWEAKER.
* Always present on ForgeMods 1.13+.
* Never present in all other circumstances.
*/
id?: string
/**
* Never present on ForgeMods (1.7-1.12) of type UNKNOWN.
* Present in all other circumstances.
*/
group?: string
/**
* Possibly present on ForgeMods (1.7-1.12).
* Never present in all other circumstances.
*/
version?: string
/**
* Possibly present on ForgeMods (1.7-1.12).
* Never present in all other circumstances.
*/
name?: string
/**
* Always present on ForgeMods (1.7-1.12).
* Never present in all other circumstances.
*/
modType?: ForgeModType_1_7
}
export enum ForgeModType_1_7 {
MOD = 'MOD',
CORE_MOD = 'CORE_MOD',
TWEAKER = 'TWEAKER',
UNKNOWN = 'UNKNOWN'
}
export interface ClaritasResult {
[jarPath: string]: ClaritasModuleMetadata | undefined
}
+49
View File
@@ -0,0 +1,49 @@
export interface FabricVersionMeta {
version: string
stable: boolean
}
export interface FabricLoaderMeta extends FabricVersionMeta {
separator: string
build: number
maven: string
}
export interface FabricInstallerMeta extends FabricVersionMeta {
url: string
maven: string
}
export interface Rule {
action: string
os?: {
name: string
version?: string
}
features?: {
[key: string]: boolean
}
}
export interface RuleBasedArgument {
rules: Rule[]
value: string | string[]
}
// This is really a mojang format, but it's currently only used here for Fabric.
export interface FabricProfileJson {
id: string
inheritsFrom: string
releaseTime: string
time: string
type: string
mainClass: string
arguments: {
game: (string | RuleBasedArgument)[]
jvm: (string | RuleBasedArgument)[]
}
libraries: {
name: string // Maven identifier
url: string
}[]
}
+13
View File
@@ -0,0 +1,13 @@
// https://fabricmc.net/wiki/documentation:fabric_mod_json_spec
// https://github.com/FabricMC/fabric-loader/blob/master/src/main/java/net/fabricmc/loader/impl/metadata/V1ModMetadataParser.java
type FabricEntryPoint = string | { value: string }
export interface FabricModJson {
id: string
version: string
name?: string
entrypoints?: { [key: string]: FabricEntryPoint[] }
}
+22
View File
@@ -0,0 +1,22 @@
// https://mcforge.readthedocs.io/en/latest/gettingstarted/structuring/#the-mcmodinfo-file
export interface McModInfo {
modid: string
name: string
description: string
version: string
mcversion: string
url: string
updateUrl?: string
updateJSON: string
authorList: string[]
credits: string
logoFile: string
screenshots: string[]
parent: string
useDependencyInformation: boolean
requiredMods: string[]
dependencies: string[]
dependants: string[] // Spelled as dependants on forge's wiki.
}
+7
View File
@@ -0,0 +1,7 @@
import { McModInfo } from './McModInfo.js'
export interface McModInfoList {
modListVersion: number
modList: McModInfo[]
}
+29
View File
@@ -0,0 +1,29 @@
// https://github.com/MinecraftForge/MinecraftForge/blob/1.15.x/mdk/src/main/resources/META-INF/mods.toml
export interface ModsToml {
modLoader: string
loaderVersion: string
issueTrackerURL?: string
mods: {
modId: string
version: string
displayName: string
updateJSONURL?: string
displayURL?: string
logoFile?: string
credits?: string
authors?: string
description: string
}[]
dependencies?: {[modId: string]: {
modId: string
mandatory: boolean
versionRange: string
ordering?: 'NONE' | 'BEFORE' | 'AFTER'
side: 'BOTH' | 'CLIENT' | 'SERVER'
}}
}
+8
View File
@@ -0,0 +1,8 @@
export interface PromotionsSlim {
homepage: string
promos: {
[id: string]: string
}
}
@@ -0,0 +1,21 @@
export interface VersionManifestFG2 {
id: string
time: string
releaseTime: string
type: string
minecraftArguments: string
mainClass: string
inheritsFrom: string
jar: string
logging: Record<string, unknown>
libraries: {
name: string
url?: string
checksums?: string[]
serverreq?: boolean
clientreq?: boolean
comment?: string
}[]
}
@@ -0,0 +1,25 @@
export interface VersionManifestFG3 {
id: string
time: string
releaseTime: string
type: string
mainClass: string
inheritsFrom: string
logging: Record<string, unknown>
arguments: {
game: string[]
}
libraries: {
name: string
downloads: {
artifact: {
path: string
url: string
sha1: string
size: number
}
}
}[]
}
+30
View File
@@ -0,0 +1,30 @@
import { Distribution } from 'helios-distribution-types'
export interface DistroMeta {
/**
* Distribution metadata to be forwarded to the distribution file.
*/
meta: {
rss: Distribution['rss']
discord?: Distribution['discord']
}
}
export function getDefaultDistroMeta(): DistroMeta {
return {
meta: {
rss: '<LINK TO RSS FEED>',
discord: {
clientId: '<FILL IN OR REMOVE DISCORD OBJECT>',
smallImageText: '<FILL IN OR REMOVE DISCORD OBJECT>',
smallImageKey: '<FILL IN OR REMOVE DISCORD OBJECT>'
}
}
}
}
+104
View File
@@ -0,0 +1,104 @@
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
fabricVersion?: 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}`,
icon: 'How to set the server icon: https://github.com/dscalzi/Nebula#setting-the-server-icon',
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
}
}
if(options?.fabricVersion) {
servMeta.meta.description = `${servMeta.meta.description} (Fabric v${options.fabricVersion})`
servMeta.fabric = {
version: options.fabricVersion
}
}
// 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']
icon?: Server['icon']
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
}
/**
* Properties related to Fabric.
*/
fabric?: {
/**
* The fabric loader version. This does NOT include the minecraft version.
* Ex. 0.14.18
*/
version: string
}
/**
* A list of option objects defining patterns for untracked files.
*/
untrackedFiles?: UntrackedFilesOption[]
}
+9
View File
@@ -0,0 +1,9 @@
export interface Asset {
url: string
path: string
size: number
hashType: string
hash: string
}