forked from OpenWF/SpaceNinjaServer
		
	feat: respect client-supplied version information (#585)
This commit is contained in:
		
							parent
							
								
									259bfa1362
								
							
						
					
					
						commit
						d824b83cf9
					
				@ -20,6 +20,11 @@ const loginController: RequestHandler = async (request, response) => {
 | 
			
		||||
    const account = await Account.findOne({ email: loginRequest.email }); //{ _id: 0, __v: 0 }
 | 
			
		||||
    const nonce = Math.round(Math.random() * Number.MAX_SAFE_INTEGER);
 | 
			
		||||
 | 
			
		||||
    const buildLabel: string =
 | 
			
		||||
        typeof request.query.buildLabel == "string"
 | 
			
		||||
            ? request.query.buildLabel.split(" ").join("+")
 | 
			
		||||
            : buildConfig.buildLabel;
 | 
			
		||||
 | 
			
		||||
    if (!account && config.autoCreateAccount && loginRequest.ClientType != "webui") {
 | 
			
		||||
        try {
 | 
			
		||||
            const newAccount = await createAccount({
 | 
			
		||||
@ -45,7 +50,7 @@ const loginController: RequestHandler = async (request, response) => {
 | 
			
		||||
                DTLS: DTLS,
 | 
			
		||||
                IRC: config.myIrcAddresses ?? [config.myAddress],
 | 
			
		||||
                HUB: HUB,
 | 
			
		||||
                BuildLabel: buildConfig.buildLabel,
 | 
			
		||||
                BuildLabel: buildLabel,
 | 
			
		||||
                MatchmakingBuildId: buildConfig.matchmakingBuildId
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
@ -81,7 +86,7 @@ const loginController: RequestHandler = async (request, response) => {
 | 
			
		||||
        DTLS: DTLS,
 | 
			
		||||
        IRC: config.myIrcAddresses ?? [config.myAddress],
 | 
			
		||||
        HUB: HUB,
 | 
			
		||||
        BuildLabel: buildConfig.buildLabel,
 | 
			
		||||
        BuildLabel: buildLabel,
 | 
			
		||||
        MatchmakingBuildId: buildConfig.matchmakingBuildId
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,10 +2,13 @@ import { RequestHandler } from "express";
 | 
			
		||||
import worldState from "@/static/fixed_responses/worldState.json";
 | 
			
		||||
import buildConfig from "@/static/data/buildConfig.json";
 | 
			
		||||
 | 
			
		||||
const worldStateController: RequestHandler = (_req, res) => {
 | 
			
		||||
const worldStateController: RequestHandler = (req, res) => {
 | 
			
		||||
    const buildLabel: string =
 | 
			
		||||
        typeof req.query.buildLabel == "string" ? req.query.buildLabel.split(" ").join("+") : buildConfig.buildLabel;
 | 
			
		||||
 | 
			
		||||
    res.json({
 | 
			
		||||
        ...worldState,
 | 
			
		||||
        BuildLabel: buildConfig.buildLabel,
 | 
			
		||||
        BuildLabel: buildLabel,
 | 
			
		||||
        Time: Math.round(Date.now() / 1000)
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,12 @@ import fs from "fs/promises";
 | 
			
		||||
 | 
			
		||||
const cacheRouter = express.Router();
 | 
			
		||||
 | 
			
		||||
cacheRouter.get(/^\/origin\/[a-zA-Z0-9]+\/[0-9]+\/H\.Cache\.bin.*$/, (_req, res) => {
 | 
			
		||||
    res.sendFile(`static/data/H.Cache_${buildConfig.version}.bin`, { root: "./" });
 | 
			
		||||
cacheRouter.get(/^\/origin\/[a-zA-Z0-9]+\/[0-9]+\/H\.Cache\.bin.*$/, (req, res) => {
 | 
			
		||||
    if (typeof req.query.version == "string" && req.query.version.match(/^\d\d\d\d\.\d\d\.\d\d\.\d\d\.\d\d$/)) {
 | 
			
		||||
        res.sendFile(`static/data/H.Cache_${req.query.version}.bin`, { root: "./" });
 | 
			
		||||
    } else {
 | 
			
		||||
        res.sendFile(`static/data/H.Cache_${buildConfig.version}.bin`, { root: "./" });
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user