diff --git a/src/controllers/api/guildTechController.ts b/src/controllers/api/guildTechController.ts index ce1a9a56..fc4c1d99 100644 --- a/src/controllers/api/guildTechController.ts +++ b/src/controllers/api/guildTechController.ts @@ -78,6 +78,9 @@ export const guildTechController: RequestHandler = async (req, res) => { processFundedProject(guild, techProject, recipe); } } + if (data.RecipeType.substring(0, 39) == "/Lotus/Types/Items/Research/DojoColors/") { + guild.ActiveDojoColorResearch = data.RecipeType; + } await guild.save(); res.end(); } else if (data.Action == "Contribute") { @@ -192,12 +195,14 @@ export const guildTechController: RequestHandler = async (req, res) => { } else if (data.Action == "Pause") { const project = guild.TechProjects!.find(x => x.ItemType == data.RecipeType)!; project.State = -2; + guild.ActiveDojoColorResearch = ""; await guild.save(); await removePigmentsFromGuildMembers(guild._id); res.end(); } else if (data.Action == "Unpause") { const project = guild.TechProjects!.find(x => x.ItemType == data.RecipeType)!; project.State = 0; + guild.ActiveDojoColorResearch = data.RecipeType; await guild.save(); res.end(); } else { diff --git a/src/models/guildModel.ts b/src/models/guildModel.ts index b8eb97af..dd035a64 100644 --- a/src/models/guildModel.ts +++ b/src/models/guildModel.ts @@ -151,6 +151,7 @@ const guildSchema = new Schema( VaultShipDecorations: { type: [typeCountSchema], default: undefined }, VaultFusionTreasures: { type: [fusionTreasuresSchema], default: undefined }, TechProjects: { type: [techProjectSchema], default: undefined }, + ActiveDojoColorResearch: { type: String, default: "" }, Class: { type: Number, default: 0 }, XP: { type: Number, default: 0 }, ClaimedXP: { type: [String], default: undefined }, diff --git a/src/services/guildService.ts b/src/services/guildService.ts index 4af38962..142d8514 100644 --- a/src/services/guildService.ts +++ b/src/services/guildService.ts @@ -92,6 +92,7 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s Ranks: guild.Ranks, Tier: 1, Vault: getGuildVault(guild), + ActiveDojoColorResearch: guild.ActiveDojoColorResearch, Class: guild.Class, XP: guild.XP, IsContributor: !!guild.CeremonyContributors?.find(x => x.equals(accountId)), diff --git a/src/types/guildTypes.ts b/src/types/guildTypes.ts index 811f1813..b1ff5efb 100644 --- a/src/types/guildTypes.ts +++ b/src/types/guildTypes.ts @@ -14,6 +14,7 @@ export interface IGuildClient { }[]; Tier: number; Vault: IGuildVault; + ActiveDojoColorResearch: string; Class: number; XP: number; IsContributor: boolean; @@ -39,6 +40,7 @@ export interface IGuildDatabase { VaultFusionTreasures?: IFusionTreasure[]; TechProjects?: ITechProjectDatabase[]; + ActiveDojoColorResearch: string; Class: number; XP: number;