forked from OpenWF/SpaceNinjaServer
		
	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,
 | 
					    getGuildForRequestEx,
 | 
				
			||||||
    hasAccessToDojo,
 | 
					    hasAccessToDojo,
 | 
				
			||||||
    hasGuildPermission,
 | 
					    hasGuildPermission,
 | 
				
			||||||
 | 
					    refundDojoDeco,
 | 
				
			||||||
    removeDojoDeco
 | 
					    removeDojoDeco
 | 
				
			||||||
} from "@/src/services/guildService";
 | 
					} from "@/src/services/guildService";
 | 
				
			||||||
import { getInventory } from "@/src/services/inventoryService";
 | 
					import { getInventory } from "@/src/services/inventoryService";
 | 
				
			||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
					import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
				
			||||||
import { GuildPermission } from "@/src/types/guildTypes";
 | 
					import { GuildPermission } from "@/src/types/guildTypes";
 | 
				
			||||||
 | 
					import { logger } from "@/src/utils/logger";
 | 
				
			||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const destroyDojoDecoController: RequestHandler = async (req, res) => {
 | 
					export const destroyDojoDecoController: RequestHandler = async (req, res) => {
 | 
				
			||||||
@ -18,9 +20,20 @@ export const destroyDojoDecoController: RequestHandler = async (req, res) => {
 | 
				
			|||||||
        res.json({ DojoRequestStatus: -1 });
 | 
					        res.json({ DojoRequestStatus: -1 });
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    const request = JSON.parse(String(req.body)) as IDestroyDojoDecoRequest;
 | 
					    const request = JSON.parse(String(req.body)) as IDestroyDojoDecoRequest | IClearObstacleCourseRequest;
 | 
				
			||||||
 | 
					    if ("DecoType" in request) {
 | 
				
			||||||
        removeDojoDeco(guild, request.ComponentId, request.DecoId);
 | 
					        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();
 | 
					    await guild.save();
 | 
				
			||||||
    res.json(await getDojoClient(guild, 0, request.ComponentId));
 | 
					    res.json(await getDojoClient(guild, 0, request.ComponentId));
 | 
				
			||||||
@ -31,3 +44,8 @@ interface IDestroyDojoDecoRequest {
 | 
				
			|||||||
    ComponentId: string;
 | 
					    ComponentId: string;
 | 
				
			||||||
    DecoId: string;
 | 
					    DecoId: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface IClearObstacleCourseRequest {
 | 
				
			||||||
 | 
					    ComponentId: string;
 | 
				
			||||||
 | 
					    Act: "cObst" | "maybesomethingelsewedontknowabout";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user