Kether trong ShinnUI
Kether là ngôn ngữ script của TabooLib — mặc định của mọi condition:,
action {ke:} và API. Cú pháp dạng câu (money *500), chạy nhanh hơn JS,
không cần cấu hình gì thêm.
Namespace shinnui#2>
Khi eval, ShinnUI mở namespace shinnui — các node dưới đây chỉ tồn tại khi chạy
trong ShinnUI (không dùng được trong plugin khác):
| Node | Cú pháp | Ý nghĩa |
|---|---|---|
meta | meta "key" | Đọc Meta người chơi. |
data | data "key" | Đọc Data (DB) người chơi. |
vars / var | var "{meta:input}" | Eval chuỗi qua bộ replace (giống vars() của JS). |
money / eco | money *500 | Vault — không args: số dư; có số: đủ tiền? |
points | points *10 | PlayerPoints tương tự. |
item | item *material:DIAMOND,amount:5 | Người chơi có item khớp matcher? |
mathcheck / mtc | mtc left > right | So sánh số: > < >= <= == != |
menu | menu "title" | Người chơi đang mở menu có title chứa chuỗi? |
meco | meco "key" | Đọc GlobalData. |
Ngoài namespace này, toàn bộ Kether chuẩn của TabooLib đều dùng được:
player has permission "shinnui.use", online, if / then / else,
tellraw, set meta… Xem wiki TabooLib cho danh sách đầy đủ.
Ví dụ điều kiện#2>
# Trong icon action
- condition: 'money *500'
actions:
- 'take-money 500'
- 'give-item: material:NETHERITE_SWORD'
deny:
- 'tell: &cCần 500 coins!'
# Có item + meta đã nhận thưởng chưa
- condition: 'item *material:NETHER_STAR,name:EVENT_TOKEN,amount:1 && meta "claimed" != "true"'
actions:
- 'take-item: material:NETHER_STAR,amount:1'
- 'set-meta: claimed true'
# So sánh số từ biến
- condition: 'mtc {meta:input} >= 10'
actions:
- 'tell: &aNhập đủ 10 rồi!'
Kether trong Events#2>
Events:
Open:
- 'condition: player has permission "shinnui.vip"'
- 'set-meta: vip true'
Click:
- 'condition: menu "Shop" && mtc 1 == 1'
- 'sound: UI_BUTTON_CLICK-1-1'
Kether function đa dòng#2>
Events:
Open:
- 'condition: player has permission "shinnui.vip"'
- 'set-meta: vip true'
Click:
- 'condition: menu "Shop" && mtc 1 == 1'
- 'sound: UI_BUTTON_CLICK-1-1'
Kether function đa dòng#2>
Node function hỗ trợ script Kether nhiều dòng — các dòng chạy tuần tự, giá trị dòng cuối là kết quả:
Functions:
discount: |-
if mtc ${price} >= 1000 then 900
else ${price}
Quy tắc chọn ngôn ngữ điều kiện: Kether cho check native (tiền, quyền, item,
so sánh) — ngắn và nhanh; JS khi cần string/JSON/array phức tạp; JEXL cho biểu
thức số học thuần. Cả 3 cùng dùng được trong mọi condition:.