Skip to content

Commit 65b6979

Browse files
committed
Add support for artifact & weapon guide links
1 parent 403aa83 commit 65b6979

5 files changed

Lines changed: 28 additions & 11 deletions

File tree

src/commands/artifacts/artifact.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { AutocompleteInteraction, CommandInteraction, Message, MessageEmbed } fr
22

33
import Command from "../../utils/Command"
44
import client from "../../main"
5-
import { Colors, createTable, findFuzzyBestCandidates, sendMessage, simplePaginator } from "../../utils/Utils"
5+
import { Colors, createTable, findFuzzyBestCandidates, getLinkToGuide, sendMessage, simplePaginator } from "../../utils/Utils"
66
import { Artifact, CommandSource, SendMessage } from "../../utils/Types"
77
import config from "../../data/config.json"
88

@@ -125,6 +125,12 @@ Note: this command supports fuzzy search.`,
125125
.addField("Possible levels", set.levels.map(k => k + "★").join(", "))
126126
.setDescription(`This set contains ${set.artis.length} artifacts`)
127127

128+
129+
const guides = client.data.getGuides("artifact", set.name).map(({ guide, page }) => getLinkToGuide(guide, page)).join("\n")
130+
131+
if (guides)
132+
embed.addField("Guides", guides)
133+
128134
return embed
129135
}
130136

src/commands/weapons/weapon.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { AutocompleteInteraction, CommandInteraction, Message, MessageEmbed } fr
22

33
import Command from "../../utils/Command"
44
import client from "../../main"
5-
import { addArg, Bookmarkable, Colors, createTable, findFuzzyBestCandidates, PAD_START, paginator, sendMessage, simplePaginator } from "../../utils/Utils"
5+
import { addArg, Bookmarkable, Colors, createTable, findFuzzyBestCandidates, getLinkToGuide, PAD_START, paginator, sendMessage, simplePaginator } from "../../utils/Utils"
66
import { CommandSource, SendMessage, Weapon } from "../../utils/Types"
77
import config from "../../data/config.json"
88

@@ -240,6 +240,13 @@ Note: this command supports fuzzy search.`,
240240
weapon.ascensionCosts.mapping.EnemyDropTierA1,
241241
weapon.ascensionCosts.mapping.EnemyDropTierB1,
242242
].map(i => data.emoji(i)).join("")}`)
243+
244+
245+
const guides = client.data.getGuides("weapon", weapon.name).map(({ guide, page }) => getLinkToGuide(guide, page)).join("\n")
246+
247+
if (guides)
248+
embed.addField("Guides", guides)
249+
243250
return embed
244251
}
245252

src/data/guides.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@
223223
"name": "Elite Enemies",
224224
"pages": [
225225
{
226-
"name": "Fatui Pyro Agent (Insignia and Knives)",
226+
"name": "Fatui Pyro Agent (Knives and Insignia)",
227227
"desc": "**Fatui Pyro Agents ${Fatui Pyro Agent}** are Elite Enemies found in Liyue and Inazuma. They are members of the Fatui and drop **Hunter's Sacrificial Knife ${Hunter's Sacrificial Knife}**, **Agent's Sacrificial Knife ${Agent's Sacrificial Knife}**, **Inspector's Sacrificial Knife ${Inspector's Sacrificial Knife}**, **Recruit's Insignia ${Recruit's Insignia}**, **Sergeant's Insignia ${Sergeant's Insignia}** and **Lieutenant's Insignia ${Lieutenant's Insignia}**.",
228228
"img": "https://cdn.discordapp.com/attachments/925462737876828190/925462814653579284/Agents.png",
229229
"credits": "Soul",
@@ -233,7 +233,7 @@
233233
}
234234
},
235235
{
236-
"name": "Fatui Cicin Mages (Mist Grass Pollen, Mist Grass and Mist Grass Wick)",
236+
"name": "Fatui Cicin Mages (Mist Grass and Insignia)",
237237
"desc": "**Fatui Cicin Mages ${Fatui Electro Cicin Mage}${Fatui Cryo Cicin Mage}** are Elite Enemies found wandering by themselves. They are members of the Fatui and drop **Mist Grass Pollen ${Mist Grass Pollen}**, **Mist Grass ${Mist Grass}**, **Mist Grass Wick ${Mist Grass Wick}**, **Recruit's Insignia ${Recruit's Insignia}**, **Sergeant's Insignia ${Sergeant's Insignia}** and **Lieutenant's Insignia ${Lieutenant's Insignia}**.",
238238
"img": "https://cdn.discordapp.com/attachments/927679751987028018/927679779409363055/unknown.png",
239239
"credits": "Soul",

src/utils/DataManager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import log4js from "log4js"
22
import { exists, unlink, move, writeFile, existsSync, readFileSync } from "fs-extra"
33
import { join } from "path"
44

5-
import { Artifact, ArtifactType, MainStatInfo, Character, BotEmoji, Store, Weapon, Cost, AbyssSchedule, AbyssFloor, Event, PaimonShop, Guide, CharacterFull, CostTemplate, Enemy, GuidePage, Material } from "./Types"
5+
import { Artifact, ArtifactType, MainStatInfo, Character, BotEmoji, Store, Weapon, Cost, AbyssSchedule, AbyssFloor, Event, PaimonShop, Guide, CharacterFull, CostTemplate, Enemy, GuidePage, Material, GuideLinks } from "./Types"
66
import { findFuzzy } from "./Utils"
77

88
import artifactsData from "../data/gamedata/artifacts.json"
@@ -208,7 +208,7 @@ export default class DataManager {
208208
return undefined
209209
}
210210

211-
getGuides(type: "enemy" | "character" | "material", name: string): { guide: Guide, page: GuidePage }[] {
211+
getGuides(type: keyof GuideLinks, name: string): { guide: Guide, page: GuidePage }[] {
212212
return this.guides
213213
.flatMap(guide => guide.pages
214214
.filter(page => page.links?.[type]?.includes(name))

src/utils/Types.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -595,9 +595,13 @@ export interface GuidePage {
595595
desc?: string
596596
url?: string
597597
credits: string
598-
links?: {
599-
material?: string[]
600-
enemy?: string[]
601-
character?: string[]
602-
}
598+
links?: GuideLinks
599+
}
600+
601+
export interface GuideLinks {
602+
material?: string[]
603+
weapon?: string[]
604+
artifact?: string[]
605+
enemy?: string[]
606+
character?: string[]
603607
}

0 commit comments

Comments
 (0)