Lệnh & Quyền
Cú pháp: [] là bắt buộc, <> là tùy chọn. Lệnh chính /shinnui (alias /sui, /shui).
Danh sách lệnh#2>
| Lệnh | Quyền | Mô tả |
|---|---|---|
/shinnui list <filter> | shinnui.command.list | Liệt kê menu đã nạp (có thể lọc theo tên). |
/shinnui open [ID]:<Page> <Player> <Args…> | shinnui.command.open | Mở menu cho người chơi. ID:Page mở thẳng trang chỉ định; có thể truyền tham số menu. |
/shinnui reload | shinnui.command.reload | Nạp lại toàn bộ menu, settings, shortcuts, lệnh đã đăng ký. |
/shinnui template <Rows> | shinnui.command.template | Công cụ tạo khung menu trực quan (1–6 hàng, chỉ hỗ trợ chest). |
/shinnui action [Player] [Action] | shinnui.command.action | Chạy thử một dòng action và in kết quả/thời gian ra chat. Thêm # đầu dòng để ẩn log. |
/shinnui item [Method] <Value> | shinnui.command.item | Quản lý item: toJson, fromJson, save, get, delete. |
/shinnui convert [Plugin] | shinnui.command.convert | Chuyển đổi cấu hình từ plugin menu khác (DeluxeMenus). |
/shinnui sounds <filter> | shinnui.command.sounds | Duyệt & nghe thử sound của game. |
/shinnui effects | shinnui.command.effects | Xem các gói Effect-Pack đã định nghĩa trong settings.yml. |
/shinnui data | shinnui.command.data | Xem/xoá dữ liệu Meta/Data của người chơi. |
/shinnui debug | shinnui.command.debug | Bật/tắt chế độ debug. |
/shinnui help | — | Trợ giúp — hiện các sub-command mà sender có quyền. |
Lệnh gốc /shinnui yêu cầu quyền shinnui.access. Mỗi sub-command có quyền riêng
như bảng trên — tất cả đều optional, tức là admin cấp quyền nào thì hiện đúng sub-command đó.
Ví dụ lệnh open#2>
# Mở menu Example cho chính mình
/shinnui open Example
# Mở menu Example cho người chơi BlackSKY
/shinnui open Example BlackSKY
# Mở menu Shop, trang 3
/shinnui open Shop:3
# Mở menu Shop-Handler với tham số ['apple', '10']
/shinnui open Shop-Handler apple 10
# Mở cho người chơi khác + đặt "placeholder player" khác (agent)
/shinnui open Shop BlackSKY:Notch
Quyền cho người chơi#2>
| Quyền | Ý nghĩa |
|---|---|
shinnui.use | Quyền "dùng menu" chuẩn — cần để mở menu qua Events.Open có condition, và bắt buộc để click vào slot Input / commit (input action kiểm tra quyền này). |
shinnui.shortcut | Chỉ để demo trong settings.yml — dùng trong condition của Shortcuts. |
shinnui.admin | Action op: sẽ dùng OP "thật" thay vì fake-op nếu người chơi có quyền này (khi menu đặt commandFakeOp=false). |
Trong các cấu hình mẫu của ShinnUI, điều kiện mở menu thường là perm *shinnui.use —
bạn có thể đổi sang permission riêng của server mình (ví dụ perm *group.vip) vì
plugin không ép buộc permission cụ thể nào ngoài các lệnh admin.
Đăng ký lệnh mở menu riêng#2>
Ngoài Bindings.Commands (lệnh ảo — regex khớp khi người chơi gõ lệnh), bạn có thể
đăng ký lệnh Bukkit thật trong settings.yml:
RegisterCommands:
openMenus: # Tên lệnh: /openMenus
aliases: [ 'om' ] # Alias
permission: null # null = ai cũng dùng được; đặt chuỗi để giới hạn
execute: # Chạy khi lệnh không khớp argument nào
- 'tell: &7Argument `example` Required!'
arguments: # Sub-argument -> reaction
example: 'open: example'
shop: 'open: Shop-Handler'
arguments: khi người chơi gõ/openMenus example, reactionopen: exampleđược chạy. Tham số thừa phía sau được truyền làm menu arguments.execute: reaction chạy khi không khớp argument nào (thường dùng để hướng dẫn).- Nạp lại bằng
/shinnui reload— lệnh cũ được unregister tự động.
Bindings — lệnh ảo & item#2>
Bindings:
# Regex commands (không đăng ký lệnh thật — chặn trong PlayerCommandPreprocessEvent)
Commands:
- '(?i)example(-)?(gui)?(s)?'
# Item matcher — click phải item khớp sẽ mở menu
Items:
- 'material:compass'
- 'material:clock,lore:OPEN_MENU'
Commands là lệnh ảo: nếu server khác cũng đăng ký cùng tên lệnh thật, lệnh thật
sẽ thắng. Trong trường hợp đó hãy dùng RegisterCommands phía trên.
Item binding có cooldown Menu.Settings.Bound-Item-Interval (ms) chống spam.
Commands là lệnh ảo: nếu server khác cũng đăng ký cùng tên lệnh thật, lệnh thật
sẽ thắng. Trong trường hợp đó hãy dùng RegisterCommands phía trên.
Item binding có cooldown Menu.Settings.Bound-Item-Interval (ms) chống spam.