Custom Commands V3Flow-k és a szerkesztő
Custom Commands V3Béta

A botod logikája, lépésről lépésre

A flow lépések listája. A Napi kérdés flow öt lépésből áll: a katalógus beolvasása, a következő kérdés kiválasztása, közzététele, szál nyitása, számolás. Adj hozzá egy lépést, kösd be az értéket, teszteld, majd kapcsold be.

Napi kérdés

AktívMentés

Trigger

Módosítás

Ütemezés, minden nap 09:00-kor

#1

Tárhelyérték lekérése(get-storage-value)

A kérdéskatalógus beolvasása innen:{questions}

#2

A következő bejegyzés kiválasztása(array-at)

A tegnapit követő

#3

Üzenet küldése(send-message)

Bemeneti paraméterek

Csatorna:#general

Üzenet:A nap kérdése

#4

Szál létrehozása(start-thread-from-message)

Szál nyitása azon az üzeneten

#5

Tárhelyérték növelése(increment-storage-value)

A kérdés megjelölése feltettként itt:{asked}

Csak illusztráció - a tényleges felület eltérhet

Amit ez az öt lépés 09:00-kor létrehoz

Az öt lépés egy üzenetet hoz létre. Az alatta lévő szálban gyűlnek a válaszok, a számláló pedig gondoskodik róla, hogy holnap a következő kérdés jöjjön.

general
Online
A botodBOT09:00

A nap kérdése

Melyik az az egy játék, amelyhez újra meg újra visszatérsz, akármilyen régi is lesz?

42. kérdés a 120-ból

Mira09:04

Terraria. Minden télen újratelepítem.

Üzenet: #general

Csak illusztráció - a tényleges felület és működés eltérhet

Lépések, nem szkriptek

Minden lépés egy akció a katalógusból, saját bemenetekkel, és a lépés által előállított érték bármelyik későbbi lépésbe bekötható. A szerkesztő mindig csak a megfelelő értékeket kínálja fel. A választó mögött 691 akció és 181 paramétertípus áll.

Rögzített érték, bekötött változó vagy sablon

Minden bemenet a három közül egyet fogad el. A sablon a saját szövegedet keveri a beillesztett változókkal.

A változóválasztó típusérzékeny

Elrejti az oda nem illő értékeket, belefúr az objektumok tulajdonságaiba, figyelmeztet az üresen maradható értékekre, és konverziós lépést is hozzáadhat helyetted.

A bekötött értékek chipként jelennek meg

Ezeken a soron lévő chipek a kérdéskatalógus és a csatorna, így látod, honnan jött egy érték.

Minden lépésnek ára van

Az Ingyenestől a Nagyon nehézig, és a flow az aktiválás előtt megmutatja a legrosszabb esetet.

Nem kell üres flow-ból indulnod. Az irányítópult sablonokkal érkezik, amelyeket megnyithatsz és módosíthatsz: üdvözlőválaszoló, új tagok üdvözlése, /warn parancs, /remind parancs, XP-rendszer, javaslatok és eseményjelentkezés.

Napi kérdés

AktívMentés

Trigger

Módosítás

Ütemezés, minden nap 09:00-kor

#1

Tárhelyérték lekérése(get-storage-value)

A kérdéskatalógus beolvasása innen:{questions}

#2

A következő bejegyzés kiválasztása(array-at)

A tegnapit követő

#3

Üzenet küldése(send-message)

Bemeneti paraméterek

Csatorna:#general

Üzenet:A nap kérdése

#4

Szál létrehozása(start-thread-from-message)

Szál nyitása azon az üzeneten

#5

Tárhelyérték növelése(increment-storage-value)

A kérdés megjelölése feltettként itt:{asked}

Csak illusztráció - a tényleges felület eltérhet

Elágazások és ciklusok

Az automatizálásokhoz döntések kellenek. Az If, a Switch, a Random branch és a Branch on subcommand elágaztatja a flow-t, a For each item, For each map entry és Repeat a listákat és térképeket járja be Break és Continue segítségével, a Try blokk pedig helyet ad a helyreállításnak, ha a Discord nemet mond.

Minden elágazásnak saját változói vannak

Az elágazáson belül beállított érték az elágazáshoz tartozik.

Try, On error ággal

A hibakód alapján tud ágazni: Hiányzó jogosultságok, Nem található, Érvénytelen bemenet, Tárhelyhiba, Időtúllépés, Lejárt interakció.

Állj meg ott, ahol a megállás a helyes válasz

Az If ebben a flow-ban emlékeztetőt posztol a staff csatornába, és megáll, ahelyett hogy üres kérdést tenne közzé.

Az elszabadult ciklus magától megáll, így egy hiba megállít, ahelyett hogy egész délelőtt futna.

Napi kérdés

AktívMentés

Trigger

Módosítás

Ütemezés, minden nap 09:00-kor

#1

Tárhelyérték lekérése(get-storage-value)

A kérdéskatalógus beolvasása innen:{questions}

#2

If(if-condition)

A katalógus üres: emlékeztető a #staff csatornába, majd megállás

#3

For each item(for-each)

Végigjárja a katalógust, amíg elő nem kerül egy fel nem használt kérdés

