From 5a56c2e9d32d2e37c2c4b90e43f39d4e55641621 Mon Sep 17 00:00:00 2001 From: Sainan Date: Sat, 22 Mar 2025 17:35:52 -0700 Subject: [PATCH] feat: ascension ceremony inbox message (#1284) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1284 --- .../api/contributeGuildClassController.ts | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/controllers/api/contributeGuildClassController.ts b/src/controllers/api/contributeGuildClassController.ts index c5e878f7..629ec2ff 100644 --- a/src/controllers/api/contributeGuildClassController.ts +++ b/src/controllers/api/contributeGuildClassController.ts @@ -1,7 +1,8 @@ import { toMongoDate } from "@/src/helpers/inventoryHelpers"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; -import { Guild } from "@/src/models/guildModel"; +import { Guild, GuildMember } from "@/src/models/guildModel"; import { config } from "@/src/services/configService"; +import { createMessage } from "@/src/services/inboxService"; import { getInventory } from "@/src/services/inventoryService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { RequestHandler } from "express"; @@ -35,6 +36,37 @@ export const contributeGuildClassController: RequestHandler = async (req, res) = guild.Class = guild.CeremonyClass!; guild.CeremonyClass = undefined; guild.CeremonyResetDate = new Date(Date.now() + (config.fastClanAscension ? 5_000 : 72 * 3600_000)); + if (!config.fastClanAscension) { + // Send message to all active guild members + const members = await GuildMember.find({ guildId: payload.GuildId, status: 0 }, "accountId"); + for (const member of members) { + // somewhat unfaithful as on live the "msg" is not a loctag, but since we don't have the string, we'll let the client fill it in with "arg". + await createMessage(member.accountId.toString(), [ + { + sndr: guild.Name, + msg: "/Lotus/Language/Clan/Clan_AscensionCeremonyInProgressDetails", + arg: [ + { + Key: "RESETDATE", + Tag: + guild.CeremonyResetDate.getUTCMonth() + + "/" + + guild.CeremonyResetDate.getUTCDate() + + "/" + + (guild.CeremonyResetDate.getUTCFullYear() % 100) + + " " + + guild.CeremonyResetDate.getUTCHours().toString().padStart(2, "0") + + ":" + + guild.CeremonyResetDate.getUTCMinutes().toString().padStart(2, "0") + } + ], + sub: "/Lotus/Language/Clan/Clan_AscensionCeremonyInProgress", + icon: "/Lotus/Interface/Graphics/ClanTileImages/ClanEnterDojo.png", + highPriority: true + } + ]); + } + } } await guild.save();