From 4a1506cf7ed79a3ec9ee3379172c032155b2593d Mon Sep 17 00:00:00 2001 From: catloversg <152669316+catloversg@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:05:22 +0700 Subject: [PATCH] BUGFIX: Block hacking-related actions on player-owned servers (#1585) --- src/Hacking/netscriptCanHack.ts | 12 ++++++------ src/NetscriptFunctions/Singularity.ts | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Hacking/netscriptCanHack.ts b/src/Hacking/netscriptCanHack.ts index 0f409e060..0a76bb944 100644 --- a/src/Hacking/netscriptCanHack.ts +++ b/src/Hacking/netscriptCanHack.ts @@ -9,28 +9,28 @@ import { IReturnStatus } from "../types"; import { Player } from "@player"; import { Server } from "../Server/Server"; -function baseCheck(server: Server, fnName: string): IReturnStatus { +function baseCheck(server: Server, actionName: string): IReturnStatus { const hostname = server.hostname; - if (!("requiredHackingSkill" in server)) { + if (server.purchasedByPlayer) { return { res: false, - msg: `Cannot ${fnName} ${hostname} server because it is a Hacknet Node`, + msg: `Cannot ${actionName} ${hostname} server because it is your server`, }; } if (!server.hasAdminRights) { return { res: false, - msg: `Cannot ${fnName} ${hostname} server because you do not have root access`, + msg: `Cannot ${actionName} ${hostname} server because you do not have root access`, }; } return { res: true }; } -export function netscriptCanHack(server: Server): IReturnStatus { - const initialCheck = baseCheck(server, "hack"); +export function netscriptCanHack(server: Server, customActionName?: string): IReturnStatus { + const initialCheck = baseCheck(server, customActionName ?? "hack"); if (!initialCheck.res) { return initialCheck; } diff --git a/src/NetscriptFunctions/Singularity.ts b/src/NetscriptFunctions/Singularity.ts index a435fe1ee..db7fc2283 100644 --- a/src/NetscriptFunctions/Singularity.ts +++ b/src/NetscriptFunctions/Singularity.ts @@ -559,14 +559,14 @@ export function NetscriptSingularity(): InternalAPI { helpers.checkSingularityAccess(ctx); const baseserver = Player.getCurrentServer(); if (!(baseserver instanceof Server)) { - helpers.log(ctx, () => "cannot backdoor this kind of server"); + helpers.log(ctx, () => "Cannot backdoor this kind of server"); return Promise.resolve(); } const server = baseserver; const installTime = (calculateHackingTime(server, Player) / 4) * 1000; // No root access or skill level too low - const canHack = netscriptCanHack(server); + const canHack = netscriptCanHack(server, "backdoor"); if (!canHack.res) { throw helpers.errorMessage(ctx, canHack.msg || ""); }