Custom Commands V3Flows og editoren
Custom Commands V3Beta

Logikken til boten din, steg for steg

Ein flow er ei liste med steg. Flowen Daily question er fem av dei: les katalogen, vel neste spørsmål, legg det ut, opne ein tråd, tel det. Legg til eit steg, kopl ein verdi inn i det, test det, og slå det så på.

Daily question

AktivLagre

Utløysar

Endre

Tidsplan, kvar dag klokka 09:00

#1

Hent lagringsverdi(get-storage-value)

Les spørsmålskatalogen frå{questions}

#2

Vel neste oppføring(array-at)

Den som kjem etter gårsdagens

#3

Send melding(send-message)

Inndataparametrar

Kanal:#general

Melding:Dagens spørsmål

#4

Opprett tråd(start-thread-from-message)

Opne ein tråd på den meldinga

#5

Auk lagringsverdi(increment-storage-value)

Tel spørsmålet som stilt i{asked}

Berre ei illustrasjon - faktisk grensesnitt kan avvike

Dette gir dei fem stega klokka 09:00

Dei fem stega lagar éi melding. Tråden under er der svara kjem inn, og teljaren sørgjer for at i morgon får neste spørsmål.

general
Pålogga
Boten dinBOT09:00

Dagens spørsmål

Kva er det eine spelet du heile tida vender attende til, uansett kor gammalt det blir?

Spørsmål 42 av 120

Mira09:04

Terraria. Eg installerer det på nytt kvar vinter.

Send melding til #general

Berre ei illustrasjon - faktisk grensesnitt og åtferd kan avvike

Steg, ikkje skript

Kvart steg er éi handling frå katalogen med sine eigne inndata, og verdien eit steg lagar kan koplast inn i kva som helst seinare steg. Editoren tilbyr deg berre verdiane som passar. Det ligg 691 handlingar og 181 parametertypar bak veljaren.

Fast verdi, kopla variabel eller mal

Alle inndata tek ein av dei tre. Ein mal blandar din eigen tekst med innsette variablar.

Variabelveljaren kjenner typane

Han skjuler verdiar som ikkje passar, går inn i objektegenskapar, åtvarar om verdiar som kan vere tomme, og kan leggje til eit konverteringssteg for deg.

Kopla verdiar dukkar opp som chips

Chipsane på desse radene er spørsmålskatalogen og kanalen, så du ser kvar ein verdi kjem frå.

Kvart steg har ein kostnad

Frå Free til Very heavy, og flowen viser deg det verste tilfellet før du aktiverer han.

Du treng ikkje starte med ein tom flow. Dashbordet har ferdige malar du kan opne og endre: ein helsingssvarar, velkomst av nye medlemmer, ein /warn-kommando, ein /remind-kommando, eit XP-system, forslag og påmelding til hendingar.

Daily question

AktivLagre

Utløysar

Endre

Tidsplan, kvar dag klokka 09:00

#1

Hent lagringsverdi(get-storage-value)

Les spørsmålskatalogen frå{questions}

#2

Vel neste oppføring(array-at)

Den som kjem etter gårsdagens

#3

Send melding(send-message)

Inndataparametrar

Kanal:#general

Melding:Dagens spørsmål

#4

Opprett tråd(start-thread-from-message)

Opne ein tråd på den meldinga

#5

Auk lagringsverdi(increment-storage-value)

Tel spørsmålet som stilt i{asked}

Berre ei illustrasjon - faktisk grensesnitt kan avvike

Greiner og løkker

Automatiseringar treng avgjerder. If, Switch, Random branch og Branch on subcommand deler opp flowen, For each item, For each map entry og Repeat går gjennom lister og map med Break og Continue, og ein Try-blokk gir deg ein stad å leggje gjenopprettinga når Discord seier nei.

Kvar grein har sine eigne variablar

Ein verdi som blir sett inne i ei gren, høyrer til den grena.

Try, med ei On error-grein

Han kan velje etter feilkoden: Missing permissions, Not found, Invalid input, Storage error, Timeout, Interaction expired.

Stopp der det er rett å stoppe

If-steget i denne flowen legg ut ei påminning i staff-kanalen og stoppar, i staden for å leggje ut eit tomt spørsmål.

Ei løkke som køyrer av garde, stoppar av seg sjølv, så ein feil stoppar i staden for å halde på heile morgonen.

Daily question

AktivLagre

Utløysar

Endre

Tidsplan, kvar dag klokka 09:00

#1

Hent lagringsverdi(get-storage-value)

Les spørsmålskatalogen frå{questions}

#2

If(if-condition)

Katalogen er tom: legg ut ei påminning i #staff og stopp

#3

For each item(for-each)

Gå gjennom katalogen til eit ubrukt spørsmål dukkar opp

