لغة الكود
شرح الكتابة بالكود من الصفر بنفس صيغة قوالب YAGPDB.
افتح لوحة التحكمالأساس
النص العادي ينطبع كما هو، وأي شيء بين {{ }} كود.
أهلًا {{.User.Mention}}، أنت في {{.Guild.Name}}!" وليس المنسقة “ ”. والمحرر ينبهك عليها.المتغيرات
{{$count := 5}} تعريف أول مرة
{{$count = add $count 1}} تغيير القيمة
{{$count}} طباعتهااستدعاء الدوال
اسم الدالة ثم القيم بمسافات، بدون فواصل. والأقواس لدالة داخل دالة، و| يمرر النتيجة كآخر قيمة للدالة بعدها.
{{add 1 2}} → 3
{{mult 2 (add 1 2)}} → 6
{{.StrippedMsg | upper}} → النص بأحرف كبيرةالشروط
{{if eq .User.ID "123456789012345678"}}
أهلًا يا مدير
{{else if hasRoleID "223456789012345678"}}
أهلًا يا مميز
{{else}}
أهلًا
{{end}}المقارنة: eq يساوي، ne لا يساوي، lt أصغر، le أصغر أو يساوي، gt أكبر، ge أكبر أو يساوي. والربط: and وor وnot.
الحلقات
{{range $i, $word := .CmdArgs}}
{{add $i 1}}. {{$word}}
{{else}}
ما كتبت شيء
{{end}}
{{$n := 0}}
{{while lt $n 3}}{{$n = add $n 1}}{{end}}و{{break}} يطلع من الحلقة، و{{continue}} ينتقل للتكرار التالي.
القوائم والقواميس
{{$list := cslice "أ" "ب"}}
{{$list = $list.Append "ج"}}
{{index $list 0}}
{{$d := sdict "name" "سعد" "age" 20}}
{{$d.Set "city" "جدة"}}
{{$d.name}}
{{if $d.HasKey "age"}}موجود{{end}}مدخلات الأمر
.CmdArgs الكلمات بعد الأمر، و.StrippedMsg النص كاملًا. وparseArgs يتحقق من النوع، ويرد برسالة استخدام عند الخطأ.
{{$a := parseArgs 2 "" (carg "member" "العضو") (carg "int" "المبلغ" 1 100) (carg "string" "السبب")}}
{{($a.Get 0).Mention}} {{$a.Get 1}}
{{if $a.IsSet 2}}السبب: {{$a.Get 2}}{{end}}الأنواع: string وint وfloat وduration وuser وuserid وmember وchannel وrole. والرقم الأول عدد المدخلات الإجبارية.
الرسائل والـEmbed
أي نص يطبعه الكود يصير رد الأمر. وللـEmbed استخدم respond، وهي ترد بالطريقة الصحيحة في الرسالة والسلاش والزر.
{{respond (cembed "title" "العنوان" "description" "الوصف" "color" 0x5d6cff "fields" (cslice (sdict "name" "حقل" "value" "قيمة" "inline" true)))}}
{{$id := sendMessageRetID "CHANNEL_ID" "رسالة في قناة ثانية"}}
{{addMessageReactions "CHANNEL_ID" $id "👍"}}
{{respond (ccontainer "color" 0x5d6cff "text" "## عنوان\nنص" "buttons" (cbutton "label" "الموقع" "url" "https://hyvexbot.xyz"))}}mentionEveryone وmentionRoleID يفتحونه. ولا تمرر نص الأعضاء في دوال NoEscape، لأنهم يقدرون يسوون @everyone.الأخطاء
{{try}}
{{addRoleID "123"}}
{{catch}}
ما قدرت: {{.Error}}
{{end}}المحرر يعرض أخطاء الكتابة برقم السطر قبل الحفظ. وأخطاء التشغيل تظهر في صفحة الأوامر والسجل وقناة الأخطاء، وفي نفس القناة إذا فعّلت إظهار الأخطاء.
القوالب وتشغيل الأوامر
{{define "hello"}}أهلًا {{.}}{{end}}
{{template "hello" "سعد"}}
{{define "double"}}{{return mult . 2}}{{end}}
{{execTemplate "double" 4}}
{{execCC 2 nil 0 (sdict "n" 7)}} شغّل الأمر 2 الآن
{{scheduleUniqueCC 2 nil 3600 "key" "بيانات"}} بعد ساعةالبيانات تصل في .ExecData. وتشغيل أمر من أمر بدون تأخير له عمق مرتين فقط، وأقصى تأخير 30 يوم.
المسافات والتعليقات
{{/* تعليق ما ينطبع */}}
{{- ... -}} يشيل المسافات والأسطر حولهالفرق عن YAGPDB
- غير موجود: أوامر السلاش الفرعية، و
exec، وطلبات الإنترنت، ودوال المنتديات، وcreateTicket، وgetWarnings، وcomponentBuilder. - إضافات:
respondوccontainerوreplaceوreverseوtimeoutMemberوkickMemberوbanMemberوunbanMember. parseTimeأبسط، ويقرأ التواريخ المعتادة ويعتبرها UTC.