Merge pull request #3403 from Chris380/bugfix/2486_auto_complete_connect_backdoored_server

Bugfix/2486 auto complete for connect and backdoored server
This commit is contained in:
hydroflame 2022-04-12 13:37:43 -04:00 committed by GitHub
commit 0513aed239
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 12 deletions

@ -191,8 +191,8 @@ export const HelpTexts: IMap<string[]> = {
"Usage: connect [hostname]", "Usage: connect [hostname]",
" ", " ",
"Connect to a remote server. The hostname of the remote server must be given as the argument ", "Connect to a remote server. The hostname of the remote server must be given as the argument ",
"to this command. Note that only servers that are immediately adjacent to the current server in the network can be connected to. To ", "to this command. Note that only servers that are immediately adjacent to the current server in the network and the ones that have",
"see which servers can be connected to, use the 'scan' command.", "a backdoor installed can be connected to. To see which servers can be connected to, use the 'scan' command.",
" ", " ",
], ],
cp: ["Usage: cp [src] [dst]", " ", "Copy a file on this server. To copy a file to another server use scp.", " "], cp: ["Usage: cp [src] [dst]", " ", "Copy a file on this server. To copy a file to another server use scp.", " "],

@ -4,7 +4,8 @@ import { getSubdirectories } from "./DirectoryServerHelpers";
import { Aliases, GlobalAliases, substituteAliases } from "../Alias"; import { Aliases, GlobalAliases, substituteAliases } from "../Alias";
import { DarkWebItems } from "../DarkWeb/DarkWebItems"; import { DarkWebItems } from "../DarkWeb/DarkWebItems";
import { IPlayer } from "../PersonObjects/IPlayer"; import { IPlayer } from "../PersonObjects/IPlayer";
import { GetServer, GetAllServers } from "../Server/AllServers"; import { GetAllServers } from "../Server/AllServers";
import { Server } from "../Server/Server";
import { ParseCommand, ParseCommands } from "./Parser"; import { ParseCommand, ParseCommands } from "./Parser";
import { HelpTexts } from "./HelpText"; import { HelpTexts } from "./HelpText";
import { isScriptFilename } from "../Script/isScriptFilename"; import { isScriptFilename } from "../Script/isScriptFilename";
@ -238,16 +239,14 @@ export async function determineAllPossibilitiesForTabCompletion(
} }
if (isCommand("connect")) { if (isCommand("connect")) {
// All network connections // All directly connected and backdoored servers are reachable
for (let i = 0; i < currServ.serversOnNetwork.length; ++i) {
const serv = GetServer(currServ.serversOnNetwork[i]);
if (serv == null) {
continue;
}
allPos.push(serv.hostname);
}
return allPos; return GetAllServers()
.filter(
(server) =>
currServ.serversOnNetwork.includes(server.hostname) || (server instanceof Server && server.backdoorInstalled),
)
.map((server) => server.hostname);
} }
if (isCommand("nano") || isCommand("vim")) { if (isCommand("nano") || isCommand("vim")) {