#4

Send melding(send-message)

Legg ut spørsmålet som ein embed i#general

#5

Opprett tråd(start-thread-from-message)

Opne ein tråd på den meldinga

Berre ei illustrasjon - faktisk grensesnitt kan avvike

Flows kan kalle andre flows, og venting er eit steg

Skriv ei åtferd éin gong og kall henne frå kvar du treng ho. Og når ein flow treng eit svar før han held fram, er den ventinga skriven ned i staden for å liggje i minnet, så ein omstart av boten mistar henne ikkje.

Kall ein annan flow

Send verdiar inn og les resultat attende. Flows som ville ende opp med å kalle kvarandre i ring, blir avviste.

Ein kalla flow høyrer til køyringa til den som kallar

Køyrehistorikken seier det og lenkjer attende til den som kalla. Eigne hendingar er den lausare varianten: éin flow sender, ein annan lyttar.

Venting overlever ein omstart

Be om stadfesting, be om eit val, vent på ei melding, vis eit sprettoppvindauge og vent på innsendinga. Ein omstart undervegs mistar ikkje ventinga.

Planlagde køyringar

Schedule flow run bestiller ei seinare køyring frå innsida av ein flow, og det finst handlingar for å avbryte og liste det som ventar.

Viss du redigerer ein flow medan ei køyring av han ventar på nokon, stoppar den ventande køyringa, og loggen seier frå om det. For noko som skal vere brukande i fleire månader, er ein knapp som startar ein flow det betre verktøyet: han kostar ingenting så lenge ingen klikkar, og han går aldri ut.

Vurder eit forslag

AktivLagre

Utløysar

Endre

Sprettoppvindauge sendt inn, Suggest a question

#1

Send melding(send-message)

Legg ut forslaget med ein Godkjenn-knapp i#staff

#2

Vent på knapp(wait-for-interaction)

Pause til ein moderator klikkar

#3

Set lagringsverdi(set-storage-value)

Legg spørsmålet til i{questions}

#4

Kall ein annan flow(call-flow)

Daily question, med det nye spørsmålet som argument

Berre ei illustrasjon - faktisk grensesnitt kan avvike

Sjå det før du sender det ut

Ei testkøyring simulerer flowen mot dine eigne serverdata. Ingenting blir sendt, endra eller sletta. Du vel kven han køyrer som, kva kanal han køyrer i og kva utløysaren gir han, og resultatet viser kvart steg med det det ville ha gjort. Testing kostar serveren din ingenting.

Ein flow blir òg sjekka før han kan bli aktiv, så eit problem dukkar opp i editoren og ikkje klokka ni om morgonen. Og ei løkke som køyrer av garde kan ikkje ta ned boten din: ho stoppar seg sjølv.

Utkast eller aktiv

Utkast blir lagra og sjekka, og dei køyrer aldri.

Å lagre ein aktiv flow tek effekt med ein gong

Boten din tek i bruk den nye versjonen så snart du lagrar. Viss det ikkje går gjennom, held versjonen som allereie køyrde fram med å handtere flowen, og du kan prøve igjen.

Ingenting går tapt ved eit uhell

Viss nokon andre lagra flowen medan du hadde han open, får du ei åtvaring i staden for å overskrive arbeidet deira. Sletta flows og modular kan gjenopprettast i 30 dagar.

Éin ting bør vere klart: berre testkøyringar viser deg kvart steg. Ei live køyring registrerer statusen, tidsbruken og steget ho feila på, ikkje alt ho gjekk gjennom.

Testkøyring

Simulert køyring, ingenting vart sendt

Hent lagringsverdi

Les katalogen, 120 oppføringar

Vel neste oppføring

Spørsmål 42

Send melding

Ville ha lagt ut i #general

Opprett tråd

Ville ha opna ein tråd på den meldinga

Auk lagringsverdi

Teljaren for stilte spørsmål ville gå frå 41 til 42

Berre ei illustrasjon - faktisk grensesnitt kan avvike

Spørsmål om flows

Ein flow som ventar på nokon gjer det. Ventesteg som Ask for confirmation eller Wait for a message er skrivne ned i staden for å liggje i minnet, så dei overlever ein omstart. Eitt unntak det er greitt å kjenne til: viss du redigerer flowen medan ei køyring av han ventar, stoppar den køyringa, og loggen seier frå om det.

Vil du ha serveren din med i betaen?

V3 er eit stort system og det rører seg framleis raskt, så servarar kjem inn ein om gongen i staden for alle på ein gong. Kvar søknad blir lesen av ein person, og du høyrer frå oss innan nokre få dagar.

Servarane som alt er med i betaen, avgjer ein god del av det vi byggjer vidare. Det du byggjer er ditt: flows og modular blir verande når betaen er over.