From 038ef9bb92427de1756d52380eff2ef0c298682f Mon Sep 17 00:00:00 2001 From: Naiyar <137700126+imnaiyar@users.noreply.github.com> Date: Mon, 14 Oct 2024 16:33:49 +0600 Subject: [PATCH] chore: add moomin season data (#94) * chore: add moomin data * fix: naming * chore: add moomin spirits * chore: add seasonal prices for spirits data * chore: some fixes and improvements --- src/bot/libs/classes/SeasonCalculator.ts | 9 +- src/bot/libs/classes/Spirits.ts | 7 +- src/bot/libs/constants/seasonPrices.ts | 73 ++- src/bot/libs/constants/seasonsData.ts | 8 +- .../spirits-datas/seasonal/21-nesting.ts | 8 +- .../spirits-datas/seasonal/22-duet.ts | 10 +- .../spirits-datas/seasonal/23-moomin.ts | 418 ++++++++++++++++++ .../spirits-datas/seasonal/8-dreams.ts | 2 +- .../libs/constants/spirits-datas/type.d.ts | 39 +- src/bot/structures/SkyHelper.ts | 2 +- 10 files changed, 518 insertions(+), 58 deletions(-) create mode 100644 src/bot/libs/constants/spirits-datas/seasonal/23-moomin.ts diff --git a/src/bot/libs/classes/SeasonCalculator.ts b/src/bot/libs/classes/SeasonCalculator.ts index 203086fd..a5d15688 100644 --- a/src/bot/libs/classes/SeasonCalculator.ts +++ b/src/bot/libs/classes/SeasonCalculator.ts @@ -199,9 +199,12 @@ export default class { }); } public async buildCard(): Promise { - const emojiURL = this.author.client.emojis.cache - .get(parseEmoji(this.seasonIcon)?.id as unknown as string) - ?.imageURL({ extension: "png" }); + const { id } = parseEmoji(this.seasonIcon)!; + const emojiURL = id + ? this.author.client.emojis.cache.get(id)?.imageURL() || + (await this.author.client.application.emojis.fetch(id).catch(() => null))?.imageURL() + : null; + const card = new SeasonProgressCard() .setName(this.author instanceof GuildMember ? this.author.nickname ?? this.author.displayName : this.author.displayName) .setProgress(parseInt(this.progressLevel.toFixed())) diff --git a/src/bot/libs/classes/Spirits.ts b/src/bot/libs/classes/Spirits.ts index 670681d5..3c8c7816 100644 --- a/src/bot/libs/classes/Spirits.ts +++ b/src/bot/libs/classes/Spirits.ts @@ -93,7 +93,12 @@ export class Spirits { .replaceAll(":RegularHeart:", "<:regularHeart:1207793247792013474>") .replaceAll(":AC:", "<:AscendedCandle:1207793254301433926>"), }); - embed.setImage(`${config.CDN_URL}/${data.tree!.image}`); + + // Allow usage of both cdn link and direct link + // TODO: Consider removing cdn as it is getting very expensive lol + let url = data.tree?.image; + if (!url?.startsWith("https://")) url = config.CDN_URL + "/" + url; + embed.setImage(url); } return embed; } diff --git a/src/bot/libs/constants/seasonPrices.ts b/src/bot/libs/constants/seasonPrices.ts index 3e6412cd..4b57890f 100644 --- a/src/bot/libs/constants/seasonPrices.ts +++ b/src/bot/libs/constants/seasonPrices.ts @@ -4,60 +4,55 @@ import type { SeasonPrice } from "#libs/types"; * Spirit prices of the current season (For calculator) */ export const SeasonPrices: { [key: string]: SeasonPrice } = { - "The Cellist's Beginnings": { - icon: "<:CellistB:1262326135216406559>", + "Comfort of Kindness": { + icon: "<:ComfortofKindnessCape:1295293399406084147>", collectibles: [ - { item: "Hair", icon: "<:CellitBHair:1262322324963852308>", price: 20 }, - { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 26 }, - { item: "Outfit", icon: "<:CellitBOutfit:1262322298145341581>", price: 32 }, - { item: "Heart", icon: "<:DuetHeart:1262318647376871424>", price: 3, pass: true }, - ], - }, - "The Pianist's Beginnings": { - icon: "<:PianistB:1262326115024769107>", - collectibles: [ - { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 14 }, - { item: "Hair", icon: "<:PianistBHair:1262322985134461029>", price: 20 }, - { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 24 }, - { item: "Small Blue Rug", icon: "<:SmallBlueRug:1262322964062277666>", price: 30 }, - { item: "Heart", icon: "<:DuetHeart:1262318647376871424>", price: 3, pass: true }, + { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 6 }, + { item: "Hair", icon: "<:ComfortofKindnessHair:1295319528678490132>", price: 16 }, + { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 20 }, + { item: "Bow tie", icon: "<:ComfortofKindnessNeckAccessory:1295319558441140244>", price: 24 }, + { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 32 }, + { item: "Heart", icon: "<:MoominHeart:1295299241756852234>", price: 3, pass: true }, ], }, - "The Musicians' Legacy": { - icon: "<:MusicianL:1262326097341714514>", + "Sense of Self": { + icon: "<:SenseofSelfNeckAccessory:1295294042258673718>", collectibles: [ - { item: "Music Sheet #40", icon: "<:MusicIcon:1262323496852131882>", price: 14 }, - { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 24 }, - { item: "Instrument", icon: "<:MusiciansLInstrument:1262323472760049724>", price: 34 }, - { item: "Heart", icon: "<:DuetHeart:1262318647376871424>", price: 3, pass: true }, + { item: "Music Sheet #41", icon: "<:MusicIcon:1262323496852131882>", price: 12 }, + { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 18 }, + { item: "Neck Accessory", icon: "<:SenseofSelfNeckAccessory:1295294042258673718>", price: 24 }, + { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 28 }, + { item: "Heart", icon: "<:MoominHeart:1295299241756852234>", price: 3, pass: true }, ], }, - "The Cellist's Flourishing": { - icon: "<:CellistF:1262326155508318380>", + "Spirit of Adventure": { + icon: "<:SpiritofAdventureCape:1295294188375511082>", collectibles: [ - { item: "Small Pink Rug", icon: "<:SmallPinkRug:1262323794715082824>", price: 16 }, - { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 18 }, - { item: "Cape", icon: "<:CellistFCape:1262323774997659673>", price: 22 }, - { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 24 }, - { item: "Heart", icon: "<:DuetHeart:1262318647376871424>", price: 3, pass: true }, + { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 8 }, + { item: "Harmonica", icon: "<:SpiritofAdventureHarmonica:1295314878956830741>", price: 20 }, + { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 26 }, + { item: "Cape", icon: "<:SpiritofAdventureCape:1295294188375511082>", price: 38 }, + { item: "Heart", icon: "<:MoominHeart:1295299241756852234>", price: 3, pass: true }, ], }, - "The Pianist's Flourishing": { - icon: "<:PianistF:1262326075380334623>", + "Inspiration of Inclusion": { + icon: "<:InspirationofInclusionNeckAccess:1295294371876573325>", collectibles: [ - { item: "Blessing Nodes", icon: "<:BlessingNode:1238570665267691602>", price: 12 }, - { item: "Shoes", icon: "<:PianistFShoes:1262324120532549692>", price: 22 }, - { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 26 }, - { item: "Heart", icon: "<:DuetHeart:1262318647376871424>", price: 3, pass: true }, + { item: "Grandfather Clock", icon: "<:InspirationofInclusionClockPropi:1295301238304538695>", price: 12 }, + { item: "Blessing Node", icon: "<:BlessingNode:1238570665267691602>", price: 16 }, + { item: "Painting", icon: "<:InspirationofInclusionPainting:1295301282659045447>", price: 20 }, + { item: "Blessings Node", icon: "<:BlessingNode:1238570665267691602>", price: 26 }, + { item: "Outfit", icon: "<:InspirationofInclusionOutfit:1295300513868419148>", price: 36 }, + { item: "Heart", icon: "<:MoominHeart:1295299241756852234>", price: 3, pass: true }, ], }, } as const; export const SeasonData = { - name: "Season of Duets", - icon: "<:SODuet:1262310944332189768>", - start: "15-07-2024", - end: "29-09-2024", + name: "Season of Moomin", + icon: "<:SeasonofMoominIcon:1295323276612206602>", + start: "14-10-2024", + end: "29-12-2024", duration: 77, spiritsUpdated: true, } as const; diff --git a/src/bot/libs/constants/seasonsData.ts b/src/bot/libs/constants/seasonsData.ts index d81dc0bf..235bd960 100644 --- a/src/bot/libs/constants/seasonsData.ts +++ b/src/bot/libs/constants/seasonsData.ts @@ -12,10 +12,16 @@ export interface SeasonData { } export default { + moomin: { + name: "Moomin", + icon: "<:SeasonofMoominIcon:1295323276612206602>", + active: true, + from: ["14-10-2024", "29-12-2024"], + quests: [], + }, duet: { name: "Duets", icon: "<:SODuet:1262310944332189768>", - active: true, from: ["15-07-2024", "29-09-2024"], quests: [ { diff --git a/src/bot/libs/constants/spirits-datas/seasonal/21-nesting.ts b/src/bot/libs/constants/spirits-datas/seasonal/21-nesting.ts index 7e699b75..a7db8e44 100644 --- a/src/bot/libs/constants/spirits-datas/seasonal/21-nesting.ts +++ b/src/bot/libs/constants/spirits-datas/seasonal/21-nesting.ts @@ -8,7 +8,7 @@ const data: Record = { realm: "Aviary Village", season: "Nesting", ts: { - eligible: false, + eligible: true, returned: false, dates: [], }, @@ -111,7 +111,7 @@ const data: Record = { realm: "Aviary Village", season: "Nesting", ts: { - eligible: false, + eligible: true, returned: false, dates: [], }, @@ -229,7 +229,7 @@ const data: Record = { realm: "Aviary Village", season: "Nesting", ts: { - eligible: false, + eligible: true, returned: false, dates: [], }, @@ -333,7 +333,7 @@ const data: Record = { realm: "Aviary Village", season: "Nesting", ts: { - eligible: false, + eligible: true, returned: false, dates: [], }, diff --git a/src/bot/libs/constants/spirits-datas/seasonal/22-duet.ts b/src/bot/libs/constants/spirits-datas/seasonal/22-duet.ts index 055c8e42..4d84d536 100644 --- a/src/bot/libs/constants/spirits-datas/seasonal/22-duet.ts +++ b/src/bot/libs/constants/spirits-datas/seasonal/22-duet.ts @@ -6,7 +6,7 @@ const data: Record = { image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/b/b7/The-Cellists-Beginnings-Shop.png", icon: "<:CellistB:1262326135216406559>", type: "Seasonal Spirit", - season: "Duet", + season: "Duets", ts: { eligible: false, returned: false, @@ -88,7 +88,7 @@ const data: Record = { image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/3/3a/The-Pianists-Beginnings-Shop.png", icon: "<:PianistB:1262326115024769107>", type: "Seasonal Spirit", - season: "Duet", + season: "Duets", ts: { eligible: false, returned: false, @@ -190,7 +190,7 @@ const data: Record = { icon: "<:MusicianL:1262326097341714514>", image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/e/ed/The-Musicians-Legacy-Shop.png", type: "Seasonal Spirit", - season: "Duet", + season: "Duets", ts: { eligible: false, returned: false, @@ -265,7 +265,7 @@ const data: Record = { image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/e/ea/The-Cellists-Flourishing-Shop.png", icon: "<:CellistF:1262326155508318380>", type: "Seasonal Spirit", - season: "Duet", + season: "Duets", ts: { eligible: false, returned: false, @@ -372,7 +372,7 @@ const data: Record = { image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/9/9b/The-Pianists-Flourishing-Shop.png", icon: "<:PianistF:1262326075380334623>", type: "Seasonal Spirit", - season: "Duet", + season: "Duets", ts: { eligible: false, returned: false, diff --git a/src/bot/libs/constants/spirits-datas/seasonal/23-moomin.ts b/src/bot/libs/constants/spirits-datas/seasonal/23-moomin.ts new file mode 100644 index 00000000..25e25007 --- /dev/null +++ b/src/bot/libs/constants/spirits-datas/seasonal/23-moomin.ts @@ -0,0 +1,418 @@ +import type { SpiritsData } from "../type.js"; + +const data: Record = { + kindness: { + name: "Comfort of Kindness", + season: "Moomin", + type: "Seasonal Spirit", + realm: "Vault of Knowledge", + icon: "<:ComfortofKindnessCape:1295293399406084147>", + image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/1/18/Comfort-of-Kindness-Shop.png", + ts: { + eligible: false, + returned: false, + dates: [], + }, + tree: { + by: "π“ˆπ“Žπ“Šπ’Άπ“ƒ (syuan_syuan_) ", + total: "101 <:MoominCandles:1295299227332640858>", + image: + "https://cdn.discordapp.com/attachments/1295233556058210406/1295285443830480937/Image_3.jpeg?ex=670e1813&is=670cc693&hm=0b15a3e4da4a7b2e89ee7ebc83dced0ceeb687ff0517b1483e60aa883e24fb41&", + }, + collectibles: [ + { + name: "Pink Bow Tie", + type: "Neck Accessory", + icon: "<:ComfortofKindnessNeckAccessory:1295319558441140244>", + spPrice: "24 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The bow tie", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/5e/Comfort-of-Kindness-Neck-Accessory.png/revision/latest/scale-to-width-down/400?cb=20240924084859", + }, + ], + }, + { + name: "Hair", + type: "Hair", + icon: "<:ComfortofKindnessHair:1295319528678490132>", + spPrice: "16 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The Hair (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/e/e5/Comfort-of-Kindness-Hair-front.png/revision/latest/scale-to-width-down/400?cb=20240928020121", + }, + { + description: "The Hair (Side)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/4/4c/Comfort-of-Kindness-Hair-side.png/revision/latest/scale-to-width-down/400?cb=20240924215825", + }, + { + description: "The Hair (Back)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/3/37/Comfort-of-Kindness-Hair-back.png/revision/latest/scale-to-width-down/400?cb=20240924215823", + }, + ], + }, + { + name: "Cape", + type: "Cape", + icon: "<:ComfortofKindnessCape:1295293399406084147>", + isSP: true, + images: [ + { + description: "The cape (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/9/96/Comfort-of-Kindness-Cape-front.png/revision/latest/scale-to-width-down/400?cb=20241003005902", + }, + { + description: "The cape (Back)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/57/Comfort-of-Kindness-Cape-back.png/revision/latest/scale-to-width-down/400?cb=20241003005903", + }, + ], + }, + { + name: "Bridge Painting", + icon: "<:ComfortofKindnessPainting:1295319512291344396>", + type: "Props", + isSP: true, + notes: [ + "It is a placeable Prop that can be used to decorate Shared Spaces.", + " This item is purely cosmetic and does not offer any functionality.", + ], + images: [ + { + description: "The Painting", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/9/9b/Comfort-of-Kindness-Painting-Prop.png/revision/latest/scale-to-width-down/400?cb=20240930234347", + }, + { + description: "On player's back", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/59/Duets-Poster-Props-Backpack.png/revision/latest/scale-to-width-down/400?cb=20240714065406", + }, + ], + }, + { + name: "Chandelier", + type: "Props", + icon: "<:ComfortofKindnessChandelier:1295319498534027315>", + isSP: true, + notes: [ + "It is a placeable Prop that can be used to decorate Shared Spaces and functions as a light source.", + "Once placed, the player can light the candles and interact with the item to switch the light off and on.", + ], + images: [ + { + description: "Chandelier", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/3/39/Comfort-of-Kindness-Chandelier-Prop.png/revision/latest/scale-to-width-down/400?cb=20240926041203", + }, + { + description: "On player's back", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/59/Duets-Poster-Props-Backpack.png/revision/latest/scale-to-width-down/400?cb=20240714065406", + }, + ], + }, + ], + }, + sense_of_self: { + name: "Sense of Self", + type: "Seasonal Spirit", + season: "Moomin", + realm: "Vault of Knowledge", + icon: "<:SenseofSelfNeckAccessory:1295294042258673718>", + image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/9/92/Sense-of-Self-Shop.png", + ts: { + eligible: false, + returned: false, + dates: [], + }, + tree: { + by: "π“ˆπ“Žπ“Šπ’Άπ“ƒ (syuan_syuan_) ", + total: "85 <:MoominCandles:1295299227332640858>", + image: + "https://media.discordapp.net/attachments/1295233556058210406/1295285444333928499/Image_4.jpeg?ex=670e1813&is=670cc693&hm=bed55aa166fb92cb7010b681fb3c756354d3cc440477b81e326aca210842a15e&=&format=webp&width=1091&height=1091", + }, + collectibles: [ + { + name: "Shoes", + type: "Shoes", + icon: "<:SenseofSelfShoes:1295317717909377074>", + isSP: true, + images: [ + { + description: "The Shoes", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/7/7e/Sense-of-Self-Shoes.png/revision/latest/scale-to-width-down/400?cb=20240928015952", + }, + ], + }, + { + name: "Hair Accessory", + type: "Hair Accessory", + icon: "<:SenseofSelfHairAccessory:1295317654252290098>", + isSP: true, + images: [ + { + description: "The Accessory", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/4/46/Sense-of-Self-Hair-Accessory.png/revision/latest/scale-to-width-down/400?cb=20240930234349", + }, + ], + }, + { + name: "Neck Accessory", + type: "Neck Accessory", + icon: "<:SenseofSelfNeckAccessory:1295294042258673718>", + spPrice: "24 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The Accessory", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/6/64/Sense-of-Self-Neck-Accessory.png/revision/latest/scale-to-width-down/400?cb=20240924084856", + }, + ], + }, + { + name: "Music Sheet #41", + type: "Music Sheet", + icon: "<:MusicIcon:1262323496852131882>", + spPrice: "12 <:MoominCandles:1295299227332640858>", + images: [], + }, + ], + }, + spirit_of_adventure: { + name: "Spirit of Adventure", + type: "Seasonal Spirit", + season: "Moomin", + realm: "Vault of Knowledge", + icon: "<:SpiritofAdventureCape:1295294188375511082>", + image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/c/c6/Spirit-of-Adventure-Shop.png", + ts: { + eligible: false, + returned: false, + dates: [], + }, + tree: { + by: "π“ˆπ“Žπ“Šπ’Άπ“ƒ (syuan_syuan_) ", + total: "95 <:MoominCandles:1295299227332640858>", + image: + "https://media.discordapp.net/attachments/1295233556058210406/1295285444879323187/Image_5.jpeg?ex=670e1813&is=670cc693&hm=b347ee716d62d11b92170eb85113d908498044c1475394fc134668f56d17d5c6&=&format=webp&width=1091&height=1091", + }, + collectibles: [ + { + name: "Hair", + icon: "<:SpiritofAdventureHair:1295314895818067978>", + type: "Hair", + isSP: true, + images: [ + { + description: "The Hair (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/c/c0/Spirit-of-Adventure-Hair-front.png/revision/latest/scale-to-width-down/400?cb=20240925011950", + }, + { + description: "The Hair (Side)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/2/27/Spirit-of-Adventure-Hair-side.png/revision/latest/scale-to-width-down/400?cb=20240925011952", + }, + { + description: "The Hair (Back)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/6/63/Spirit-of-Adventure-Hair-back.png/revision/latest/scale-to-width-down/400?cb=20240925011954", + }, + ], + }, + { + name: "Cape", + type: "Cape", + icon: "<:SpiritofAdventureCape:1295294188375511082>", + spPrice: "38 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The Cape (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/f/f7/Spirit-of-Adventure-Cape-front.png/revision/latest/scale-to-width-down/400?cb=20241003042723", + }, + { + description: "The Cape (Interior)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/f/f8/Spirit-of-Adventure-Cape-interior.png/revision/latest/scale-to-width-down/400?cb=20241003042724", + }, + { + description: "The Cape (Back)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/0/0d/Spirit-of-Adventure-Cape-back.png/revision/latest/scale-to-width-down/400?cb=20241003042726", + }, + { + description: "The Cape (Exterior)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/c/cb/Spirit-of-Adventure-Cape-exterior.png/revision/latest/scale-to-width-down/400?cb=20241003042722", + }, + ], + }, + { + name: "Harmonica", + type: "Instrument", + icon: "<:SpiritofAdventureHarmonica:1295314878956830741>", + spPrice: "20 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "Harmonica", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/7/75/Spirit-of-Adventure-Harmonica.png/revision/latest/scale-to-width-down/400?cb=20240930234345", + }, + { + description: "Playing the harmonica", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/8/87/Spirit-of-Adventure-Harmonica-playing.png/revision/latest/scale-to-width-down/400?cb=20241011020728", + }, + { + description: "On player's back", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/8/89/Spirit-of-Adventure-Harmonica-on-back.png/revision/latest/scale-to-width-down/400?cb=20241006022439", + }, + ], + }, + { + name: "Tent", + type: "Prop", + icon: "<:SpiritofAdventureProp:1295314863874117652>", + isSP: true, + images: [ + { + description: "The Tent", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/56/Spirit-of-Adventure-Prop.png/revision/latest/scale-to-width-down/400?cb=20240926071201", + }, + { + description: "On player's back", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/8/8e/Spirit-of-Adventure-Prop-on-back.png/revision/latest/scale-to-width-down/400?cb=20241006022440", + }, + ], + }, + { + name: "Music Sheet #42", + type: "Music Sheet", + icon: "<:MusicIcon:1262323496852131882>", + spPrice: "8 <:MusicIcon:1262323496852131882>", + images: [], + }, + ], + }, + inspiration_of_inclusion: { + name: "Inspiration of Inclusion", + type: "Seasonal Spirit", + season: "Moomin", + realm: "Vault of Knowledge", + icon: "<:InspirationofInclusionNeckAccess:1295294371876573325>", + image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/7/77/Inspiration-of-Inclusion-Shop.png", + ts: { + eligible: false, + returned: false, + dates: [], + }, + tree: { + by: "π“ˆπ“Žπ“Šπ’Άπ“ƒ (syuan_syuan_) ", + total: "113 <:MoominCandles:1295299227332640858>", + image: + "https://media.discordapp.net/attachments/1295233556058210406/1295285445621448715/Image_6.jpeg?ex=670e1813&is=670cc693&hm=f6a269df85a6f8cbdfe9e00f90343b7c2b872b5b746b884a7262914e59974c78&=&format=webp&width=1091&height=1091", + }, + collectibles: [ + { + name: "Outfit", + type: "Outfit", + icon: "<:InspirationofInclusionOutfit:1295300513868419148>", + spPrice: "36 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The Outfit, (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/4/44/Inspiration-of-Inclusion-Outfit-front.png/revision/latest/scale-to-width-down/400?cb=20240927233639", + }, + { + description: "The Outfit, (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/e/e9/Inspiration-of-Inclusion-Outfit-back.png/revision/latest/scale-to-width-down/400?cb=20240927233641", + }, + ], + }, + { + name: "Scarf", + type: "Neck Accessory", + icon: "<:InspirationofInclusionNeckAccess:1295294371876573325>", + isSP: true, + images: [ + { + description: "The Scarf (Front)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/a/a1/Inspiration-of-Inclusion-Neck-Accessory-front.png/revision/latest/scale-to-width-down/400?cb=20240927002652", + }, + { + description: "The Scarf (Back)", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/a/a8/Inspiration-of-Inclusion-Neck-Accessory-back.png/revision/latest/scale-to-width-down/400?cb=20240927002653", + }, + ], + }, + { + name: "Hair Accessory", + type: "Hair Accessory", + icon: "<:InclusionHairAccessory:1295300872837922886>", + isSP: true, + images: [ + { + description: "The Accessory", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/b/b1/Inspiration-of-Inclusion-Hair-Accessory.png/revision/latest/scale-to-width-down/400?cb=20241002232709", + }, + ], + }, + { + name: "Grandfather Clock", + type: "Props", + icon: "<:InspirationofInclusionClockPropi:1295301238304538695>", + spPrice: "12 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The Clock", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/3/38/Inspiration-of-Inclusion-Clock-Prop.png/revision/latest/scale-to-width-down/400?cb=20240926041201", + }, + { + description: "On player's back", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/59/Duets-Poster-Props-Backpack.png/revision/latest/scale-to-width-down/400?cb=20240714065406", + }, + ], + }, + { + name: "Moomin Paintings", + type: "Props", + icon: "<:InspirationofInclusionPainting:1295301282659045447>", + spPrice: "20 <:MoominCandles:1295299227332640858>", + images: [ + { + description: "The Painting", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/6/65/Inspiration-of-Inclusion-Painting-Prop.png/revision/latest/scale-to-width-down/400?cb=20240927230149", + }, + { + description: "On player's back", + image: + "https://static.wikia.nocookie.net/sky-children-of-the-light/images/5/59/Duets-Poster-Props-Backpack.png/revision/latest/scale-to-width-down/400?cb=20240714065406", + }, + ], + }, + ], + }, +}; + +export default data; diff --git a/src/bot/libs/constants/spirits-datas/seasonal/8-dreams.ts b/src/bot/libs/constants/spirits-datas/seasonal/8-dreams.ts index 4e0efe95..522fa573 100644 --- a/src/bot/libs/constants/spirits-datas/seasonal/8-dreams.ts +++ b/src/bot/libs/constants/spirits-datas/seasonal/8-dreams.ts @@ -102,7 +102,7 @@ const data: Record = { name: "Peeking Postman", image: "https://static.wikia.nocookie.net/sky-children-of-the-light/images/8/8a/Dreams-Spirit-Peeking-Postman.png", type: "Seasonal Spirit", - realm: "Valley of triumph", + realm: "Valley of Triumph", season: "Dreams", ts: { eligible: true, diff --git a/src/bot/libs/constants/spirits-datas/type.d.ts b/src/bot/libs/constants/spirits-datas/type.d.ts index 21918d29..fc5700c7 100644 --- a/src/bot/libs/constants/spirits-datas/type.d.ts +++ b/src/bot/libs/constants/spirits-datas/type.d.ts @@ -23,7 +23,7 @@ interface Collectible { name: string; /** Type of this collectible */ - type?: CosmeticTypes; + type?: CollectibleTypes; /** Emoji icon of the collectible */ icon: string; @@ -70,7 +70,7 @@ interface BaseSpiritData { type: string; /** The realm where the spirit can be found, if any */ - realm?: string; + realm?: Realms; /** Icon that represents the spirit (only applied if the spirit doesn't have an expression) */ icon?: string; @@ -91,9 +91,42 @@ interface BaseSpiritData { collectibles?: Collectible[]; } +type Seasons = + | "Gratitude" + | "Lightseekers" + | "Belonging" + | "Rhythm" + | "Enchantment" + | "Sanctuary" + | "Prophecy" + | "Dreams" + | "Assembly" + | "The Little Prince" + | "Flight" + | "Abyss" + | "Performance" + | "Shattering" + | "Aurora" + | "Remembrance" + | "Passage" + | "Moments" + | "Revival" + | "Nine-Colored Deer" + | "Nesting" + | "Duets" + | "Moomin"; + +type Realms = + | "Isle of Dawn" + | "Daylight Prairie" + | "Hidden Forest" + | "Valley of Triumph" + | "Golden Wasteland" + | "Vault of Knowledge" + | "Aviary Village"; export interface SeasonalSpiritData extends BaseSpiritData { type: "Seasonal Spirit"; - season: string; + season: Seasons; current?: boolean; ts: { eligible: boolean; diff --git a/src/bot/structures/SkyHelper.ts b/src/bot/structures/SkyHelper.ts index 19a238d1..f1fdf5fe 100644 --- a/src/bot/structures/SkyHelper.ts +++ b/src/bot/structures/SkyHelper.ts @@ -412,6 +412,6 @@ export class SkyHelper extends Client { const option = command.options.find((o) => o.type === 1 && o.name === sub); if (!option) throw new Error(`THe provided command doesn't have any subcommand option with the name ${sub}`); } - return ``; } }