XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

feat: vista suite backdrop and soundscape customisation (#2534)

Closes #2532 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2534 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

c0a0463a
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

4 个文件 +31 -1
Added src/controllers/api/apartmentController.ts +22 -0
@@ -0,0 +1,22 @@
1 import { getAccountIdForRequest } from "@/src/services/loginService";
2 import { getPersonalRooms } from "@/src/services/personalRoomsService";
3 import { RequestHandler } from "express";
4
5 export const apartmentController: RequestHandler = async (req, res) => {
6 const accountId = await getAccountIdForRequest(req);
7 const personalRooms = await getPersonalRooms(accountId, "Apartment");
8 const response: IApartmentResponse = {};
9 if (req.query.backdrop !== undefined) {
10 response.NewBackdropItem = personalRooms.Apartment.VideoWallBackdrop = req.query.backdrop as string;
11 }
12 if (req.query.soundscape !== undefined) {
13 response.NewSoundscapeItem = personalRooms.Apartment.Soundscape = req.query.soundscape as string;
14 }
15 await personalRooms.save();
16 res.json(response);
17 };
18
19 interface IApartmentResponse {
20 NewBackdropItem?: string;
21 NewSoundscapeItem?: string;
22 }
Modified src/models/personalRoomsModel.ts +3 -1
@@ -122,7 +122,9 @@ const apartmentSchema = new Schema<IApartmentDatabase>(
122 122 {
123 123 Rooms: [roomSchema],
124 124 FavouriteLoadouts: [favouriteLoadoutSchema],
125 Gardening: gardeningSchema
125 Gardening: gardeningSchema,
126 VideoWallBackdrop: String,
127 Soundscape: String
126 128 },
127 129 { _id: false }
128 130 );
Modified src/routes/api.ts +2 -0
@@ -10,6 +10,7 @@ import { addPendingFriendController } from "@/src/controllers/api/addPendingFrie
10 10 import { addToAllianceController } from "@/src/controllers/api/addToAllianceController";
11 11 import { addToGuildController } from "@/src/controllers/api/addToGuildController";
12 12 import { adoptPetController } from "@/src/controllers/api/adoptPetController";
13 import { apartmentController } from "@/src/controllers/api/apartmentController";
13 14 import { arcaneCommonController } from "@/src/controllers/api/arcaneCommonController";
14 15 import { archonFusionController } from "@/src/controllers/api/archonFusionController";
15 16 import { artifactsController } from "@/src/controllers/api/artifactsController";
@@ -168,6 +169,7 @@ const apiRouter = express.Router();
168 169 // get
169 170 apiRouter.get("/abandonLibraryDailyTask.php", abandonLibraryDailyTaskController);
170 171 apiRouter.get("/abortDojoComponentDestruction.php", abortDojoComponentDestructionController);
172 apiRouter.get("/apartment.php", apartmentController);
171 173 apiRouter.get("/cancelGuildAdvertisement.php", cancelGuildAdvertisementController);
172 174 apiRouter.get("/changeDojoRoot.php", changeDojoRootController);
173 175 apiRouter.get("/changeGuildRank.php", changeGuildRankController);
Modified src/types/personalRoomsTypes.ts +4 -0
@@ -91,12 +91,16 @@ export interface IApartmentClient {
91 91 Gardening: IGardeningClient;
92 92 Rooms: IRoom[];
93 93 FavouriteLoadouts: IFavouriteLoadout[];
94 VideoWallBackdrop?: string;
95 Soundscape?: string;
94 96 }
95 97
96 98 export interface IApartmentDatabase {
97 99 Gardening: IGardeningDatabase;
98 100 Rooms: IRoom[];
99 101 FavouriteLoadouts: IFavouriteLoadoutDatabase[];
102 VideoWallBackdrop?: string;
103 Soundscape?: string;
100 104 }
101 105
102 106 export interface IPlacedDecosDatabase {