Skip to content

Commit

Permalink
Merge pull request #491 from CatalysmsServerManager/niekcandaele-patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
niekcandaele committed May 26, 2022
2 parents 874f337 + f462779 commit bd6a860
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 28 deletions.
60 changes: 32 additions & 28 deletions lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,73 +37,77 @@ async function fetchJson(server: SdtdServer, url: string, qs: ParsedUrlQueryInpu
const uri = getBaseUrl(server) + url + '?' + stringify(qs, { skipNulls: true });
const timeout = fetchOpts?.timeout ?? 3000;
return fetch(uri, { ...fetchOpts, timeout })
.then(function(response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response;
}).then(response => {
const contentType = response.headers.get("content-type");
if (contentType && contentType.indexOf("application/json") !== -1) {
return response.json().then(handleSteamId);
} else {
return response.text();
}
});
.then(function (response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response;
}).then(response => {
const contentType = response.headers.get("content-type");
if (contentType && contentType.indexOf("application/json") !== -1) {
return response.json().then(handleSteamId);
} else {
return response.text();
}
});
}

export async function getStats(server: SdtdServer, fetchOpts?: RequestInit): Promise<responses.StatsResponse> {
return fetchJson(server, `/api/getstats`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/getstats`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function getOnlinePlayers(server: SdtdServer, fetchOpts?: RequestInit): Promise<Array<responses.OnlinePlayerResponse>> {
return fetchJson(server, `/api/getplayersonline`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/getplayersonline`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function getAllowedCommands(server: SdtdServer, fetchOpts?: RequestInit): Promise<responses.AllowedCommands> {
return fetchJson(server, `/api/getallowedcommands`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/getallowedcommands`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function executeConsoleCommand(server: SdtdServer, command: string, fetchOpts?: RequestInit): Promise<responses.CommandResponse> {
return fetchJson(server, `/api/executeconsolecommand`, { adminuser: server.adminUser,admintoken: server.adminToken, command: command }, fetchOpts);
return fetchJson(server, `/api/executeconsolecommand`, { adminuser: server.adminUser, admintoken: server.adminToken, command: command }, fetchOpts);
}

export async function getAnimalsLocation(server: SdtdServer, fetchOpts?: RequestInit): Promise<Array<responses.EntityLocation>> {
return fetchJson(server, `/api/getanimalslocation`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/getanimalslocation`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function getHostileLocation(server: SdtdServer, fetchOpts?: RequestInit): Promise<Array<responses.EntityLocation>> {
return fetchJson(server, `/api/gethostilelocation`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/gethostilelocation`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function getLandClaims(server: SdtdServer, steamId?: string, fetchOpts?: RequestInit): Promise<responses.LandClaimsResponse> {
return fetchJson(server, `/api/getlandclaims`, { adminuser: server.adminUser,admintoken: server.adminToken, steamid: steamId }, fetchOpts);
return fetchJson(server, `/api/getlandclaims`, { adminuser: server.adminUser, admintoken: server.adminToken, steamid: steamId }, fetchOpts);
}

export async function getPlayerInventory(server: SdtdServer, steamId: string, fetchOpts?: RequestInit): Promise<responses.InventoryResponse> {
return fetchJson(server, `/api/getplayerinventory`, { adminuser: server.adminUser,admintoken: server.adminToken, steamid: steamId, userid: `Steam_${steamId}` }, fetchOpts);
if (/^\d{17}$/.test(steamId)) {
return fetchJson(server, `/api/getplayerinventory`, { adminuser: server.adminUser, admintoken: server.adminToken, steamid: steamId, userid: `Steam_${steamId}` }, fetchOpts);
} else {
return fetchJson(server, `/api/getplayerinventory`, { adminuser: server.adminUser, admintoken: server.adminToken, userid: steamId }, fetchOpts);
}
}

export async function getPlayerInventories(server: SdtdServer, fetchOpts?: RequestInit): Promise<Array<responses.InventoryResponse>> {
return fetchJson(server, `/api/getplayerinventories`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/getplayerinventories`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function getPlayerList(server: SdtdServer, rowsPerPage?: number, page?: number, fetchOpts?: RequestInit): Promise<responses.PlayerListResponse> {
return fetchJson(server, `/api/getplayerlist`, { adminuser: server.adminUser,admintoken: server.adminToken, rowsperpage: rowsPerPage, page: page }, fetchOpts);
return fetchJson(server, `/api/getplayerlist`, { adminuser: server.adminUser, admintoken: server.adminToken, rowsperpage: rowsPerPage, page: page }, fetchOpts);
}

export async function getPlayersLocation(server: SdtdServer, offline: boolean, fetchOpts?: RequestInit): Promise<Array<responses.PlayerLocation>> {
return fetchJson(server, `/api/getplayerslocation`, { adminuser: server.adminUser,admintoken: server.adminToken, offline: offline }, fetchOpts);
return fetchJson(server, `/api/getplayerslocation`, { adminuser: server.adminUser, admintoken: server.adminToken, offline: offline }, fetchOpts);
}

export async function getServerInfo(server: SdtdServer, fetchOpts?: RequestInit): Promise<responses.GetServerInfo> {
return fetchJson(server, `/api/getserverinfo`, { adminuser: server.adminUser,admintoken: server.adminToken }, fetchOpts);
return fetchJson(server, `/api/getserverinfo`, { adminuser: server.adminUser, admintoken: server.adminToken }, fetchOpts);
}

export async function getWebUIUpdates(server: SdtdServer, latestLine?: number, fetchOpts?: RequestInit): Promise<responses.GetWebUIUpdatesResponse> {
return fetchJson(server, `/api/getwebuiupdates`, { adminuser: server.adminUser,admintoken: server.adminToken, latestLine: latestLine }, fetchOpts);
return fetchJson(server, `/api/getwebuiupdates`, { adminuser: server.adminUser, admintoken: server.adminToken, latestLine: latestLine }, fetchOpts);
}

export async function getLog(server: SdtdServer, firstLine?: number, count: number = 50, fetchOpts?: RequestInit): Promise<responses.GetLog> {
return fetchJson(server, `/api/getlog`, { adminuser: server.adminUser,admintoken: server.adminToken, firstLine: firstLine, count: count }, fetchOpts);
}
return fetchJson(server, `/api/getlog`, { adminuser: server.adminUser, admintoken: server.adminToken, firstLine: firstLine, count: count }, fetchOpts);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
{
meta: {
createdAt: '2022-05-26T11:51:47.279Z',
host: 'https://7d2d.csmm.app',
resHumanReadable: true,
},
req: {
headers: {
accept: '*/*',
'user-agent': 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)',
'accept-encoding': 'gzip,deflate',
connection: 'close',
},
url: '/api/getplayerinventory?userid=Steam_76561198028175941',
method: 'GET',
body: '',
},
res: {
status: 200,
headers: {
server: [
'nginx',
],
date: [
'Thu, 26 May 2022 11:51:47 GMT',
],
'content-type': [
'application/json; charset=utf-8',
],
'content-length': [
'513',
],
connection: [
'close',
],
},
body: {
userid: 'Steam_76561198028175941',
entityid: 549,
playername: 'Catalysm',
bag: [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
],
belt: [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
],
equipment: {
head: null,
eyes: null,
face: null,
armor: null,
jacket: null,
shirt: null,
legarmor: null,
pants: null,
boots: null,
gloves: null,
},
},
},
}

0 comments on commit bd6a860

Please sign in to comment.