Custom Commands V3Flows ve editör
Custom Commands V3Beta

Botunun mantığı, adım adım

Flow, adımlardan oluşan bir listedir. Günün sorusu flow'u beş adımdır: kataloğu oku, sıradaki soruyu seç, paylaş, bir konu aç, say. Bir adım ekle, içine bir değer bağla, test et, sonra aç.

Günün sorusu

AktifKaydet

Tetikleyici

Değiştir

Zamanlama, her gün 09:00

#1

Depolama değerini al(get-storage-value)

Soru kataloğunu şuradan oku:{questions}

#2

Sıradaki kaydı seç(array-at)

Dünkünden sonraki

#3

Mesaj gönder(send-message)

Girdi parametreleri

Kanal:#general

Mesaj:Günün sorusu

#4

Konu aç(start-thread-from-message)

O mesajda bir konu aç

#5

Depolama değerini artır(increment-storage-value)

Soruyu şurada sorulmuş olarak say:{asked}

Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir

Bu beş adımın saat 09:00'da ürettiği sonuç

Beş adım tek bir mesaj üretir. Altındaki konu yanıtların toplandığı yerdir ve sayaç yarın sıradaki sorunun gelmesini sağlar.

general
Çevrimiçi
BotunBOT09:00

Günün sorusu

Ne kadar eski olursa olsun sürekli geri döndüğün tek oyun hangisi?

Soru 42 / 120

Mira09:04

Terraria. Her kış yeniden kuruyorum.

#general kanalına mesaj gönder

Yalnızca görsel amaçlıdır, gerçek arayüz ve davranış farklı olabilir

Betik değil, adımlar

Her adım katalogdan bir eylemdir ve kendi girdileri vardır; bir adımın ürettiği değer sonraki herhangi bir adıma bağlanabilir. Editör sana yalnızca uyan değerleri sunar. Bu seçicinin arkasında 691 eylem ve 181 parametre türü var.

Sabit değer, bağlı değişken veya şablon

Her girdi bu üçünden birini alır. Şablon, kendi yazdığın metni eklenen değişkenlerle karıştırır.

Değişken seçici türleri bilir

Uymayan değerleri gizler, nesne özelliklerinin içine iner, boş olabilecek değerler için uyarır ve senin için dönüştürme adımı ekleyebilir.

Bağlı değerler çip olarak görünür

Bu satırlardaki çipler soru kataloğu ve kanaldır; böylece bir değerin nereden geldiğini görürsün.

Her adımın bir maliyeti var

Ücretsizden Çok ağıra kadar, ve flow etkinleştirmeden önce sana en kötü senaryosunu gösterir.

Boş bir flow'dan başlamak zorunda değilsin. Pano, açıp değiştirebileceğin şablonlarla gelir: selamlama yanıtlayıcısı, yeni üyeleri karşılama, bir /warn komutu, bir /remind komutu, XP sistemi, öneriler ve etkinlik kaydı.

Günün sorusu

AktifKaydet

Tetikleyici

Değiştir

Zamanlama, her gün 09:00

#1

Depolama değerini al(get-storage-value)

Soru kataloğunu şuradan oku:{questions}

#2

Sıradaki kaydı seç(array-at)

Dünkünden sonraki

#3

Mesaj gönder(send-message)

Girdi parametreleri

Kanal:#general

Mesaj:Günün sorusu

#4

Konu aç(start-thread-from-message)

O mesajda bir konu aç

#5

Depolama değerini artır(increment-storage-value)

Soruyu şurada sorulmuş olarak say:{asked}

Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir

Dallar ve döngüler

Otomasyonlar karar gerektirir. If, Switch, Random branch ve Branch on subcommand flow'u böler; For each item, For each map entry ve Repeat listeleri ve haritaları Break ve Continue ile dolaşır; Discord hayır dediğinde toparlanma mantığını koyabileceğin bir yer için de Try bloğu vardır.

Her dalın kendi değişkenleri vardır

Bir dal içinde ayarlanan değer o dala aittir.

Dene, Hata olursa dalıyla

Hata koduna göre dallanabilir: Missing permissions, Not found, Invalid input, Storage error, Timeout, Interaction expired.

Durmanın doğru cevap olduğu yerde dur

Bu flow'daki If, boş bir soru paylaşmak yerine yetkili kanalına bir hatırlatma gönderir ve durur.

Kontrolden çıkan bir döngü kendi kendine durur; yani bir hata sabaha kadar çalışmak yerine durur.

Günün sorusu

AktifKaydet

Tetikleyici

Değiştir

Zamanlama, her gün 09:00

#1

Depolama değerini al(get-storage-value)

Soru kataloğunu şuradan oku:{questions}

#2

Eğer(if-condition)

Katalog boş: #staff'a hatırlatma gönder ve dur

#3

Her öğe için(for-each)

Kullanılmamış bir soru çıkana kadar kataloğu dolaş

#4

Mesaj gönder(send-message)

Soruyu embed olarak şuraya gönder:#general

