package Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . scene Ċ Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . Series Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . Sound File Extensions Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . adt . C ue Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . adt . Game Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . RS DE Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . discord . Changes Presence State Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . discord . Default Rich Presence Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . discord . Presence State Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . editor . Editor Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . gui . util .* Ċ import Ġio . github . chr is lo 2 7 . rh re 3 . s fx db . validation . Transform ers Ċ import Ġjavafx . event . EventHandler Ċ import Ġjavafx . geometry . Insets Ċ import Ġjavafx . geometry . Pos Ċ import Ġjavafx . scene . control .* Ċ import Ġjavafx . scene . layout . Border Pane Ċ import Ġjavafx . scene . layout . H Box Ċ import Ġjavafx . scene . layout . V Box Ċ import Ġjava . io . File ĊĊ Ċ class ĠStart New Pane ( val Ġapp : ĠRS DE ) Ġ: ĠBorder Pane (), ĠChanges Presence State Ġ{ ĊĊĠĠĠ Ġval Ġcontinue Button : ĠButton ĊĠĠĠ Ġval Ġgame ID Field : ĠTextField ĊĠĠĠ Ġval Ġerror Label : ĠLabel ĊĠĠĠ Ġval Ġadd C ues : ĠCheckBox ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġstyle sheets Ġ+= Ġ" style / edit Existing . css " ĊĠĠĠĠĠĠĠ Ġstyle sheets Ġ+= Ġ" style / start New . css " ĊĠĠĠĠĠĠĠ Ġval Ġbottom Ġ= ĠBorder Pane (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Start New Pane . bottom Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" bottom - box " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 1 . em )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbottom Left Ġ= ĠH Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . left Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 1 . em )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbottom Right Ġ= ĠH Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . right Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 1 . em )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtop Ġ= ĠH Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Start New Pane . top Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" top - h box " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 1 . em )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcentre Ġ= ĠH Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Start New Pane . center Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" centre - h box " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 0 , Ġ 2 . 0 . em , Ġ 0 . 0 , Ġ 2 . 0 . em )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtop . children Ġ+= ĠLabel (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" title " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Localized (" welcome . start New Game ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġback Button Ġ= ĠButton (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Localized (" opts . back ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Action Ġ= ĠEventHandler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . primary Stage . scene . root Ġ= ĠWelcome Pane ( app ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER _ LEFT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Left . children Ġ+= Ġback Button ĊĠĠĠĠĠĠĠ Ġcontinue Button Ġ= ĠButton (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Localized (" opts . continue ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER _ RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Disable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Right . children Ġ+= Ġcontinue Button ĊĊĠĠĠĠĠĠĠ Ġval Ġid Sel Box Ġ= ĠV Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" id - selector - box " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 0 , Ġ 2 . 0 . em , Ġ 0 . 0 , Ġ 2 . 0 . em )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġid Sel Box . children Ġ+= ĠLabel (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Localized (" edit Existing . choose Game ID ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Class Ġ+= Ġ" search - related " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap Text Property (). value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtooltip Ġ= ĠTooltip (). bind Localized (" edit Existing . choose Game ID . tooltip ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgame ID Field Ġ= ĠTextField (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Class Ġ+= Ġ" search - related " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġid Sel Box . children Ġ+= Ġgame ID Field ĊĠĠĠĠĠĠĠ Ġerror Label Ġ= ĠLabel (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Class Ġ+= Ġ" search Related " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap Text Property (). value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" error - label " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġid Sel Box . children Ġ+= Ġerror Label ĊĊĠĠĠĠĠĠĠ Ġval Ġoptions Box Ġ= ĠV Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" options - box " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBorder Pane . set Margin ( this , ĠIn sets ( 0 . 0 , Ġ 2 . 0 . em , Ġ 0 . 0 , Ġ 2 . 0 . em )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd C ues Ġ= ĠCheckBox (). bind Localized (" start New . add C ues "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Selected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Wrap Text Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoptions Box . children Ġ+= Ġadd C ues ĊĊĠĠĠĠĠĠĠ Ġcentre . children Ġ+= Ġid Sel Box ĊĠĠĠĠĠĠĠ Ġcentre . children Ġ+= ĠLabel (" â ŀ ¡ "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Class Ġ+= Ġ" arrow - label " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcentre . children Ġ+= Ġoptions Box ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Presence State (): ĠDefault Rich Presence Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPres ence State . Pre paring New Def . to Rich Presence Obj () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġgame ID Field . text Property (). addListener Ġ{ Ġ_, Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfailed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠGame ID Result . process Game ID ( newValue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ID Result . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Label . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ID Result . BLANK Ġ-> Ġerror Label . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ID Result . IL LEG AL Ġ-> Ġerror Label . text Ġ= ĠLocalization [" edit Existing . warning . il legal ID "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ID Result . DATA JSON _ EXISTS Ġ-> Ġerror Label . text Ġ= ĠLocalization [" start New . warning . json Exists "] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue Button . is Disable Ġ= Ġfailed ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontinue Button . setOn Action Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue Button . is Disable Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġgame ID Field . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Ġ= ĠRS DE . custom S FX Folder . resolve ( id . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfolder . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson File Ġ= Ġfolder . resolve (" data . json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠGame ( id , Ġid , ĠSeries . OTHER , Ġobjects Ġ= Ġmutable ListOf ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add C ues . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfolder . list Files Ġ{ Ġf : ĠFile Ġ-> Ġf . extension Ġin ĠSound File Extensions . VALUES . map Ġ{ Ġit . file Ext Ġ} Ġ}. forEach Ġ{ Ġf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame . objects . add ( C ue (" */ " Ġ+ Ġf . name Without Extension , Ġf . name Without Extension , Ġmutable ListOf (), Ġ"", Ġ 0 f , Ġfile Extension Ġ= Ġf . extension )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Handler . OBJECT _ MAP PER . writeValue ( json File , Ġgame ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . switch To Editor Pane Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Editor ( Editor ( folder , Ġthis )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠException Alert ( app , Ġe ). show And Wait () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠGame ID Result Ġ{ ĊĠĠĠĠĠĠĠ ĠSUCCESS , ĠBL ANK , ĠIL LEG AL , ĠDATA JSON _ EXISTS ; ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġprocess Game ID ( id : ĠString ): ĠGame ID Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . isBlank () Ġ-> ĠBL ANK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! Transform ers . GAME _ ID _ REGEX . matches ( id . trim ()) Ġ-> ĠIL LEG AL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRS DE . custom S FX Folder . resolve ( id . trim ()). resolve (" data . json "). exists () Ġ-> ĠDATA JSON _ EXISTS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSUCCESS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }