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: donate credits to alliance vault (#1436)

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

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

代码差异

4 个文件 +28 -6
Modified src/controllers/api/contributeToVaultController.ts +20 -3
@@ -1,4 +1,4 @@
1 import { GuildMember } from "@/src/models/guildModel";
1 import { Alliance, GuildMember } from "@/src/models/guildModel";
2 2 import {
3 3 addGuildMemberMiscItemContribution,
4 4 addVaultMiscItems,
@@ -19,12 +19,27 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
19 19 const accountId = await getAccountIdForRequest(req);
20 20 const inventory = await getInventory(accountId, "GuildId RegularCredits MiscItems ShipDecorations FusionTreasures");
21 21 const guild = await getGuildForRequestEx(req, inventory);
22 const request = JSON.parse(String(req.body)) as IContributeToVaultRequest;
23
24 if (request.Alliance) {
25 const alliance = (await Alliance.findById(guild.AllianceId!))!;
26 alliance.VaultRegularCredits ??= 0;
27 alliance.VaultRegularCredits += request.RegularCredits;
28 if (request.FromVault) {
29 guild.VaultRegularCredits! -= request.RegularCredits;
30 await Promise.all([guild.save(), alliance.save()]);
31 } else {
32 updateCurrency(inventory, request.RegularCredits, false);
33 await Promise.all([inventory.save(), alliance.save()]);
34 }
35 res.end();
36 return;
37 }
38
22 39 const guildMember = (await GuildMember.findOne(
23 40 { accountId, guildId: guild._id },
24 41 "RegularCreditsContributed MiscItemsContributed ShipDecorationsContributed"
25 42 ))!;
26 const request = JSON.parse(String(req.body)) as IContributeToVaultRequest;
27
28 43 if (request.RegularCredits) {
29 44 updateCurrency(inventory, request.RegularCredits, false);
30 45
@@ -69,4 +84,6 @@ interface IContributeToVaultRequest {
69 84 MiscItems: IMiscItem[];
70 85 ShipDecorations: ITypeCount[];
71 86 FusionTreasures: IFusionTreasure[];
87 Alliance?: boolean;
88 FromVault?: boolean;
72 89 }
Modified src/models/guildModel.ts +2 -1
@@ -254,7 +254,8 @@ const allianceSchema = new Schema<IAllianceDatabase>({
254 254 Name: String,
255 255 MOTD: longMOTDSchema,
256 256 LongMOTD: longMOTDSchema,
257 Emblem: Boolean
257 Emblem: Boolean,
258 VaultRegularCredits: Number
258 259 });
259 260
260 261 allianceSchema.index({ Name: 1 }, { unique: true });
Modified src/services/guildService.ts +4 -1
@@ -581,6 +581,9 @@ export const getAllianceClient = async (
581 581 return {
582 582 _id: toOid(alliance._id),
583 583 Name: alliance.Name,
584 Clans: clans
584 Clans: clans,
585 AllianceVault: {
586 DojoRefundRegularCredits: alliance.VaultRegularCredits
587 }
585 588 };
586 589 };
Modified src/types/guildTypes.ts +2 -1
@@ -282,6 +282,7 @@ export interface IAllianceClient {
282 282 CrossPlatformEnabled?: boolean;
283 283 Clans: IAllianceMemberClient[];
284 284 OriginalPlatform?: number;
285 AllianceVault?: IGuildVault;
285 286 }
286 287
287 288 export interface IAllianceDatabase {
@@ -290,6 +291,7 @@ export interface IAllianceDatabase {
290 291 MOTD?: ILongMOTD;
291 292 LongMOTD?: ILongMOTD;
292 293 Emblem?: boolean;
294 VaultRegularCredits?: number;
293 295 }
294 296
295 297 export interface IAllianceMemberClient {
@@ -318,5 +320,4 @@ export interface IAllianceMemberDatabase {
318 320 // TODO: GET /api/divvyAllianceVault.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=663e9be9f741eeb5782f9df0&allianceId=000000000000000000000069&credits=0
319 321 // TODO: GET /api/removeFromAlliance.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=663e9be9f741eeb5782f9df0
320 322 // TODO: GET /api/setAllianceGuildPermissions.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=000000000000000000000042&perms=2
321 // TODO: Handle alliance in contributeToVault
322 323 // TODO: Handle alliance in setGuildMotd