#5

Konu aç(start-thread-from-message)

O mesajda bir konu aç

Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir

Flow'lar başka flow'ları çağırabilir ve beklemek bir adımdır

Bir davranışı bir kez yaz, ihtiyacın olan her yerden çağır. Bir flow devam etmeden önce yanıt beklediğinde bu bekleme bellekte tutulmaz, yazıya geçirilir; bu yüzden bot yeniden başlasa da kaybolmaz.

Başka bir flow'u çağır

Değerleri ver, sonuçları geri oku. Birbirini döngüsel çağıracak flow'lar reddedilir.

Çağrılan flow, çağıranın çalıştırmasına aittir

Çalıştırma geçmişi bunu söyler ve çağırana geri bağlantı verir. Özel olaylar daha gevşek bir yöntemdir: bir flow gönderir, bir diğeri dinler.

Beklemeler yeniden başlatmayı atlatır

Onay iste, seçim iste, bir mesajı bekle, form göster ve gönderimi bekle. Arada yeniden başlatma beklemeyi kaybettirmez.

Zamanlanmış çalıştırmalar

Schedule flow run, bir flow'un içinden sonraki bir çalıştırmayı planlar; bekleyenleri iptal etme ve listeleme eylemleri de vardır.

Birinin yanıtını bekleyen bir flow'u düzenlersen, o bekleyen çalıştırma durur ve günlük bunu söyler. Aylarca kullanılabilir kalması gereken bir şey için flow başlatan bir buton daha iyi bir araçtır: kimse tıklamadığı sürece hiçbir şeye mal olmaz ve asla süresi dolmaz.

Bir öneriyi incele

AktifKaydet

Tetikleyici

Değiştir

Form gönderildi, Bir soru öner

#1

Mesaj gönder(send-message)

Öneriyi bir Onayla butonuyla şuraya gönder:#staff

#2

Butonu bekle(wait-for-interaction)

Bir moderatör tıklayana kadar duraklat

#3

Depolama değeri ayarla(set-storage-value)

Soruyu şuraya ekle:{questions}

#4

Başka bir flow'u çağır(call-flow)

Günün sorusu, yeni soru argüman olarak

Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir

Yayına almadan önce gör

Test çalıştırması, flow'u kendi sunucu verisine karşı simüle eder. Hiçbir şey gönderilmez, değiştirilmez veya silinmez. Kim adına çalışacağını, hangi kanalda çalışacağını ve tetikleyicinin ona ne vereceğini sen seçersin; sonuç her adımı, yapacağı şeyle birlikte gösterir. Test etmek sunucuna hiçbir şeye mal olmaz.

Bir flow etkinleşmeden önce ayrıca kontrol edilir; bu yüzden sorun sabah dokuzda değil editörde çıkar. Kontrolden çıkan bir döngü de botunu çökertemez: kendi kendine durur.

Taslak veya aktif

Taslaklar kaydedilir ve kontrol edilir, ama asla çalışmaz.

Aktif bir flow'u kaydetmek hemen etki eder

Botun yeni sürümü kaydeder kaydetmez alır. Bu olmazsa zaten çalışan sürüm flow'u yürütmeye devam eder ve tekrar deneyebilirsin.

Hiçbir şey kazara kaybolmaz

Sen açıkken flow'u başka biri kaydettiyse, onun çalışmasının üzerine yazmak yerine bir uyarı alırsın. Silinen flow'lar ve modüller 30 gün boyunca geri yüklenebilir.

Net olması gereken bir şey: her adımı yalnızca test çalıştırmaları gösterir. Canlı bir çalıştırma durumunu, zamanlamasını ve başarısız olduğu adımı kaydeder, geçtiği her şeyi değil.

Test çalıştırması

Simüle edilmiş çalıştırma, hiçbir şey gönderilmedi

Depolama değerini al

Kataloğu oku, 120 kayıt

Sıradaki kaydı seç

Soru 42

Mesaj gönder

#general kanalına gönderirdi

Konu aç

O mesajda bir konu açardı

Depolama değerini artır

Sorulan sayaç 41'den 42'ye çıkardı

Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir

Flow'lar hakkında sorular

Birini bekleyen bir flow devam eder. Onay iste veya Mesajı bekle gibi beklemeler bellekte tutulmaz, yazıya geçirilir; bu yüzden yeniden başlatmayı atlatırlar. Bilmeye değer bir istisna: flow'u, bir çalıştırması beklerken düzenlersen o çalıştırma durur ve günlük bunu söyler.

Sunucunu betaya dahil etmek ister misin?

V3 büyük bir sistem ve hâlâ hızlı ilerliyor, o yüzden sunucular hepsi birden değil, tek tek giriyor. Her başvuruyu bir kişi okur ve birkaç gün içinde dönüş alırsın.

Betadaki sunucular, sıradaki yapacaklarımızın önemli bir kısmını belirliyor. Kurduğun şey senin: flow'lar ve modüller beta bittiğinde de kalır.