#4

Üzenet küldése(send-message)

A kérdés közzététele beágyazásként itt:#general

#5

Szál létrehozása(start-thread-from-message)

Szál nyitása azon az üzeneten

Csak illusztráció - a tényleges felület eltérhet

A flow-k hívhatnak más flow-kat, és a várakozás is egy lépés

Írj meg egy viselkedést egyszer, és hívd meg, ahonnan csak kell. És amikor egy flow-nak válasz kell a folytatáshoz, ez a várakozás le van írva, nem a memóriában tartva, így egy bot-újraindítás nem veszíti el.

Másik flow hívása

Adj át értékeket, és olvasd vissza az eredményeket. Az egymást körbe hívó flow-kat a rendszer elutasítja.

A hívott flow a hívó futásához tartozik

A futási előzmények ezt jelzik, és linkelnek vissza a hívóra. Az egyedi események lazább változatot adnak: az egyik flow küld, a másik figyel.

A várakozások túlélik az újraindítást

Kérj megerősítést, kérj választást, várj egy üzenetre, mutass egy felugró ablakot, és várd meg a beküldést. A közbeeső újraindítás nem veszíti el a várakozást.

Időzített futtatások

A Schedule flow run egy későbbi futtatást foglal le egy flow-n belülről, és vannak akciók a függőben lévők törlésére és listázására.

Ha úgy szerkesztesz egy flow-t, hogy egy futása éppen valakire vár, az a várakozó futás leáll, és a napló ezt jelzi. Olyasmihez, aminek hónapokig használhatónak kell maradnia, jobb eszköz egy gomb, amely elindít egy flow-t: nem kerül semmibe, amíg senki sem kattint rá, és sosem jár le.

Javaslat elbírálása

AktívMentés

Trigger

Módosítás

Felugró ablak beküldve, Javasolj egy kérdést

#1

Üzenet küldése(send-message)

A javaslat közzététele Jóváhagyás gombbal itt:#staff

#2

Várakozás gombra(wait-for-interaction)

Szünet, amíg egy moderátor rá nem kattint

#3

Tárhelyérték beállítása(set-storage-value)

A kérdés hozzáadása ehhez:{questions}

#4

Másik flow hívása(call-flow)

Napi kérdés, az új kérdéssel argumentumként

Csak illusztráció - a tényleges felület eltérhet

Nézd meg, mielőtt élesbe viszed

A tesztfuttatás a flow-t a saját szerveradataiddal szimulálja. Semmi sem megy ki, semmi sem módosul vagy törlődik. Te döntöd el, ki nevében fut, melyik csatornában, és mit ad át neki a trigger, az eredmény pedig minden lépést megmutat azzal, hogy mit tett volna. A tesztelés semmibe sem kerül a szervernek.

A flow-t az aktívvá válás előtt is ellenőrzi a rendszer, így a hiba a szerkesztőben derül ki, nem reggel kilenckor. Az elszabadult ciklus pedig nem tudja letenni a botodat: magától megáll.

Piszkozat vagy aktív

A piszkozatokat elmenti és ellenőrzi a rendszer, de soha nem futnak.

Az aktív flow mentése azonnal életbe lép

A botod mentés után rögtön átveszi az új verziót. Ha ez nem sikerül, a már futó verzió kezeli tovább a flow-t, és újra próbálkozhatsz.

Véletlenül semmi sem vész el

Ha valaki más mentette a flow-t, miközben te nyitva tartottad, figyelmeztetést kapsz ahelyett, hogy felülírnád a munkáját. A törölt flow-k és modulok 30 napig visszaállíthatók.

Egy dolgot érdemes tisztázni: csak a tesztfuttatások mutatják meg az összes lépést. Az éles futás az állapotát, az időzítését és a lépést rögzíti, ahol elbukott, nem mindent, amin átment.

Tesztfuttatás

Szimulált futtatás, nem ment ki semmi

Tárhelyérték lekérése

A katalógus beolvasása, 120 bejegyzés

A következő bejegyzés kiválasztása

42. kérdés

Üzenet küldése

A #general csatornában tette volna közzé

Szál létrehozása

Szálat nyitott volna az üzeneten

Tárhelyérték növelése

A feltett kérdések számlálója 41-ről 42-re ugrana

Csak illusztráció - a tényleges felület eltérhet

Kérdések a flow-król

Az a flow igen, amely valakire vár. Az olyan várakozások, mint a Megerősítés kérése vagy az Üzenetre várás, le vannak írva, nem a memóriában vannak tartva, így túlélik az újraindítást. Egy kivétel, amit érdemes tudni: ha szerkeszted a flow-t, miközben egy futása vár, az a futás leáll, és a napló ezt jelzi.

Szeretnéd a szervered a bétában?

A V3 nagy rendszer, és még gyorsan változik, ezért a szerverek egyesével érkeznek, nem egyszerre. Minden jelentkezést ember olvas el, és pár napon belül visszajelzünk.

A bétában lévő szerverek döntik el nagyrészt, mit építünk legközelebb. Amit megépítesz, az a tiéd: a flow-k és a modulok a béta végén is megmaradnak.