Skip to content

自訂指令 ​

前往後台的「指令管理 → 自訂指令」,新增指令名稱與回覆內容,再設定使用權限、冷卻時間及直播狀態限制。

例如回覆內容可以寫成:

text
哈囉 {user},你輸入的內容是:{args}

自訂指令目前支援 {command}、{args}、{user}、{user_id} 與 {login}。完整定義請查看系統變數參考。

需要依條件切換文字、計算數字或隨機選擇內容時,可以使用安全版 $(eval ...)。完整語法與限制請查看進階運算式。

在聊天室管理指令 ​

實況主、mod 與主要 mod 可以直接在聊天室管理自訂指令。新增、修改、刪除各有獨立的權限設定,預設 mod,也可限制為主要 mod 或實況主。一般觀眾、VIP 與訂閱者無法新增、修改或刪除,這項管理權限不受 !commands 的查詢權限設定影響。

操作完整用法預設內建縮寫範例
新增!commands add !指令 回覆內容!addcom !指令 回覆內容!addcom !晚安 晚安,祝你好夢!
修改!commands edit !指令 新回覆內容!editcom !指令 新回覆內容!editcom !晚安 晚安,我們下次見!
刪除!commands delete !指令!delcom !指令!delcom !晚安

預設內建縮寫可直接使用,不需要新增自訂指令;權限與參數處理和對應完整語法相同。設定位置與詳細說明見內建操作縮寫。

直接輸入 !commands 仍會取得公開指令清單。管理操作完成後立即生效,也會反映在後台「自訂指令」頁;已開啟的頁面請重新載入查看。

管理操作遵守 !commands 的總開關,以及該操作自己的啟用狀態、訊息發送模式與冷卻時間;不同操作的設定互不影響。同一操作的完整指令與縮寫共用冷卻,停用、發送時機不符或冷卻中時不會執行。

新增沿用後台預設設定。修改只更新回覆內容,保留啟用狀態、使用權限、縮寫、發送模式與冷卻時間。修改與刪除請使用自訂指令本名;無法操作內建指令。指令名稱最多 20 字、回覆模板最多 4,096 字,每個頻道最多 50 個自訂指令。名稱不可與既有指令或縮寫重複。

回覆可使用本系統的變數與安全運算式。這裡採用 Nightbot 的基本管理語法;不支援 Nightbot 的 -ul、-cd、-a 參數,進階設定請到後台調整。

取得外部 API 文字(URL Fetch) ​

自訂指令與定時發話共用相同的文字模板處理;兩者都可填入固定的公開 HTTPS 網址:

text
$(urlfetch https://api.example.com/status)

以上網址僅供示意,請替換成你要使用的公開文字 API 網址。

呼叫指令或定時發話到期時,機器人會取得 API 的純文字回應並送到聊天室;前後可加固定文字或一般回覆變數。 每個回覆最多一個 URL Fetch,可與 $(eval ...) 或 $(let ...) 混用。不支援 JSON、動態網址或 $(querystring ...)。

需要處理取得的文字時,在運算式內使用 urlfetch("固定 HTTPS 網址"),網址須加引號。例如 API 回傳 Rank: 9,250 RP,以下會回覆 9,250 RP:

text
$(let text = urlfetch("https://api.example.com/status"))$(eval after(text, "Rank: "))

也可直接寫 $(eval upper(urlfetch("https://api.example.com/status"))),將取得的文字轉為大寫。使用 let 保存後可以重複讀取,不會再次連線。原有 $(urlfetch https://...) 寫法仍可使用。

每則回覆中的兩種寫法合計只能出現一次取用;網址只能是固定字串,不能用 {args}、區域變數或字串串接產生。系統先取得文字,再計算運算式,因此即使 urlfetch() 位於未選中的條件分支仍會連線;取得失敗或運算失敗時整則回覆不發送。

網址只允許 HTTPS 443,不能包含帳密或 fragment。任何公開網域都可使用,但本機、內網與特殊 IP 會被阻擋,重新導向不會跟隨。請使用不需要機密金鑰的公開查詢 API;指令內容不是秘密儲存空間。

只接受 HTTP 200 的 text/plain 或 text/html 回應(部分文字 API 會標成 HTML),兩者一律當純文字,不解析 HTML。不傳送平台 Cookie、權杖或使用者標頭。請求總逾時為 3 秒,回應上限 16 KiB,回覆最多取前 400 字。自訂指令與定時發話共用每頻道限流,至少間隔 5 秒,另受每個服務程序最多 8 個同時請求、每分鐘 60 次的限制;原本的指令權限與冷卻仍生效。

失敗、逾時或限流時不發送部分回覆。API 回傳的 HTML、變數與指令都只視為文字,不會執行,也不會轉呼叫其他指令;以 / 或 . 開頭的最終回覆不發送。一般後台預覽不會抓取 API,只有實際呼叫自訂指令或定時發話到期執行才會連線。

用短指令呼叫另一個指令 ​

將自訂指令的回覆設為另一個指令,例如建立 !s1,回覆填入 !scene 1。使用者輸入 !s1 後,機器人會以原始使用者的身分直接執行 !scene 1,不會先把 !scene 1 顯示在聊天室。

最多只會轉呼叫一次(總深度為 2)。例如 !a 回覆 !s1,而 !s1 回覆 !scene 1,這次只會執行到 !s1;第二層的 !scene 1 只顯示文字,不會再執行。

目標指令仍受原始使用者的權限、冷卻時間及各指令原有的執行條件限制。把管理用指令包成簡短的自訂指令,不會讓一般觀眾取得管理權限。

用短指令新增、修改或刪除 ​

!addcom、!editcom、!delcom 現在是預設的管理操作縮寫,可直接使用,不必另外建立自訂指令。請到「內建指令 → !commands」對應操作的分頁調整縮寫或權限。

這三個名稱屬於內建操作縮寫,與自行填寫回覆的自訂短指令不同;完整用法、權限與設定位置見內建操作縮寫。

若想建立自己的其他短指令,也可以在後台設定以下回覆:

自訂指令回覆內容聊天室輸入範例
!新增指令!commands add!新增指令 !你好2 嗨
!修改指令!commands edit!修改指令 !你好2 新的回覆
!刪除指令!commands delete!刪除指令 !你好2

回覆只有上述管理指令前綴時,會自動接上使用者輸入的參數。例如 !新增指令 !你好2 嗨 會執行 !commands add !你好2 嗨。也可明寫 !commands add {args},參數只會帶入一次。其他轉呼叫仍依回覆內容執行;需要帶入參數時使用 {args}。

只有回覆中明確寫出 !commands add、!commands edit 或 !commands delete 的自訂指令才能轉呼叫管理操作;以 {args} 或運算式動態產生管理操作不會執行。URL Fetch 回應也不會執行指令。

操作仍以原始發話者的身分執行,並檢查該操作設定的 mod、主要 mod 或實況主權限。自訂短指令本身的使用權限、啟用狀態、發送模式與冷卻限制,以及 !commands 總開關和對應操作的設定都會繼續生效;!commands 的查詢權限不影響管理權限。

© 2026 HannyaStudio

無法私訊 Discord 客服?

私訊前,你需要與機器人有共同伺服器。可先加入客服伺服器,或由有管理權限的人將機器人邀請到自己的伺服器,再回來私訊。若仍無法傳送,請確認允許伺服器成員私訊,且未封鎖機器人。

一般問題回報與功能建議不需要連接後台帳號。Plus 1:1 預約才需要連接帳號驗證會員資格,語音與螢幕分享另需加入客服伺服器。