-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
90 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,107 +1,107 @@ | ||
import { Analyzer } from '../handlers/log.handler'; | ||
|
||
export const getMinecraftVersion = (log: string) => { | ||
const minecraftVerionRegexes = [ | ||
/\n\|[\s\d]+\| Minecraft\s+\| minecraft\s+\| (\S+).+\n/, | ||
/: Loading Minecraft (\S+)/, | ||
/--fml.mcVersion, ([^\s,]+)/, | ||
/--version, ([^,]+),/, | ||
/ --version (\\S+) /, | ||
/Minecraft Version: (.+)/, | ||
]; | ||
const minecraftVerionRegexes = [ | ||
/\n\|[\s\d]+\| Minecraft\s+\| minecraft\s+\| (\S+).+\n/, | ||
/: Loading Minecraft (\S+)/, | ||
/--fml.mcVersion, ([^\s,]+)/, | ||
/--version, ([^,]+),/, | ||
/ --version (\\S+) /, | ||
/Minecraft Version: (.+)/, | ||
]; | ||
|
||
for (const regex of minecraftVerionRegexes) { | ||
const regRes = log.match(regex); | ||
if (!regRes) continue; | ||
return regRes[1].toString(); | ||
} | ||
for (const regex of minecraftVerionRegexes) { | ||
const regRes = log.match(regex); | ||
if (!regRes) continue; | ||
return regRes[1].toString(); | ||
} | ||
}; | ||
|
||
const minecraftVersionAnalyser: Analyzer = async (log) => { | ||
const version = getMinecraftVersion(log); | ||
if (!version) return null; | ||
return { | ||
name: 'Minecraft Version', | ||
value: '`' + version + '`', | ||
}; | ||
const version = getMinecraftVersion(log); | ||
if (!version) return null; | ||
return { | ||
name: 'Minecraft Version', | ||
value: '`' + version + '`', | ||
}; | ||
}; | ||
|
||
export const getJavaVersion = (log: string) => { | ||
const javaVersionRegexes = [/Java Version: (.+)/, /Java is version (.+?),/]; | ||
for (const regex of javaVersionRegexes) { | ||
const regRes = log.match(regex); | ||
if (!regRes) continue; | ||
const version = regRes[1].toString(); | ||
return version; | ||
} | ||
const javaVersionRegexes = [/Java Version: (.+)/, /Java is version (.+?),/]; | ||
for (const regex of javaVersionRegexes) { | ||
const regRes = log.match(regex); | ||
if (!regRes) continue; | ||
const version = regRes[1].toString(); | ||
return version; | ||
} | ||
}; | ||
|
||
export const javaVersionAnalyzer: Analyzer = async (log) => { | ||
const version = getJavaVersion(log); | ||
if (!version) return null; | ||
return { | ||
name: 'Java Version', | ||
value: '`' + version + '`', | ||
}; | ||
const version = getJavaVersion(log); | ||
if (!version) return null; | ||
return { | ||
name: 'Java Version', | ||
value: '`' + version + '`', | ||
}; | ||
}; | ||
|
||
export const javaArgumentsAnalyzer: Analyzer = async (text) => { | ||
const javaArgumentsRegex = /Java Arguments:\s+(\[[^\]]+\])/; | ||
const javaArgumentsMatch = text.match(javaArgumentsRegex); | ||
const javaArgumentsRegex = /Java Arguments:\s+(\[[^\]]+\])/; | ||
const javaArgumentsMatch = text.match(javaArgumentsRegex); | ||
|
||
if (javaArgumentsMatch) { | ||
const javaargs = javaArgumentsMatch[1].toString(); | ||
return { | ||
name: 'Java Arguments', | ||
value: `\`\`\`${javaargs}\`\`\``, | ||
}; | ||
} | ||
return null; | ||
if (javaArgumentsMatch) { | ||
const javaargs = javaArgumentsMatch[1].toString(); | ||
return { | ||
name: 'Java Arguments', | ||
value: `\`\`\`${javaargs}\`\`\``, | ||
}; | ||
} | ||
return null; | ||
}; | ||
|
||
export type Loader = 'Quilt' | 'Fabric' | 'Forge'; | ||
|
||
export function getLoader( | ||
log: string | ||
log: string | ||
): { loader: Loader; version: string } | undefined { | ||
const loaderRegexes = new Map<Loader, RegExp[]>(); | ||
loaderRegexes.set('Quilt', [ | ||
/\n\|[\s\d]+\| Quilt Loader\s+\| quilt_loader\s+\| (\S+).+\n/, | ||
/: Loading .+ with Quilt Loader (\S+)/, | ||
]); | ||
loaderRegexes.set('Fabric', [/: Loading .+ with Fabric Loader (\S+)/]); | ||
loaderRegexes.set('Forge', [ | ||
/--fml.forgeVersion, ([^\s,]+)/, | ||
/MinecraftForge v([^\\s,]+) Initialized/, | ||
]); | ||
const loaderRegexes = new Map<Loader, RegExp[]>(); | ||
loaderRegexes.set('Quilt', [ | ||
/\n\|[\s\d]+\| Quilt Loader\s+\| quilt_loader\s+\| (\S+).+\n/, | ||
/: Loading .+ with Quilt Loader (\S+)/, | ||
]); | ||
loaderRegexes.set('Fabric', [/: Loading .+ with Fabric Loader (\S+)/]); | ||
loaderRegexes.set('Forge', [ | ||
/--fml.forgeVersion, ([^\s,]+)/, | ||
/MinecraftForge v([^\\s,]+) Initialized/, | ||
]); | ||
|
||
for (const loader of loaderRegexes.keys()) { | ||
const regexes = loaderRegexes.get(loader); | ||
if (!regexes) continue; | ||
for (const regex of regexes) { | ||
const regRes = log.match(regex); | ||
if (!regRes) continue; | ||
const version = regRes[1].toString(); | ||
return { | ||
loader: loader, | ||
version: version, | ||
}; | ||
for (const loader of loaderRegexes.keys()) { | ||
const regexes = loaderRegexes.get(loader); | ||
if (!regexes) continue; | ||
for (const regex of regexes) { | ||
const regRes = log.match(regex); | ||
if (!regRes) continue; | ||
const version = regRes[1].toString(); | ||
return { | ||
loader: loader, | ||
version: version, | ||
}; | ||
} | ||
} | ||
} | ||
} | ||
|
||
const loaderAnalyser: Analyzer = async (log) => { | ||
const loaderData = getLoader(log); | ||
if (!loaderData) return null; | ||
const { loader, version } = loaderData; | ||
return { | ||
name: 'Loader', | ||
value: `\`${loader} (${version})\``, | ||
}; | ||
const loaderData = getLoader(log); | ||
if (!loaderData) return null; | ||
const { loader, version } = loaderData; | ||
return { | ||
name: 'Loader', | ||
value: `\`${loader} (${version})\``, | ||
}; | ||
}; | ||
|
||
export const analyzers: Analyzer[] = [ | ||
minecraftVersionAnalyser, | ||
javaVersionAnalyzer, | ||
loaderAnalyser, | ||
minecraftVersionAnalyser, | ||
javaVersionAnalyzer, | ||
loaderAnalyser, | ||
]; |