Appearance
進階運算式
自訂指令回覆支援安全版 $(eval ...)。它是功能受限的運算語法,不會執行任意 JavaScript,也不能連線到網站或呼叫 Twitch API。
線上測試
可以在這裡使用與 HannyaStudio 自訂指令相同的安全運算式引擎測試結果。Playground 只支援本頁列出的變數、運算子與函式。
SAFE EVAL PLAYGROUND
立即試算
只會執行 HannyaStudio 支援的安全語法。
基本用法
text
1 + 2 = $(eval 1 + 2)text
$(eval {args} == "" ? "請輸入內容" : "你輸入了:" + {args})text
今天的幸運數字是 $(eval randomInt(1, 100))text
$(eval choose("大吉", "中吉", "小吉"))一則回覆最多可以放 4 個運算式。任何一個運算式發生錯誤時,該次指令不會送出不完整的訊息。
可用變數
| 變數 | 內容 |
|---|---|
{command} | 本次使用的指令名稱,包含 !。 |
{args} | 指令後方的完整文字;沒有參數時是空字串。 |
{user} | 使用者的 Twitch 顯示名稱。 |
{user_id} | 使用者的 Twitch 數字 ID。 |
{login} | 使用者的 Twitch ID(login)。 |
變數會以資料形式交給運算式,不會被當成程式碼執行。例如使用者輸入引號、括號或分號,也只會是普通文字。
字串中的變數名稱不會展開:"{args}" 代表文字 {args};要讀取參數請直接寫 {args}。
運算子
- 數字:
+、-、*、/、% - 比較:
<、<=、>、>=、==、!= - 邏輯:
!、&&、|| - 條件:
條件 ? 成立時的值 : 不成立時的值 - 群組:
(...)
== 與 != 會比較型別;文字 "1" 不等於數字 1。除了 + 可以串接文字,其餘數學與大小比較都需要數字。若參數是數字文字,請先使用 number({args})。
text
$(eval number({args}) >= 100 ? "達標" : "尚未達標")數字函式
| 函式 | 說明 |
|---|---|
number(value) | 將數字或數字文字轉成有限數字。 |
min(a, ...) / max(a, ...) | 從 1~16 個數字找最小值或最大值。 |
abs(value) | 絕對值。 |
round(value) | 四捨五入到整數。 |
floor(value) / ceil(value) | 無條件捨去/進位到整數。 |
clamp(value, min, max) | 把數字限制在指定範圍內。 |
randomInt(min, max) | 產生包含上下限的隨機整數。 |
randomInt 的上下限必須是整數,最大範圍差為 1,000,000。
文字函式
| 函式 | 說明 |
|---|---|
string(value) | 轉成文字;null 會變成空字串。 |
lower(value) / upper(value) | 轉成小寫/大寫。 |
trim(value) | 移除文字前後空白。 |
length(value) | 計算 Unicode 字元數,emoji 算一個字元。 |
contains(text, search) | 是否包含指定文字。 |
startsWith(text, search) | 是否以指定文字開頭。 |
endsWith(text, search) | 是否以指定文字結尾。 |
文字比較會區分大小寫。如需忽略大小寫,可以先使用 lower 或 upper。
text
$(eval contains(lower({args}), "hello") ? "Hello!" : "找不到 hello")隨機選擇
choose(value, ...) 可以從 1~16 個值中隨機挑選一個:
text
{user} 今天適合 $(eval choose("唱歌", "打遊戲", "早點睡"))限制與不支援項目
- 自訂指令回覆仍以 200 個 Unicode 字元為上限。
- 每則回覆最多 4 個運算式,每個運算式最多 160 個字元。
- 不支援屬性存取、陣列、物件、正規表示式、賦值、迴圈、自訂函式或非白名單函式。
- 不支援
fetch、網路請求、檔案、環境變數或日期時間。 - 不支援巢狀
$(eval ...)。 - 除以零、無效數字、未知變數/函式或超過資源限制時,本次訊息不會送出。
- 運算結果仍會通過系統的封鎖字詞檢查與 Twitch 訊息長度限制。
這項功能只適用於「指令管理 → 自訂指令」的回覆內容;其他事件、模組、贊助與排程訊息不會解析 $(eval ...)。