Autofix all files for the game server

This commit is contained in:
Telokis
2023-10-28 16:23:57 +02:00
parent 5fea13946a
commit 8099f31e4c
8 changed files with 18788 additions and 12956 deletions
+1 -1
View File
@@ -10,6 +10,7 @@
"rules": { "rules": {
"no-constant-condition": "off", "no-constant-condition": "off",
"no-dupe-else-if": "off", "no-dupe-else-if": "off",
"indent": "off",
"no-empty": "warn", "no-empty": "warn",
"no-inner-declarations": "warn", "no-inner-declarations": "warn",
"no-unreachable": "warn", "no-unreachable": "warn",
@@ -17,7 +18,6 @@
"no-unused-vars": "warn", "no-unused-vars": "warn",
"no-redeclare": "warn", "no-redeclare": "warn",
"curly": "error", "curly": "error",
"indent": ["error", 2],
"prettier/prettier": "error", "prettier/prettier": "error",
"one-var": ["error", "never"], "one-var": ["error", "never"],
"no-sequences": "error" "no-sequences": "error"
+17 -9
View File
@@ -1,19 +1,27 @@
var is_game=0,is_server=0,is_code=0; var is_game = 0;
var variables=require('./variables'); var is_server = 0;
var is_code = 0;
var variables = require("./variables");
var is_sdk = variables.is_sdk; var is_sdk = variables.is_sdk;
var fs=require('fs'); var fs = require("fs");
var precomputed = null; var precomputed = null;
eval("" + fs.readFileSync(variables.cfunctions_path)); eval("" + fs.readFileSync(variables.cfunctions_path));
eval("" + fs.readFileSync(variables.functions_path)); eval("" + fs.readFileSync(variables.functions_path));
var mode={},server_id='precompute',server_auth="123456",base_url=variables.base_url; var mode = {};
var server_id = "precompute";
var server_auth = "123456";
var base_url = variables.base_url;
appengine_call("reload_server", { keyword: variables.keyword }, function (result) { appengine_call("reload_server", { keyword: variables.keyword }, function (result) {
if(result.failed) return; if (result.failed) {
return;
}
G = result.game; G = result.game;
var start = new Date(); var start = new Date();
for(var mname in G.maps) for (var mname in G.maps) {
{ if (G.maps[mname].ignore) {
if(G.maps[mname].ignore) continue; continue;
}
var cstart = new Date(); var cstart = new Date();
server_bfs(mname); server_bfs(mname);
console.log("Precomputed: " + mname + " in " + mssince(cstart) + "ms"); console.log("Precomputed: " + mname + " in " + mssince(cstart) + "ms");
@@ -23,5 +31,5 @@ appengine_call("reload_server",{keyword:variables.keyword},function(result){
precomputed.version = G.version; precomputed.version = G.version;
precomputed.amap_data = amap_data; precomputed.amap_data = amap_data;
precomputed.smap_data = smap_data; precomputed.smap_data = smap_data;
fs.writeFileSync(variables.data_path,'var precomputed='+JSON.stringify(precomputed)+';'); fs.writeFileSync(variables.data_path, "var precomputed=" + JSON.stringify(precomputed) + ";");
}); });
+9225 -4887
View File
File diff suppressed because it is too large Load Diff
+3349 -1894
View File
File diff suppressed because it is too large Load Diff
+15 -10
View File
@@ -1,23 +1,28 @@
var is_game=0,is_server=1,is_code=0; var is_game = 0;
var variables=require('./variables'); var is_server = 1;
var is_code = 0;
var variables = require("./variables");
var is_sdk = variables.is_sdk; var is_sdk = variables.is_sdk;
var fs=require('fs'); var fs = require("fs");
eval("" + fs.readFileSync(variables.cfunctions_path)); eval("" + fs.readFileSync(variables.cfunctions_path));
eval("" + fs.readFileSync(variables.functions_path)); eval("" + fs.readFileSync(variables.functions_path));
var {workerData,parentPort}=require('worker_threads'); var { workerData, parentPort } = require("worker_threads");
var G=workerData.G,smap_data=workerData.smap_data,amap_data=workerData.amap_data; var G = workerData.G;
var smap_data = workerData.smap_data;
var amap_data = workerData.amap_data;
parentPort.on("message", function (data) { parentPort.on("message", function (data) {
try { try {
//console.log(data); //console.log(data);
if(data.type=="fast_astar") if (data.type == "fast_astar") {
parentPort.postMessage({ type: "monster_move", move: fast_astar(data), id: data.id, in: data.in }); parentPort.postMessage({ type: "monster_move", move: fast_astar(data), id: data.id, in: data.in });
if(data.type=="exit") process.exit(); }
if (data.type == "exit") {
process.exit();
}
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} }
}); });
setInterval(function(){ setInterval(function () {}, 10);
},10);
+46 -20
View File
@@ -1,13 +1,14 @@
var crypto=require('crypto'); var crypto = require("crypto");
var protobuf=require('protobufjs'),ByteBuffer=require('bytebuffer'); var protobuf = require("protobufjs");
var ByteBuffer = require("bytebuffer");
function symmetricDecrypt(input, key, checkHmac) { function symmetricDecrypt(input, key, checkHmac) {
var aesIv = crypto.createDecipheriv('aes-256-ecb', key, ''); var aesIv = crypto.createDecipheriv("aes-256-ecb", key, "");
aesIv.setAutoPadding(false); aesIv.setAutoPadding(false);
aesIv.end(input.slice(0, 16)); aesIv.end(input.slice(0, 16));
var iv = aesIv.read(); var iv = aesIv.read();
var aesData = crypto.createDecipheriv('aes-256-cbc', key, iv); var aesData = crypto.createDecipheriv("aes-256-cbc", key, iv);
aesData.end(input.slice(16)); aesData.end(input.slice(16));
var plaintext = aesData.read(); var plaintext = aesData.read();
@@ -24,7 +25,7 @@ function symmetricDecrypt(input, key, checkHmac) {
} }
return plaintext; return plaintext;
}; }
function parseAppTicket(ticket) { function parseAppTicket(ticket) {
// https://github.com/SteamRE/SteamKit/blob/master/Resources/Structs/steam3_appticket.hsl // https://github.com/SteamRE/SteamKit/blob/master/Resources/Structs/steam3_appticket.hsl
@@ -70,11 +71,16 @@ function parseAppTicket(ticket) {
// Start reading the ownership ticket // Start reading the ownership ticket
let ownershipTicketOffset = ticket.offset; let ownershipTicketOffset = ticket.offset;
let ownershipTicketLength = ticket.readUint32(); // including itself, for some reason let ownershipTicketLength = ticket.readUint32(); // including itself, for some reason
if (ownershipTicketOffset + ownershipTicketLength != ticket.limit && ownershipTicketOffset + ownershipTicketLength + 128 != ticket.limit) { if (
ownershipTicketOffset + ownershipTicketLength != ticket.limit &&
ownershipTicketOffset + ownershipTicketLength + 128 != ticket.limit
) {
return null; return null;
} }
let i, j, dlc; let i;
let j;
let dlc;
details.version = ticket.readUint32(); details.version = ticket.readUint32();
details.steamID = ticket.readUint64().toString(); details.steamID = ticket.readUint64().toString();
@@ -117,7 +123,12 @@ function parseAppTicket(ticket) {
let date = new Date(); let date = new Date();
details.isExpired = details.ownershipTicketExpires < date; details.isExpired = details.ownershipTicketExpires < date;
details.hasValidSignature = !!details.signature && SteamCrypto.verifySignature(ticket.slice(ownershipTicketOffset, ownershipTicketOffset + ownershipTicketLength).toBuffer(), details.signature); details.hasValidSignature =
!!details.signature &&
SteamCrypto.verifySignature(
ticket.slice(ownershipTicketOffset, ownershipTicketOffset + ownershipTicketLength).toBuffer(),
details.signature,
);
details.isValid = !details.isExpired && (!details.signature || details.hasValidSignature); details.isValid = !details.isExpired && (!details.signature || details.hasValidSignature);
} catch (ex) { } catch (ex) {
console.log("parseAppTicket: " + ex); console.log("parseAppTicket: " + ex);
@@ -126,25 +137,40 @@ function parseAppTicket(ticket) {
} }
return details; return details;
}; }
var proto={ "nested": {EncryptedAppTicket: { fields: var proto = {
{ ticketVersionNo: { type: 'uint32', id: 1 }, nested: {
crcEncryptedticket: { type: 'uint32', id: 2 }, EncryptedAppTicket: {
cbEncrypteduserdata: { type: 'uint32', id: 3 }, fields: {
cbEncryptedAppownershipticket: { type: 'uint32', id: 4 }, ticketVersionNo: { type: "uint32", id: 1 },
encryptedTicket: { type: 'bytes', id: 5 } } }}}; crcEncryptedticket: { type: "uint32", id: 2 },
cbEncrypteduserdata: { type: "uint32", id: 3 },
cbEncryptedAppownershipticket: { type: "uint32", id: 4 },
encryptedTicket: { type: "bytes", id: 5 },
},
},
},
};
var proto_root = protobuf.Root.fromJSON(proto); var proto_root = protobuf.Root.fromJSON(proto);
var EncryptedAppTicket = proto_root.lookupType("EncryptedAppTicket"); var EncryptedAppTicket = proto_root.lookupType("EncryptedAppTicket");
var outer = EncryptedAppTicket.decode(
var outer=EncryptedAppTicket.decode(new Buffer("080110a7e59890031815204f2a80014527ad8cccd8cd9b7d3260529556004ddf0454a1c2e8543495b1eb72b3dff44d9d67555798ef44b7e3f97cf86d3bf1bc3f84a91de415c382b0d96033c8e5398f2b775bcb004f5487c651d81ef410d7d2917cbb407713397d2c29a455b6852eac7db1a0e52248585bd5440ef07de54b7519f67eefbad5420d97b77ef7e35450af","hex")); new Buffer(
var decrypted=symmetricDecrypt(outer.encryptedTicket,new Buffer("8af5c487af6c7709ef1a4e6e2275fcc0a90f57ae4319de793fca3d7ed8655520","hex")); "080110a7e59890031815204f2a80014527ad8cccd8cd9b7d3260529556004ddf0454a1c2e8543495b1eb72b3dff44d9d67555798ef44b7e3f97cf86d3bf1bc3f84a91de415c382b0d96033c8e5398f2b775bcb004f5487c651d81ef410d7d2917cbb407713397d2c29a455b6852eac7db1a0e52248585bd5440ef07de54b7519f67eefbad5420d97b77ef7e35450af",
"hex",
),
);
var decrypted = symmetricDecrypt(
outer.encryptedTicket,
new Buffer("8af5c487af6c7709ef1a4e6e2275fcc0a90f57ae4319de793fca3d7ed8655520", "hex"),
);
let userData = decrypted.slice(0, outer.cbEncrypteduserdata); let userData = decrypted.slice(0, outer.cbEncrypteduserdata);
let ownershipTicketLength = decrypted.readUInt32LE(outer.cbEncrypteduserdata); let ownershipTicketLength = decrypted.readUInt32LE(outer.cbEncrypteduserdata);
let ownershipTicket = parseAppTicket(decrypted.slice(outer.cbEncrypteduserdata, outer.cbEncrypteduserdata + ownershipTicketLength)); let ownershipTicket = parseAppTicket(
decrypted.slice(outer.cbEncrypteduserdata, outer.cbEncrypteduserdata + ownershipTicketLength),
);
if (ownershipTicket) { if (ownershipTicket) {
ownershipTicket.userData = userData.toString(); ownershipTicket.userData = userData.toString();
} }
console.log(ownershipTicket); console.log(ownershipTicket);
+17 -17
View File
@@ -1,18 +1,18 @@
module.exports = { module.exports = {
"cfunctions_path":"./server/common_functions.js", cfunctions_path: "./server/common_functions.js",
"functions_path":"./server/server_functions.js", functions_path: "./server/server_functions.js",
"worker_path":"./server/server_worker.js", worker_path: "./server/server_worker.js",
"data_path":"./server/data.js", data_path: "./server/data.js",
"base_url":"https://yourappspoturldontincludedashes.appspot.com", base_url: "https://yourappspoturldontincludedashes.appspot.com",
"keyword":"123", keyword: "123",
"access_master":"123", access_master: "123",
"bot_key":"123", bot_key: "123",
"discord_token":"NDXXXXXXXXXXX...", discord_token: "NDXXXXXXXXXXX...",
"apple_token":"acXXXXXXXX...", apple_token: "acXXXXXXXX...",
"steam_key":"8aXXXXXXXXX...", steam_key: "8aXXXXXXXXX...",
"steam_web_key":"B4XXXXXXX...", steam_web_key: "B4XXXXXXX...",
"steam_partner_key":"F9XXXXXXX...", steam_partner_key: "F9XXXXXXX...",
"close_timeout":24000, close_timeout: 24000,
"ip_limit":3, ip_limit: 3,
"character_limit":3, character_limit: 3,
} };
+20 -20
View File
@@ -1,22 +1,22 @@
const path = require("node:path") const path = require("node:path");
module.exports = { module.exports = {
"cfunctions_path":path.resolve(__dirname, "../js/common_functions.js"), cfunctions_path: path.resolve(__dirname, "../js/common_functions.js"),
"functions_path":path.resolve(__dirname, "server_functions.js"), functions_path: path.resolve(__dirname, "server_functions.js"),
"worker_path":path.resolve(__dirname, "server_worker.js"), worker_path: path.resolve(__dirname, "server_worker.js"),
"data_path":path.resolve(__dirname, "data.js"), data_path: path.resolve(__dirname, "data.js"),
"base_url":"http://thegame.com", base_url: "http://thegame.com",
"keyword":"123", keyword: "123",
"access_master":"123", access_master: "123",
"bot_key":"123", bot_key: "123",
"discord_token":"NDXXXXXXXXXXX...", discord_token: "NDXXXXXXXXXXX...",
"apple_token":"acXXXXXXXX...", apple_token: "acXXXXXXXX...",
"steam_key":"8aXXXXXXXXX...", steam_key: "8aXXXXXXXXX...",
"steam_web_key":"B4XXXXXXX...", steam_web_key: "B4XXXXXXX...",
"steam_partner_key":"F9XXXXXXX...", steam_partner_key: "F9XXXXXXX...",
"is_sdk":1, is_sdk: 1,
"close_timeout":4000, close_timeout: 4000,
"ip_limit":3, ip_limit: 3,
"character_limit":3, character_limit: 3,
"fast_sdk":0, fast_sdk: 0,
} };