@@ -3,7 +3,7 @@ import config from "../../data/config.json"
33import client from "../../main"
44import Command from "../../utils/Command"
55import { BotEmoji , Character , CharacterFull , CommandSource , SendMessage , Skill , TalentTable , TalentValue } from "../../utils/Types"
6- import { addArg , Bookmarkable , Colors , createTable , findFuzzyBestCandidates , getLinkToGuide , 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 , urlify } from "../../utils/Utils"
77
88
99const elementTypes = client . data . getCharacters ( )
@@ -195,6 +195,7 @@ Note: this command supports fuzzy search.`,
195195
196196 const embed = new MessageEmbed ( )
197197 . setTitle ( "Character list" )
198+ . setURL ( `${ client . data . baseURL } characters` )
198199 . setDescription ( pages [ relativePage ] )
199200 . setFooter ( `Page ${ currentPage } / ${ maxPages } - See '${ config . prefix } help char' for more info about what you can do` )
200201 . setColor ( Colors . GREEN )
@@ -223,6 +224,7 @@ Note: this command supports fuzzy search.`,
223224
224225 if ( relativePage == 0 ) {
225226 embed . setTitle ( `${ char . name } : Description` )
227+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } ` )
226228 . setDescription ( char . desc )
227229 . addField ( "Basics" , this . getBasicInfo ( char ) )
228230
@@ -323,6 +325,7 @@ Note: this command supports fuzzy search.`,
323325 metadata += `**Element**: ${ char . meta . element } \n`
324326
325327 embed . setTitle ( `${ char . name } : Information` )
328+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #meta` )
326329 . setDescription ( metadata . trim ( ) )
327330
328331 const va : string [ ] = [ ]
@@ -391,7 +394,8 @@ Note: this command supports fuzzy search.`,
391394 embed . addField ( `Ascension ${ asc . level } costs` , data . getCosts ( cost ) , true )
392395 }
393396
394- embed . setTitle ( `${ char . name } : Ascensions + stats` )
397+ embed . setTitle ( `${ char . name } : Stats + ascensions` )
398+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #stats` )
395399 . setDescription ( "Character stats:\n```\n" + createTable (
396400 [ "Lvl" , "Asc" , ...columns . map ( c => data . statName ( c ) ) ] ,
397401 rows ,
@@ -412,6 +416,7 @@ Note: this command supports fuzzy search.`,
412416 }
413417
414418 embed . setTitle ( `${ char . name } : Talent upgrade costs` )
419+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #talents` )
415420 . setColor ( Colors [ skills . ult ?. type ?? "None" ] )
416421 return embed
417422 }
@@ -420,12 +425,14 @@ Note: this command supports fuzzy search.`,
420425 }
421426
422427 getMediaPage ( char : Character , relativePage : number , currentPage : number , maxPages : number ) : MessageEmbed | undefined {
428+ const { data } = client
423429 const embed = new MessageEmbed ( )
424430 . setColor ( Colors [ char . meta . element ] ?? "" )
425431 . setFooter ( `Page ${ currentPage } / ${ maxPages } ` )
426432 . setTitle ( `${ char . name } ` )
433+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #videos` )
427434 if ( char . icon )
428- embed . setThumbnail ( `${ client . data . baseURL } ${ char . icon } ` )
435+ embed . setThumbnail ( `${ data . baseURL } ${ char . icon } ` )
429436
430437 const videos = char . media . videos ? ( `**Promotional Videos**
431438${ Object
@@ -447,19 +454,21 @@ ${ Object
447454 }
448455
449456 getCharTalentPage ( char : Character , relativePage : number , currentPage : number , maxPages : number , talentMode : TalentMode ) : MessageEmbed | undefined {
457+ const { data } = client
450458 const embed = new MessageEmbed ( )
451459 . setColor ( Colors [ char . meta . element ] ?? "" )
452460 . setFooter ( `Page ${ currentPage } / ${ maxPages } ` )
453461
454462 if ( char . icon )
455- embed . setThumbnail ( `${ client . data . baseURL } ${ char . icon } ` )
463+ embed . setThumbnail ( `${ data . baseURL } ${ char . icon } ` )
456464
457465 function isValueTable ( talent : TalentTable | TalentValue ) : talent is TalentTable {
458466 return ( talent as TalentTable ) . values != undefined
459467 }
460468
461469 function showTalent ( skill : Skill ) : void {
462470 embed . setTitle ( `${ char . name } : ${ skill . name } ` )
471+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #${ urlify ( skill . name , false ) } ` )
463472 . setDescription ( skill . desc )
464473
465474 if ( skill . charges )
@@ -525,6 +534,7 @@ ${ Object
525534
526535 if ( skills . passive && page ++ == relativePage ) {
527536 embed . setTitle ( `${ char . name } : Passives` )
537+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #${ urlify ( skills . passive [ 0 ] . name , false ) } ` )
528538 for ( const passive of skills . passive ) {
529539 if ( passive . minAscension )
530540 embed . addField ( passive . name , `${ passive . desc }
@@ -538,6 +548,7 @@ ${ Object
538548
539549 if ( skills . constellations && page ++ == relativePage ) {
540550 embed . setTitle ( `${ char . name } : Constellations` )
551+ . setURL ( `${ data . baseURL } characters/${ urlify ( char . name , false ) } #${ urlify ( skills . constellations [ 0 ] . name , false ) } ` )
541552 . setThumbnail ( `${ client . data . baseURL } ${ skills . constellations [ 0 ] ?. icon } ` )
542553 let c = 0
543554 for ( const constellation of skills . constellations )
0 commit comments