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: automatically delete death mark messages after 24 hours (#1535)

Possibly unfaithful but more faithful than never deleting it at all. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1535 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

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

代码差异

2 个文件 +8 -6
Modified src/models/inboxModel.ts +6 -4
@@ -5,7 +5,7 @@ import { IMongoDate, IOid } from "@/src/types/commonTypes";
5 5 import { ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
6 6
7 7 export interface IMessageClient
8 extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly"> {
8 extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly" | "expiry"> {
9 9 _id?: IOid;
10 10 date: IMongoDate;
11 11 startDate?: IMongoDate;
@@ -16,6 +16,8 @@ export interface IMessageClient
16 16 export interface IMessageDatabase extends IMessage {
17 17 ownerId: Types.ObjectId;
18 18 date: Date; //created at
19 attVisualOnly?: boolean;
20 expiry?: Date;
19 21 _id: Types.ObjectId;
20 22 }
21 23
@@ -30,7 +32,6 @@ export interface IMessage {
30 32 endDate?: Date;
31 33 att?: string[];
32 34 countedAtt?: ITypeCount[];
33 attVisualOnly?: boolean;
34 35 transmission?: string;
35 36 arg?: Arg[];
36 37 gifts?: IGift[];
@@ -137,14 +138,14 @@ messageSchema.virtual("messageId").get(function (this: IMessageDatabase) {
137 138 messageSchema.set("toJSON", {
138 139 virtuals: true,
139 140 transform(_document, returnedObject) {
140 delete returnedObject.ownerId;
141
142 141 const messageDatabase = returnedObject as IMessageDatabase;
143 142 const messageClient = returnedObject as IMessageClient;
144 143
145 144 delete returnedObject._id;
146 145 delete returnedObject.__v;
146 delete returnedObject.ownerId;
147 147 delete returnedObject.attVisualOnly;
148 delete returnedObject.expiry;
148 149
149 150 messageClient.date = toMongoDate(messageDatabase.date);
150 151
@@ -157,5 +158,6 @@ messageSchema.set("toJSON", {
157 158 });
158 159
159 160 messageSchema.index({ ownerId: 1 });
161 messageSchema.index({ expiry: 1 }, { expireAfterSeconds: 0 });
160 162
161 163 export const Inbox = model<IMessageDatabase>("Inbox", messageSchema, "inbox");
Modified src/services/missionInventoryUpdateService.ts +2 -2
@@ -394,10 +394,10 @@ export const addMissionInventoryUpdates = async (
394 394 sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
395 395 msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
396 396 icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
397 highPriority: true
397 highPriority: true,
398 expiry: new Date(Date.now() + 86400_000) // TOVERIFY: This type of inbox message seems to automatically delete itself. We'll just delete it after 24 hours, but it's clear if this is correct.
398 399 }
399 400 ]);
400 // TODO: This type of inbox message seems to automatically delete itself. Figure out under which conditions.
401 401 }
402 402 }
403 403 inventory.DeathMarks = value;