mirror of
https://github.com/Lawin0129/LawinServer.git
synced 2026-01-13 02:42:22 +01:00
Change structure of LawinServer
This commit is contained in:
218
structure/functions.js
Normal file
218
structure/functions.js
Normal file
@@ -0,0 +1,218 @@
|
||||
const crypto = require("crypto");
|
||||
const memory = require("./../memory.json");
|
||||
|
||||
function GetVersionInfo(req, memory) {
|
||||
if (req.headers["user-agent"])
|
||||
{
|
||||
var CL = "";
|
||||
|
||||
if (req.headers["user-agent"]) {
|
||||
try {
|
||||
var BuildID = req.headers["user-agent"].split("-")[3].split(",")[0]
|
||||
if (!Number.isNaN(Number(BuildID))) {
|
||||
CL = BuildID;
|
||||
}
|
||||
|
||||
if (Number.isNaN(Number(BuildID))) {
|
||||
var BuildID = req.headers["user-agent"].split("-")[3].split(" ")[0]
|
||||
if (!Number.isNaN(Number(BuildID))) {
|
||||
CL = BuildID;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
try {
|
||||
var BuildID = req.headers["user-agent"].split("-")[1].split("+")[0]
|
||||
if (!Number.isNaN(Number(BuildID))) {
|
||||
CL = BuildID;
|
||||
}
|
||||
} catch (err) {}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
var Build = req.headers["user-agent"].split("Release-")[1].split("-")[0];
|
||||
|
||||
if (Build.split(".").length == 3) {
|
||||
Value = Build.split(".");
|
||||
Build = Value[0] + "." + Value[1] + Value[2];
|
||||
}
|
||||
|
||||
memory.season = Number(Build.split(".")[0]);
|
||||
memory.build = Number(Build);
|
||||
memory.CL = CL;
|
||||
memory.lobby = `LobbySeason${memory.season}`;
|
||||
|
||||
if (Number.isNaN(memory.season)) {
|
||||
throw new Error();
|
||||
}
|
||||
} catch (err) {
|
||||
memory.season = 2;
|
||||
memory.build = 2.0;
|
||||
memory.CL = CL;
|
||||
memory.lobby = "LobbyWinterDecor";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getItemShop() {
|
||||
const catalog = JSON.parse(JSON.stringify(require("./../responses/catalog.json")));
|
||||
const CatalogConfig = require("./../Config/catalog_config.json");
|
||||
|
||||
try {
|
||||
for (var value in CatalogConfig) {
|
||||
if (typeof CatalogConfig[value].templateId == "string") {
|
||||
if (CatalogConfig[value].templateId.length != 0) {
|
||||
const CatalogEntry = {"devName":"","offerId":"","fulfillmentIds":[],"dailyLimit":-1,"weeklyLimit":-1,"monthlyLimit":-1,"categories":[],"prices":[{"currencyType":"MtxCurrency","currencySubType":"","regularPrice":0,"finalPrice":0,"saleExpiration":"9999-12-02T01:12:00Z","basePrice":0}],"matchFilter":"","filterWeight":0,"appStoreId":[],"requirements":[{"requirementType":"DenyOnItemOwnership","requiredId":"","minQuantity":1}],"offerType":"StaticPrice","giftInfo":{"bIsEnabled":false,"forcedGiftBoxTemplateId":"","purchaseRequirements":[],"giftRecordIds":[]},"refundable":true,"metaInfo":[],"displayAssetPath":"","itemGrants":[{"templateId":"","quantity":1}],"sortPriority":0,"catalogGroupPriority":0};
|
||||
|
||||
if (value.toLowerCase().startsWith("daily")) {
|
||||
catalog.storefronts.forEach((storefront, i) => {
|
||||
if (storefront.name == "BRDailyStorefront") {
|
||||
CatalogEntry.devName = CatalogConfig[value].templateId
|
||||
CatalogEntry.offerId = CatalogConfig[value].templateId
|
||||
CatalogEntry.requirements[0].requiredId = CatalogConfig[value].templateId
|
||||
CatalogEntry.itemGrants[0].templateId = CatalogConfig[value].templateId
|
||||
CatalogEntry.prices[0].basePrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].regularPrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].finalPrice = CatalogConfig[value].price
|
||||
|
||||
catalog.storefronts[i].catalogEntries.push(CatalogEntry);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (value.toLowerCase().startsWith("featured")) {
|
||||
catalog.storefronts.forEach((storefront, i) => {
|
||||
if (storefront.name == "BRWeeklyStorefront") {
|
||||
CatalogEntry.devName = CatalogConfig[value].templateId
|
||||
CatalogEntry.offerId = CatalogConfig[value].templateId
|
||||
CatalogEntry.requirements[0].requiredId = CatalogConfig[value].templateId
|
||||
CatalogEntry.itemGrants[0].templateId = CatalogConfig[value].templateId
|
||||
CatalogEntry.prices[0].basePrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].regularPrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].finalPrice = CatalogConfig[value].price
|
||||
|
||||
catalog.storefronts[i].catalogEntries.push(CatalogEntry);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
return catalog;
|
||||
}
|
||||
|
||||
function getTheater(req) {
|
||||
GetVersionInfo(req, memory);
|
||||
|
||||
var theater = JSON.stringify(require("./../responses/worldstw.json"));
|
||||
|
||||
try {
|
||||
if (memory.build >= 15.30) {
|
||||
theater = theater.replace(/\/Game\//ig, "\/SaveTheWorld\/");
|
||||
theater = theater.replace(/\"DataTable\'\/SaveTheWorld\//ig, "\"DataTable\'\/Game\/");
|
||||
}
|
||||
|
||||
var date = new Date().toISOString()
|
||||
|
||||
// Set the 24-hour StW mission refresh date for version season 9 and above
|
||||
if (memory.season >= 9) {
|
||||
date = date.split("T")[0] + "T23:59:59.999Z";
|
||||
} else {
|
||||
// Set the 6-hour StW mission refresh date for versions below season 9
|
||||
if (date < (date.split("T")[0] + "T05:59:59.999Z")) {
|
||||
date = date.split("T")[0] + "T05:59:59.999Z";
|
||||
} else if (date < (date.split("T")[0] + "T11:59:59.999Z")) {
|
||||
date = date.split("T")[0] + "T11:59:59.999Z";
|
||||
} else if (date < (date.split("T")[0] + "T17:59:59.999Z")) {
|
||||
date = date.split("T")[0] + "T17:59:59.999Z";
|
||||
} else if (date < (date.split("T")[0] + "T23:59:59.999Z")) {
|
||||
date = date.split("T")[0] + "T23:59:59.999Z";
|
||||
}
|
||||
}
|
||||
|
||||
theater = theater.replace(/2017-07-25T23:59:59.999Z/ig, date);
|
||||
} catch (err) {}
|
||||
|
||||
theater = JSON.parse(theater)
|
||||
|
||||
return theater;
|
||||
}
|
||||
|
||||
function getContentPages(req) {
|
||||
GetVersionInfo(req, memory);
|
||||
|
||||
const contentpages = JSON.parse(JSON.stringify(require("./../responses/contentpages.json")));
|
||||
|
||||
var Language = "en";
|
||||
|
||||
if (req.headers["accept-language"]) {
|
||||
if (req.headers["accept-language"].includes("-") && req.headers["accept-language"] != "es-419") {
|
||||
Language = req.headers["accept-language"].split("-")[0];
|
||||
} else {
|
||||
Language = req.headers["accept-language"];
|
||||
}
|
||||
}
|
||||
|
||||
const modes = ["saveTheWorldUnowned", "battleRoyale", "creative", "saveTheWorld"];
|
||||
const news = ["savetheworldnews", "battleroyalenews"]
|
||||
|
||||
try {
|
||||
modes.forEach(mode => {
|
||||
contentpages.subgameselectdata[mode].message.title = contentpages.subgameselectdata[mode].message.title[Language]
|
||||
contentpages.subgameselectdata[mode].message.body = contentpages.subgameselectdata[mode].message.body[Language]
|
||||
})
|
||||
} catch (err) {}
|
||||
|
||||
try {
|
||||
if (memory.season < 5 || (memory.season == 5 && Number(memory.build.toString().split(".")[1]) < 30)) {
|
||||
news.forEach(mode => {
|
||||
contentpages[mode].news.messages[0].image = "https://cdn.discordapp.com/attachments/927739901540188200/930879507496308736/discord.png";
|
||||
contentpages[mode].news.messages[1].image = "https://cdn.discordapp.com/attachments/927739901540188200/930879519882088508/lawin.png";
|
||||
})
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
try {
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[0].stage = `season${memory.season}`;
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[1].stage = `season${memory.season}`;
|
||||
|
||||
if (memory.season == 10) {
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[0].stage = "seasonx";
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[1].stage = "seasonx";
|
||||
}
|
||||
|
||||
if (memory.build == 11.31 || memory.build == 11.40) {
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[0].stage = "Winter19";
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[1].stage = "Winter19";
|
||||
}
|
||||
|
||||
if (memory.build == 19.01) {
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[0].stage = "winter2021";
|
||||
contentpages.dynamicbackgrounds.backgrounds.backgrounds[0].backgroundimage = "https://cdn.discordapp.com/attachments/927739901540188200/930880158167085116/t-bp19-lobby-xmas-2048x1024-f85d2684b4af.png";
|
||||
contentpages.subgameinfo.battleroyale.image = "https://cdn.discordapp.com/attachments/927739901540188200/930880421514846268/19br-wf-subgame-select-512x1024-16d8bb0f218f.jpg";
|
||||
contentpages.specialoffervideo.bSpecialOfferEnabled = "true";
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
return contentpages;
|
||||
}
|
||||
|
||||
function MakeID() {
|
||||
let CurrentDate = (new Date()).valueOf().toString();
|
||||
let RandomFloat = Math.random().toString();
|
||||
let ID = crypto.createHash('md5').update(CurrentDate + RandomFloat).digest('hex');
|
||||
let FinishedID = ID.slice(0, 8) + "-" + ID.slice(8, 12) + "-" + ID.slice(12, 16) + "-" + ID.slice(16, 20) + "-" + ID.slice(20, 32);
|
||||
|
||||
return FinishedID;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
GetVersionInfo,
|
||||
getItemShop,
|
||||
getTheater,
|
||||
getContentPages,
|
||||
MakeID
|
||||
}
|
||||
Reference in New Issue
Block a user