Placeholder — biến trong ShinnUI
ShinnUI có 2 "lớp" biến: function variable dạng {type: value} /
${func_args} (parse nội bộ, dùng mọi nơi trong menu) và PAPI expansion
%shinnui_*% (dùng cả bên ngoài menu, qua PlaceholderAPI).
Thứ tự parse#2>
Khi một chuỗi trong menu được render, ShinnUI xử lý theo thứ tự:
- Function variable nội bộ (
{...},${...}— xem bảng dưới) - Tham số menu (
{0},{1}… —replaceWithOrder) - PlaceholderAPI (
%...%) - Colorify (màu &, hex
&#RRGGBB, gradient) — hoặc trước nếuPre-Color: true
Function variable {type: value}#2>
| Cú pháp | Alias | Ý nghĩa |
|---|---|---|
{0} {1}… | — | Tham số menu khi mở (xem Truyền tham số). |
{kether: expr} | {ke:} | Chạy Kether, thay kết quả. |
{javascript: expr} | {js:} | Chạy JavaScript, thay kết quả. |
{jexl: expr} | — | Chạy Apache JEXL. |
{nova: expr} | {novalang:}, {novascript:} | Chạy NovaScript. |
{meta: key} | {m:} | Đọc Meta (tạm) của người chơi. |
{data: key} | {d:} | Đọc Data (DB) của người chơi. |
{globaldata: key} | {gdata:}, {g:} | Đọc GlobalData (chung server). |
{node: key} | {nodes:}, {n:} | Đọc giá trị bất kỳ từ chính file YAML của menu (theo path key, không phân biệt hoa thường) — hữu ích để "hằng số" dùng lại. |
{lang: key} | — | Đọc giá trị từ node Lang của menu theo locale người chơi. |
{triton: key} | — | Đọc text qua plugin Triton (nếu cài). |
Parser quét dấu ngoặc theo bracket-balance (đếm {}, bỏ qua nội dung trong
chuỗi "..."), nên script lồng nhau như {js: func({meta:x})} vẫn hoạt động.
Nếu cần ký tự } trong chuỗi, thoát bằng \}.
Internal function ${name_args}#2>
Gọi function định nghĩa trong node Functions: của menu — chi tiết ở
Functions nội bộ:
name: '${flash_➥}' # gọi hàm flash, args[0] = "➥"
lore:
- '${bStats_servers}' # key lồng nhau: Functions.bStats.servers
PAPI expansion — %shinnui_*%#2>
Khi cài PlaceholderAPI, ShinnUI tự đăng ký expansion identifier shinnui:
| Placeholder | Giá trị |
|---|---|
%shinnui_menus% | Tổng số menu đã nạp. |
%shinnui_args_<index>% | Tham số menu của session (chỉ khi đang mở menu). |
%shinnui_meta_<key>% | Meta của người chơi (hỗ trợ key lồng: phần sau được join bằng _). |
%shinnui_data_<key>% | Data (DB) của người chơi. |
%shinnui_globaldata_<key>% | GlobalData. |
%shinnui_node_<key>% | Giá trị node từ file menu đang mở. |
%shinnui_menu_page% | Trang đang xem (bắt đầu 0). |
%shinnui_menu_pages% | Tổng số trang. |
%shinnui_menu_next% | Trang kế tiếp (thường dùng page: %shinnui_menu_next%). |
%shinnui_menu_prev% | Trang trước. |
%shinnui_menu_title% | Title của menu đang mở (frame hiện tại). |
%shinnui_js_<expr>% | Chạy JS — phải bật Options.Placeholders.JavaScript-Parse (mặc định tắt vì lý do hiệu năng/bảo mật). |
%shinnui_jexl_<expr>% | Chạy JEXL — cần bật Jexl-Parse. |
Các placeholder meta/input như %shinnui_meta_input% dùng được cả khi không mở
menu (vì meta gắn người chơi), nhưng menu_* chỉ đúng trong session đang mở.
Biến input (tính năng fork)#2>
| Placeholder | Giá trị |
|---|---|
%shinnui_meta_input% | Tổng đồ đang buffer. |
%shinnui_meta_input_<slot>% | Đồ buffer tại slot (ví dụ _input_10). |
%shinnui_meta_input_count% | Số slot đang có đồ. |
%shinnui_meta_input_taken% | Số trừ thực tế lần commit cuối. |
%shinnui_meta_input_missing% | Danh sách thiếu (commit fail). |
Xem Input Menu.