Tavo boto logika, žingsnis po žingsnio
Flow yra žingsnių sąrašas. Daily question flow turi penkis: perskaityk katalogą, pasirink kitą klausimą, paskelbk jį, atidaryk giją, suskaičiuok. Pridėk žingsnį, prijunk į jį reikšmę, išbandyk, tada įjunk.
Daily question
AktyvusIšsaugotiTrigeris
KeistiTvarkaraštis, kasdien 09:00
Gauti saugyklos reikšmę(get-storage-value)
Perskaityk klausimų katalogą iš{questions}
Pasirinkti kitą įrašą(array-at)
Tą, kuris eina po vakarykščio
Siųsti žinutę(send-message)
Įvesties parametrai
Kanalas:#general
Žinutė:Dienos klausimas
Sukurti giją(start-thread-from-message)
Atidaryk giją prie tos žinutės
Padidinti saugyklos reikšmę(increment-storage-value)
Pažymėk klausimą kaip užduotą lauke{asked}
Tik iliustracija – tikroji sąsaja gali skirtis
Ką tie penki žingsniai sukuria 09:00
Penki žingsniai sukuria vieną žinutę. Gija po ja yra vieta atsakymams, o skaitiklis pasirūpina, kad rytoj būtų kitas klausimas.
Tik iliustracija – tikroji sąsaja ir veikimas gali skirtis
Žingsniai, o ne kodas
Kiekvienas žingsnis yra vienas veiksmas iš katalogo su savomis įvestimis, o žingsnio sukurta reikšmė gali būti prijungta prie bet kurio vėlesnio žingsnio. Redaktorius siūlo tik tinkamas reikšmes. Už šio pasirinkimo stovi 691 veiksmas ir 181 parametro tipas.
Fiksuota reikšmė, prijungtas kintamasis arba šablonas
Kiekviena įvestis priima vieną iš trijų. Šablonas sujungia tavo tekstą su įterptais kintamaisiais.
Kintamųjų parinkiklis atpažįsta tipus
Jis paslepia netinkamas reikšmes, leidžiasi į objektų savybes, įspėja apie reikšmes, kurios gali būti tuščios, ir gali pats pridėti konvertavimo žingsnį.
Prijungtos reikšmės rodomos kaip žetonai
Žetonai šiose eilutėse yra klausimų katalogas ir kanalas, todėl matai, iš kur reikšmė atsirado.
Kiekvienas žingsnis turi kainą
Nuo Free iki Very heavy, o flow parodo blogiausią scenarijų prieš jį aktyvuojant.
Nereikia pradėti nuo tuščio flow. Valdymo skydelyje yra šablonų, kuriuos gali atidaryti ir keisti: pasisveikinimo atsakiklis, naujų narių pasveikinimas, /warn komanda, /remind komanda, XP sistema, pasiūlymai ir registracija į renginį.
Daily question
AktyvusIšsaugotiTrigeris
KeistiTvarkaraštis, kasdien 09:00
Gauti saugyklos reikšmę(get-storage-value)
Perskaityk klausimų katalogą iš{questions}
Pasirinkti kitą įrašą(array-at)
Tą, kuris eina po vakarykščio
Siųsti žinutę(send-message)
Įvesties parametrai
Kanalas:#general
Žinutė:Dienos klausimas
Sukurti giją(start-thread-from-message)
Atidaryk giją prie tos žinutės
Padidinti saugyklos reikšmę(increment-storage-value)
Pažymėk klausimą kaip užduotą lauke{asked}
Tik iliustracija – tikroji sąsaja gali skirtis
Šakos ir ciklai
Automatizavimui reikia sprendimų. If, Switch, Random branch ir Branch on subcommand skaido flow, For each item, For each map entry ir Repeat eina per sąrašus ir žemėlapius su Break ir Continue, o Try blokas suteikia vietą atkūrimui, kai Discord pasako ne.
Kiekviena šaka turi savo kintamuosius
Šakoje nustatyta reikšmė priklauso tai šakai.
Try su On error šaka
Ji gali šakotis pagal klaidos kodą: Missing permissions, Not found, Invalid input, Storage error, Timeout, Interaction expired.
Sustok ten, kur reikia sustoti
Šio flow If paskelbia priminimą personalo kanale ir sustoja, užuot skelbęs tuščią klausimą.
Pasileidęs ciklas sustoja pats, todėl klaida sustabdo darbą, o ne tęsiasi visą rytą.
Daily question
AktyvusIšsaugotiTrigeris
KeistiTvarkaraštis, kasdien 09:00
Gauti saugyklos reikšmę(get-storage-value)
Perskaityk klausimų katalogą iš{questions}
If(if-condition)
Katalogas tuščias: paskelbk priminimą #staff ir sustok
For each item(for-each)
Eik per katalogą, kol atsiras nepanaudotas klausimas
Siųsti žinutę(send-message)
Paskelbk klausimą kaip embed kanale#general
Sukurti giją(start-thread-from-message)
Atidaryk giją prie tos žinutės
Tik iliustracija – tikroji sąsaja gali skirtis
Flows gali kviesti kitus flows, o laukimas yra žingsnis
Parašyk elgesį vieną kartą ir kviesk jį iš bet kur. O kai flow prieš tęsiant reikia atsakymo, tas laukimas užrašomas, o ne laikomas atmintyje, todėl boto perkrovimas jo nepraranda.
Kviesk kitą flow
Perduok reikšmes ir perskaityk rezultatus. Flows, kurie vienas kitą kviestų ratu, atmetami.
Iškviestas flow priklauso kvietėjo paleidimui
Paleidimų istorija tai nurodo ir nuoroda veda atgal į kvietėją. Custom events yra laisvesnis variantas: vienas flow siunčia, kitas klauso.
Laukimai išlieka net po paleidimo iš naujo
Paprašyk patvirtinimo, paprašyk pasirinkimo, lauk žinutės, parodyk iššokantį langą ir lauk pateikimo. Perkrovimas pertraukoje laukimo nepraranda.
Suplanuoti paleidimai
Schedule flow run užsakys vėlesnį paleidimą iš flow vidaus, o yra ir veiksmų atšaukti bei išvardyti laukiančius.
Jei redaguoji flow, kol jo paleidimas kažko laukia, tas laukiantis paleidimas sustoja, ir žurnalas tai nurodo. Tam, kas turi likti naudojama mėnesius, geresnis įrankis yra mygtukas, paleidžiantis flow: kol niekas nespaudžia, jis nieko nekainuoja ir niekada nesibaigia.
Peržiūrėti pasiūlymą
AktyvusIšsaugotiTrigeris
KeistiIššokantis langas pateiktas: „Pasiūlyk klausimą“
Siųsti žinutę(send-message)
Paskelbk pasiūlymą su mygtuku Patvirtinti kanale#staff
Laukti mygtuko(wait-for-interaction)
Pristabdyk, kol moderatorius paspaus
Nustatyti saugyklos reikšmę(set-storage-value)
Pridėk klausimą į{questions}
Kviesti kitą flow(call-flow)
Daily question, su nauju klausimu kaip argumentu
Tik iliustracija – tikroji sąsaja gali skirtis
Pamatyk prieš paleisdamas
Bandomasis paleidimas imituoja flow su tavo paties serverio duomenimis. Nieko nesiunčiama, nekeičiama ir netrinama. Pasirenki, kieno vardu jis veikia, kuriame kanale ir ką jam perduoda trigeris, o rezultatas parodo kiekvieną žingsnį su tuo, ką jis būtų padaręs. Testavimas tavo serveriui nieko nekainuoja.
Flow taip pat tikrinamas prieš jam tampant aktyviam, todėl problema išlenda redaktoriuje, o ne devintą ryto. O pasileidęs ciklas negali nuversti tavo boto: jis sustoja pats.
Juodraštis ar aktyvus
Juodraščiai išsaugomi ir patikrinami, bet niekada nepaleidžiami.
Aktyvaus flow išsaugojimas pradeda veikti iškart
Tavo botas naują versiją pasiima vos išsaugojus. Jei tai nepavyksta, flow toliau tvarko jau veikusi versija ir gali bandyti dar kartą.
Nieko neprarandama atsitiktinai
Jei kas nors kitas išsaugojo flow, kol tu jį turėjai atidaręs, gauni įspėjimą, o ne perrašai jų darbą. Ištrintus flows ir modulius galima atkurti per 30 dienų.
Vieną dalyką reikia aiškiai pasakyti: kiekvieną žingsnį rodo tik bandomieji paleidimai. Tikras paleidimas užfiksuoja būseną, laiką ir žingsnį, kuriame nepavyko, bet ne viską, ką praėjo.
Bandomasis paleidimas
Imituotas paleidimas, nieko neišsiųstaGauti saugyklos reikšmę
Perskaitytas katalogas, 120 įrašų
Pasirinkti kitą įrašą
Klausimas 42
Siųsti žinutę
Būtų paskelbta #general
Sukurti giją
Būtų atidaryta gija prie tos žinutės
Padidinti saugyklos reikšmę
Užduotų klausimų skaitiklis pasikeistų iš 41 į 42
Tik iliustracija – tikroji sąsaja gali skirtis
Klausimai apie flows
Tas, kuris kažko laukia, taip. Laukimai, tokie kaip Ask for confirmation ar Wait for a message, užrašomi, o ne laikomi atmintyje, todėl išgyvena perkrovimą. Viena išimtis, kurią verta žinoti: jei redaguoji flow, kol jo paleidimas laukia, tas paleidimas sustoja, ir žurnalas tai nurodo.
Daugiau apie Custom Commands V3
Nori savo serverio beta programoje?
V3 yra didelė sistema ir vis dar sparčiai keičiasi, todėl serveriai priimami po vieną, o ne visi iš karto. Kiekvieną paraišką skaito žmogus, o atsakymą gauni per kelias dienas.
Jau beta programoje esantys serveriai nulemia nemažą dalį to, ką kursime toliau. Tai, ką sukuri, lieka tavo: flows ir moduliai išlieka, kai beta baigiasi.