bitburner-src/src/Terminal/commands/mem.ts
Dan b2add6c26b
fix(commands): error feedback, wording consistency
Found most (hopefully all) places where the error message wording
incorrectly was shown to the tune of 'no script exists', where it should
have been showing to the effect of 'script is not running'.
Also cleaned up some of the consistency in the wording and added a
'helper' export for knowing valid script extensions used in validation
of 'isScriptFilename', so we can have consistent error messaging.

Resolves danielyxie/bitburner#1966
2021-12-19 03:10:43 +00:00

45 lines
1.3 KiB
TypeScript

import { ITerminal } from "../ITerminal";
import { IRouter } from "../../ui/Router";
import { IPlayer } from "../../PersonObjects/IPlayer";
import { BaseServer } from "../../Server/BaseServer";
import { numeralWrapper } from "../../ui/numeralFormat";
export function mem(
terminal: ITerminal,
router: IRouter,
player: IPlayer,
server: BaseServer,
args: (string | number | boolean)[],
): void {
try {
if (args.length !== 1 && args.length !== 3) {
terminal.error("Incorrect usage of mem command. usage: mem [scriptname] [-t] [number threads]");
return;
}
const scriptName = args[0] + "";
let numThreads = 1;
if (args.length === 3 && args[1] === "-t") {
numThreads = Math.round(parseInt(args[2] + ""));
if (isNaN(numThreads) || numThreads < 1) {
terminal.error("Invalid number of threads specified. Number of threads must be greater than 1");
return;
}
}
const script = terminal.getScript(player, scriptName);
if (script == null) {
terminal.error("mem failed. No such script exists!");
return;
}
const ramUsage = script.ramUsage * numThreads;
terminal.print(
`This script requires ${numeralWrapper.formatRAM(ramUsage)} of RAM to run for ${numThreads} thread(s)`,
);
} catch (e) {
terminal.error(e + "");
}
}