feat: reset obstacle course (#2523)
Closes #2520 Reviewed-on: OpenWF/SpaceNinjaServer#2523 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									922b65cfab
								
							
						
					
					
						commit
						b53c4d9125
					
				@ -3,11 +3,13 @@ import {
 | 
			
		||||
    getGuildForRequestEx,
 | 
			
		||||
    hasAccessToDojo,
 | 
			
		||||
    hasGuildPermission,
 | 
			
		||||
    refundDojoDeco,
 | 
			
		||||
    removeDojoDeco
 | 
			
		||||
} from "@/src/services/guildService";
 | 
			
		||||
import { getInventory } from "@/src/services/inventoryService";
 | 
			
		||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
import { GuildPermission } from "@/src/types/guildTypes";
 | 
			
		||||
import { logger } from "@/src/utils/logger";
 | 
			
		||||
import { RequestHandler } from "express";
 | 
			
		||||
 | 
			
		||||
export const destroyDojoDecoController: RequestHandler = async (req, res) => {
 | 
			
		||||
@ -18,9 +20,20 @@ export const destroyDojoDecoController: RequestHandler = async (req, res) => {
 | 
			
		||||
        res.json({ DojoRequestStatus: -1 });
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    const request = JSON.parse(String(req.body)) as IDestroyDojoDecoRequest;
 | 
			
		||||
 | 
			
		||||
    removeDojoDeco(guild, request.ComponentId, request.DecoId);
 | 
			
		||||
    const request = JSON.parse(String(req.body)) as IDestroyDojoDecoRequest | IClearObstacleCourseRequest;
 | 
			
		||||
    if ("DecoType" in request) {
 | 
			
		||||
        removeDojoDeco(guild, request.ComponentId, request.DecoId);
 | 
			
		||||
    } else if (request.Act == "cObst") {
 | 
			
		||||
        const component = guild.DojoComponents.id(request.ComponentId)!;
 | 
			
		||||
        if (component.Decos) {
 | 
			
		||||
            for (const deco of component.Decos) {
 | 
			
		||||
                refundDojoDeco(guild, component, deco);
 | 
			
		||||
            }
 | 
			
		||||
            component.Decos.splice(0, component.Decos.length);
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        logger.error(`unhandled destroyDojoDeco request`, request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    await guild.save();
 | 
			
		||||
    res.json(await getDojoClient(guild, 0, request.ComponentId));
 | 
			
		||||
@ -31,3 +44,8 @@ interface IDestroyDojoDecoRequest {
 | 
			
		||||
    ComponentId: string;
 | 
			
		||||
    DecoId: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface IClearObstacleCourseRequest {
 | 
			
		||||
    ComponentId: string;
 | 
			
		||||
    Act: "cObst" | "maybesomethingelsewedontknowabout";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user