Skip to content

Commit abaa27f

Browse files
committed
Add links to guides in enemy
1 parent 8fa1947 commit abaa27f

9 files changed

Lines changed: 177 additions & 54 deletions

File tree

src/HuTaoClient.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ export default class HuTaoClient extends Discord.Client {
3939

4040
commands: Enmap<string, Command> = new Enmap()
4141
recentMessages: Discord.Message[] = []
42-
baseURL = "https://genshin.flatisjustice.moe/"
4342

4443
constructor() {
4544
super({

src/commands/artifacts/artifact.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,10 @@ Note: this command supports fuzzy search.`,
111111
}
112112

113113
getArti(set: Artifact, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
114-
const { data, baseURL } = client
114+
const { data } = client
115115
const embed = new MessageEmbed()
116116
.setColor(Colors.AQUA)
117-
.setThumbnail(`${baseURL}${set.artis.find(x => x.icon)?.icon ?? "img/unknown.png"}`)
117+
.setThumbnail(`${data.baseURL}${set.artis.find(x => x.icon)?.icon ?? "img/unknown.png"}`)
118118
.setFooter(`Page ${currentPage} / ${maxPages}`)
119119

120120
if (relativePage == 0) {
@@ -143,7 +143,7 @@ ${createTable(
143143
\`\`\`
144144
145145
*See \`${config.prefix}artifact-levels <main stat> [stars = 5]\` for more info about artifact main stats*`)
146-
.setThumbnail(`${baseURL}${arti.icon}`)
146+
.setThumbnail(`${data.baseURL}${arti.icon}`)
147147

148148
return embed
149149
}

src/commands/characters/character.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import config from "../../data/config.json"
33
import client from "../../main"
44
import Command from "../../utils/Command"
55
import { BotEmoji, Character, CharacterFull, CommandSource, SendMessage, Skill, TalentTable, TalentValue } from "../../utils/Types"
6-
import { addArg, Bookmarkable, Colors, createTable, findFuzzyBestCandidates, PAD_END, PAD_START, paginator, sendMessage, simplePaginator } from "../../utils/Utils"
6+
import { addArg, Bookmarkable, Colors, createTable, findFuzzyBestCandidates, getLinkToGuide, PAD_END, PAD_START, paginator, sendMessage, simplePaginator } from "../../utils/Utils"
77

88

99
const elementTypes = client.data.getCharacters()
@@ -213,13 +213,13 @@ Note: this command supports fuzzy search.`,
213213
}
214214

215215
getMainPage(char: Character, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
216-
const { data, baseURL } = client
216+
const { data } = client
217217
const embed = new MessageEmbed()
218218
.setColor(Colors[char.meta.element] ?? "")
219219
.setFooter(`Page ${currentPage} / ${maxPages}`)
220220

221221
if (char.icon)
222-
embed.setThumbnail(`${baseURL}${char.icon}`)
222+
embed.setThumbnail(`${data.baseURL}${char.icon}`)
223223

224224
if (relativePage == 0) {
225225
embed.setTitle(`${char.name}: Description`)
@@ -289,6 +289,11 @@ Note: this command supports fuzzy search.`,
289289
if (upgradeLines.length > 0)
290290
embed.addField("Upgrade material", upgradeLines.join("\n"))
291291

292+
const guides = client.data.getGuides("character", char.name).map(({ guide, page }) => getLinkToGuide(guide, page)).join("\n")
293+
294+
if (guides)
295+
embed.addField("Guides", guides)
296+
292297
return embed
293298
} else if (relativePage == 1) {
294299
let metadata = ""
@@ -355,10 +360,10 @@ Note: this command supports fuzzy search.`,
355360
}
356361

357362
getStatsPage(char: CharacterFull, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
358-
const { data, baseURL } = client
363+
const { data } = client
359364
const embed = new MessageEmbed()
360365
.setColor(Colors[char.meta.element] ?? "")
361-
.setThumbnail(`${baseURL}${char.icon}`)
366+
.setThumbnail(`${data.baseURL}${char.icon}`)
362367
.setFooter(`Page ${currentPage} / ${maxPages}`)
363368

364369
if (relativePage == 0) {
@@ -420,7 +425,7 @@ Note: this command supports fuzzy search.`,
420425
.setFooter(`Page ${currentPage} / ${maxPages}`)
421426
.setTitle(`${char.name}`)
422427
if (char.icon)
423-
embed.setThumbnail(`${client.baseURL}${char.icon}`)
428+
embed.setThumbnail(`${client.data.baseURL}${char.icon}`)
424429

425430
const videos = char.media.videos ? (`**Promotional Videos**
426431
${ Object
@@ -447,7 +452,7 @@ ${ Object
447452
.setFooter(`Page ${currentPage} / ${maxPages}`)
448453

449454
if (char.icon)
450-
embed.setThumbnail(`${client.baseURL}${char.icon}`)
455+
embed.setThumbnail(`${client.data.baseURL}${char.icon}`)
451456

452457
function isValueTable(talent: TalentTable | TalentValue): talent is TalentTable {
453458
return (talent as TalentTable).values != undefined
@@ -533,7 +538,7 @@ ${ Object
533538

534539
if (skills.constellations && page++ == relativePage) {
535540
embed.setTitle(`${char.name}: Constellations`)
536-
.setThumbnail(`${client.baseURL}${skills.constellations[0]?.icon}`)
541+
.setThumbnail(`${client.data.baseURL}${skills.constellations[0]?.icon}`)
537542
let c = 0
538543
for (const constellation of skills.constellations)
539544
embed.addField(`C${++c}: ${constellation.name}`, constellation.desc)

src/commands/misc/enemy.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import config from "../../data/config.json"
33
import client from "../../main"
44
import Command from "../../utils/Command"
55
import { CommandSource, Enemy, SendMessage } from "../../utils/Types"
6-
import { Bookmarkable, Colors, createTable, findFuzzyBestCandidates, PAD_END, PAD_START, paginator, sendMessage, simplePaginator } from "../../utils/Utils"
6+
import { Bookmarkable, Colors, createTable, findFuzzyBestCandidates, getLinkToGuide, PAD_END, PAD_START, paginator, sendMessage, simplePaginator } from "../../utils/Utils"
77

88
export default class EnemyCommand extends Command {
99
constructor(name: string) {
@@ -120,14 +120,18 @@ Note: this command supports fuzzy search.`,
120120
}
121121

122122
getMainEnemyPage(enemy: Enemy, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
123+
const guides = client.data.getGuides("enemy", enemy.name).map(({ guide, page }) => getLinkToGuide(guide, page)).join("\n")
123124
const embed = new MessageEmbed()
124125
.setTitle(`${enemy.name}: Basic info`)
125126
.setColor(Colors.AQUA)
126127
.setFooter(`Page ${currentPage} / ${maxPages}`)
127128
.setDescription(`**Type**: ${enemy.type ?? "Unknown"}${enemy.kind ? ` (${enemy.kind})` : ""}${enemy.notes ? `\n\n${enemy.notes}` : ""}`)
128129

130+
if (guides)
131+
embed.addField("Guides", guides)
132+
129133
if (enemy.icon)
130-
embed.setThumbnail(`${client.baseURL}${enemy.icon}`)
134+
embed.setThumbnail(`${client.data.baseURL}${enemy.icon}`)
131135

132136
if (enemy.resistance)
133137
embed.addField("Resistances", `\`\`\`\n${createTable(["Pyro", "Elec", "Cryo", "Hydro", "Anemo", "Geo", "Phys", "Notes"], enemy.resistance, [PAD_START, PAD_START, PAD_START, PAD_START, PAD_START, PAD_START, PAD_START, PAD_END])}\n\`\`\``)
@@ -143,7 +147,7 @@ Note: this command supports fuzzy search.`,
143147
.setDescription(enemy.desc ?? "Unavailable")
144148

145149
if (enemy.icon)
146-
embed.setThumbnail(`${client.baseURL}${enemy.icon}`)
150+
embed.setThumbnail(`${client.data.baseURL}${enemy.icon}`)
147151

148152
return embed
149153
}

src/commands/weapons/weapon.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,12 @@ Note: this command supports fuzzy search.`,
202202
}
203203

204204
getMainWeaponPage(weapon: Weapon, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
205-
const { data, baseURL } = client
205+
const { data } = client
206206
const hasRefinements = weapon.refinements && weapon.refinements.length > 0
207207
const embed = new MessageEmbed()
208208
.setTitle(`${weapon.name}: Basic info`)
209209
.setColor(Colors.AQUA)
210-
.setThumbnail(`${baseURL}${weapon.icon}`)
210+
.setThumbnail(`${data.baseURL}${weapon.icon}`)
211211
.setFooter(`Page ${currentPage} / ${maxPages}`)
212212
.setDescription(weapon.desc + (weapon.placeholder ? "\n\n*This weapon is currently not yet available.*" : ""))
213213
.addField("Basics", `${weapon.stars}${data.emoji(weapon.weaponType)}`, (weapon.placeholderStats && !weapon.weaponCurve) ? true : false)
@@ -244,10 +244,10 @@ Note: this command supports fuzzy search.`,
244244
}
245245

246246
getStatsWeaponPage(weapon: Weapon, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
247-
const { data, baseURL } = client
247+
const { data } = client
248248
const embed = new MessageEmbed()
249249
.setColor(Colors.AQUA)
250-
.setThumbnail(`${baseURL}${weapon.icon}`)
250+
.setThumbnail(`${data.baseURL}${weapon.icon}`)
251251
.setFooter(`Page ${currentPage} / ${maxPages}`)
252252

253253
const columns: string[] = []
@@ -290,7 +290,7 @@ Note: this command supports fuzzy search.`,
290290
getRefinementWeaponPage(weapon: Weapon, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
291291
const embed = new MessageEmbed()
292292
.setColor(Colors.AQUA)
293-
.setThumbnail(`${client.baseURL}${weapon.icon}`)
293+
.setThumbnail(`${client.data.baseURL}${weapon.icon}`)
294294
.setFooter(`Page ${currentPage} / ${maxPages}`)
295295

296296
embed.setTitle(`${weapon.name}: Refinements`)
@@ -303,7 +303,7 @@ Note: this command supports fuzzy search.`,
303303
getLoreWeaponPage(weapon: Weapon, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
304304
const embed = new MessageEmbed()
305305
.setColor(Colors.AQUA)
306-
.setThumbnail(`${client.baseURL}${weapon.icon}`)
306+
.setThumbnail(`${client.data.baseURL}${weapon.icon}`)
307307
.setFooter(`Page ${currentPage} / ${maxPages}`)
308308
.setTitle(`${weapon.name}: Lore`)
309309
.setDescription(weapon.lore ?? "Unavailable")
@@ -313,23 +313,23 @@ Note: this command supports fuzzy search.`,
313313
getArtWeaponPage(weapon: Weapon, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
314314
const embed = new MessageEmbed()
315315
.setColor(Colors.AQUA)
316-
.setThumbnail(`${client.baseURL}${weapon.icon}`)
316+
.setThumbnail(`${client.data.baseURL}${weapon.icon}`)
317317
.setFooter(`Page ${currentPage} / ${maxPages}`)
318318
.setTitle(`${weapon.name}: Base`)
319-
.setDescription(`[Open image in browser](${client.baseURL}${weapon.icon})`)
320-
.setImage(client.baseURL + weapon.icon)
319+
.setDescription(`[Open image in browser](${client.data.baseURL}${weapon.icon})`)
320+
.setImage(client.data.baseURL + weapon.icon)
321321
embed.thumbnail = null
322322
return embed
323323
}
324324

325325
getSecondArtWeaponPage(weapon: Weapon, relativePage: number, currentPage: number, maxPages: number): MessageEmbed | undefined {
326326
const embed = new MessageEmbed()
327327
.setColor(Colors.AQUA)
328-
.setThumbnail(`${client.baseURL}${weapon.awakenIcon}`)
328+
.setThumbnail(`${client.data.baseURL}${weapon.awakenIcon}`)
329329
.setFooter(`Page ${currentPage} / ${maxPages}`)
330330
.setTitle(`${weapon.name}: 2nd Ascension`)
331-
.setDescription(`[Open image in browser](${client.baseURL}${weapon.awakenIcon})`)
332-
.setImage(client.baseURL + weapon.awakenIcon)
331+
.setDescription(`[Open image in browser](${client.data.baseURL}${weapon.awakenIcon})`)
332+
.setImage(client.data.baseURL + weapon.awakenIcon)
333333
embed.thumbnail = null
334334
return embed
335335
}

0 commit comments

Comments
 (0)