Custom Commands V3Flows ir redaktorius
Custom Commands V3Beta

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šsaugoti

Trigeris

Keisti

Tvarkaraštis, kasdien 09:00

#1

Gauti saugyklos reikšmę(get-storage-value)

Perskaityk klausimų katalogą iš{questions}

#2

Pasirinkti kitą įrašą(array-at)

Tą, kuris eina po vakarykščio

#3

Siųsti žinutę(send-message)

Įvesties parametrai

Kanalas:#general

Žinutė:Dienos klausimas

#4

Sukurti giją(start-thread-from-message)

Atidaryk giją prie tos žinutės

#5

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.

general
Prisijungęs
Tavo botasBOTAS09:00

Dienos klausimas

Koks yra vienas žaidimas, prie kurio vis grįžti, nesvarbu, kiek jis senas?

Klausimas 42 iš 120

Mira09:04

Terraria. Kiekvieną žiemą ją įsidiegiu iš naujo.

Rašyti #general

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šsaugoti

Trigeris

Keisti

Tvarkaraštis, kasdien 09:00

#1

Gauti saugyklos reikšmę(get-storage-value)

Perskaityk klausimų katalogą iš{questions}

#2

Pasirinkti kitą įrašą(array-at)

Tą, kuris eina po vakarykščio

#3

Siųsti žinutę(send-message)

Įvesties parametrai

Kanalas:#general

Žinutė:Dienos klausimas

#4

Sukurti giją(start-thread-from-message)

Atidaryk giją prie tos žinutės

#5

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šsaugoti

Trigeris

Keisti

Tvarkaraštis, kasdien 09:00

#1

Gauti saugyklos reikšmę(get-storage-value)

Perskaityk klausimų katalogą iš{questions}

#2

If(if-condition)

Katalogas tuščias: paskelbk priminimą #staff ir sustok

#3

For each item(for-each)

Eik per katalogą, kol atsiras nepanaudotas klausimas

#4

Siųsti žinutę(send-message)

Paskelbk klausimą kaip embed kanale#general

#5

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šsaugoti

Trigeris

Keisti

Iššokantis langas pateiktas: „Pasiūlyk klausimą“

#1

Siųsti žinutę(send-message)

Paskelbk pasiūlymą su mygtuku Patvirtinti kanale#staff

#2

Laukti mygtuko(wait-for-interaction)

Pristabdyk, kol moderatorius paspaus

#3

Nustatyti saugyklos reikšmę(set-storage-value)

Pridėk klausimą į{questions}

#4

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ųsta

Gauti 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.

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.