Merge pull request #1718 from danielyxie/dev

few bugfix
This commit is contained in:
hydroflame 2021-11-13 19:51:14 -05:00 committed by GitHub
commit 5ef51d521b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 21 additions and 25 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -138,7 +138,8 @@ function startNetscript2Script(workerScript: WorkerScript): Promise<WorkerScript
workerScript.errorMessage = e;
throw workerScript;
}
throw e; // Don't know what to do with it, let's rethrow.
workerScript.errorMessage = makeRuntimeRejectMsg(workerScript, "Unknown error: " + JSON.stringify(e));
throw workerScript;
});
}
@ -167,14 +168,7 @@ function startNetscript1Script(workerScript: WorkerScript): Promise<WorkerScript
const entry = ns[name];
if (typeof entry === "function") {
//Async functions need to be wrapped. See JS-Interpreter documentation
if (
name === "hack" ||
name === "grow" ||
name === "weaken" ||
name === "sleep" ||
name === "prompt" ||
name === "manualHack"
) {
if (["hack", "grow", "weaken", "sleep", "prompt", "manualHack", "scp", "write"].includes(name)) {
const tempWrapper = function (...args: any[]): void {
const fnArgs = [];

@ -302,7 +302,7 @@ export async function determineAllPossibilitiesForTabCompletion(
const script = currServ.scripts.find((script) => script.filename === filename);
if (!script) return; // Doesn't exist.
if (!script.module) {
compile(script, currServ.scripts);
await compile(script, currServ.scripts);
}
const loadedModule = await script.module;
if (!loadedModule.autocomplete) return; // Doesn't have an autocomplete function.

@ -21,28 +21,30 @@ interface Log {
script: RunningScript;
}
let logs: Log[] = [];
export function LogBoxManager(): React.ReactElement {
const [logs, setLogs] = useState<Log[]>([]);
const setRerender = useState(true)[1];
function rerender(): void {
setRerender((o) => !o);
}
useEffect(
() =>
LogBoxEvents.subscribe((script: RunningScript) => {
const id = script.server + "-" + script.filename + script.args.map((x: any): string => `${x}`).join("-");
if (logs.find((l) => l.id === id)) return;
setLogs((old) => {
return [
...old,
{
id: id,
script: script,
},
];
logs.push({
id: id,
script: script,
});
rerender();
}),
[],
);
function close(id: string): void {
setLogs((old) => old.filter((l) => l.id !== id));
logs = logs.filter((l) => l.id !== id);
rerender();
}
return (