返回提交历史
Modified
src/models/inventoryModels/inventoryModel.ts
+21
-12
Modified
src/services/importService.ts
+12
-3
Modified
src/types/inventoryTypes/inventoryTypes.ts
+15
-9
XFEstudio/SpaceNinjaServer
fix: rectify CrewMembers import & typings (#845)
8858b156
代码差异
3 个文件
+48
-24
@@ -41,7 +41,6 @@ import {
41
41
ICrewShipPortGuns,
42
42
ICrewShipCustomization,
43
43
ICrewShipWeapon,
44
ICrewShipMembersClient,
45
44
ICrewShipPilotWeapon,
46
45
IShipExterior,
47
46
IHelminthFoodRecord,
@@ -52,7 +51,9 @@ import {
52
51
ICompletedDialogue,
53
52
IDialogueClient,
54
53
IUpgradeDatabase,
55
ICrewShipDatabase
54
ICrewShipDatabase,
55
ICrewShipMemberDatabase,
56
ICrewShipMemberClient
56
57
} from "../../types/inventoryTypes/inventoryTypes";
57
58
import { IOid } from "../../types/commonTypes";
58
59
import {
@@ -675,25 +676,33 @@ const crewShipCustomizationSchema = new Schema<ICrewShipCustomization>(
675
676
{ _id: false }
676
677
);
677
678
678
const crewShipMembersSchema = new Schema<ICrewShipMembersDatabase>(
679
const crewShipMemberSchema = new Schema<ICrewShipMemberDatabase>(
679
680
{
680
SLOT_A: { type: Schema.Types.ObjectId, required: false },
681
SLOT_B: { type: Schema.Types.ObjectId, required: false },
682
SLOT_C: { type: Schema.Types.ObjectId, required: false }
681
ItemId: { type: Schema.Types.ObjectId, required: false },
682
NemesisFingerprint: { type: Number, required: false }
683
683
},
684
684
{ _id: false }
685
685
);
686
crewShipMembersSchema.set("toJSON", {
686
crewShipMemberSchema.set("toJSON", {
687
687
virtuals: true,
688
688
transform(_doc, obj) {
689
const db = obj as ICrewShipMembersDatabase;
690
const client = obj as ICrewShipMembersClient;
691
client.SLOT_A = db.SLOT_A ? { ItemId: toOid(db.SLOT_A) } : undefined;
692
client.SLOT_B = db.SLOT_B ? { ItemId: toOid(db.SLOT_B) } : undefined;
693
client.SLOT_C = db.SLOT_C ? { ItemId: toOid(db.SLOT_C) } : undefined;
689
const db = obj as ICrewShipMemberDatabase;
690
const client = obj as ICrewShipMemberClient;
691
if (db.ItemId) {
692
client.ItemId = toOid(db.ItemId);
693
}
694
694
}
695
695
});
696
696
697
const crewShipMembersSchema = new Schema<ICrewShipMembersDatabase>(
698
{
699
SLOT_A: { type: crewShipMemberSchema, required: false },
700
SLOT_B: { type: crewShipMemberSchema, required: false },
701
SLOT_C: { type: crewShipMemberSchema, required: false }
702
},
703
{ _id: false }
704
);
705
697
706
const crewShipSchema = new Schema<ICrewShipDatabase>({
698
707
ItemType: { type: String, required: true },
699
708
Configs: { type: [ItemConfigSchema], default: [] },
@@ -10,6 +10,8 @@ import {
10
10
equipmentKeys,
11
11
ICrewShipClient,
12
12
ICrewShipDatabase,
13
ICrewShipMemberClient,
14
ICrewShipMemberDatabase,
13
15
ICrewShipMembersClient,
14
16
ICrewShipMembersDatabase,
15
17
IDialogueClient,
@@ -85,11 +87,18 @@ const replaceSlots = (db: ISlots, client: ISlots): void => {
85
87
db.Slots = client.Slots;
86
88
};
87
89
90
const convertCrewShipMember = (client: ICrewShipMemberClient): ICrewShipMemberDatabase => {
91
return {
92
...client,
93
ItemId: client.ItemId ? new Types.ObjectId(client.ItemId.$oid) : undefined
94
};
95
};
96
88
97
const convertCrewShipMembers = (client: ICrewShipMembersClient): ICrewShipMembersDatabase => {
89
98
return {
90
SLOT_A: client.SLOT_A ? new Types.ObjectId(client.SLOT_A.ItemId.$oid) : undefined,
91
SLOT_B: client.SLOT_B ? new Types.ObjectId(client.SLOT_B.ItemId.$oid) : undefined,
92
SLOT_C: client.SLOT_C ? new Types.ObjectId(client.SLOT_C.ItemId.$oid) : undefined
99
SLOT_A: client.SLOT_A ? convertCrewShipMember(client.SLOT_A) : undefined,
100
SLOT_B: client.SLOT_B ? convertCrewShipMember(client.SLOT_B) : undefined,
101
SLOT_C: client.SLOT_C ? convertCrewShipMember(client.SLOT_C) : undefined
93
102
};
94
103
};
95
104
@@ -471,19 +471,25 @@ export interface ICrewShipDatabase extends Omit<ICrewShipClient, "CrewMembers" |
471
471
}
472
472
473
473
export interface ICrewShipMembersClient {
474
SLOT_A?: ISlot;
475
SLOT_B?: ISlot;
476
SLOT_C?: ISlot;
474
SLOT_A?: ICrewShipMemberClient;
475
SLOT_B?: ICrewShipMemberClient;
476
SLOT_C?: ICrewShipMemberClient;
477
477
}
478
478
479
export interface ISlot {
480
ItemId: IOid;
479
export interface ICrewShipMembersDatabase {
480
SLOT_A?: ICrewShipMemberDatabase;
481
SLOT_B?: ICrewShipMemberDatabase;
482
SLOT_C?: ICrewShipMemberDatabase;
481
483
}
482
484
483
export interface ICrewShipMembersDatabase {
484
SLOT_A?: Types.ObjectId;
485
SLOT_B?: Types.ObjectId;
486
SLOT_C?: Types.ObjectId;
485
export interface ICrewShipMemberClient {
486
ItemId?: IOid;
487
NemesisFingerprint?: number;
488
}
489
490
export interface ICrewShipMemberDatabase {
491
ItemId?: Types.ObjectId;
492
NemesisFingerprint?: number;
487
493
}
488
494
489
495
export interface ICrewShipCustomization {