> For the complete documentation index, see [llms.txt](https://onic-studio.gitbook.io/solarplugins-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://onic-studio.gitbook.io/solarplugins-docs/plugins/solarshop/cau-hinh.md).

# Cấu hình

***

### 3. CÁC TỆP CẤU HÌNH HỆ THỐNG (SYSTEM CONFIGURATION)

#### A. `config.yml` (Cấu hình chính)

Tệp này quản lý các thiết lập cơ bản, kết nối cơ sở dữ liệu và các alias của lệnh.

```yaml
# Cấu hình kết nối Database (Hỗ trợ SQLite và MySQL)
database:
  type: sqlite # sqlite hoặc mysql
  host: localhost
  port: 3306
  database: solarshop
  username: root
  password: ""
  ssl: false

# Các alias cho lệnh /solarshop (áp dụng ngay khi reload qua /ss reload)
command-aliases:
  - shop
  - ss

# Thiết lập thông báo giao dịch
messages:
  chat-messages: true
  action-bar-messages: true
  use-action-bar-only: false
```

***

#### B. `currency.yml` (Cấu hình Tiền Tệ Hợp Nhất)

Nơi đăng ký tất cả các loại tiền tệ dùng trong hệ thống cửa hàng.

```yaml
currencies:
  # 1. Tiền tệ mặc định của Vault (Economy)
  vault:
    type: vault
    display-name: "&aXu"
    color: "#2ecc71"
    format: "{price} Xu"
    
  # 2. Điểm tích lũy qua PlayerPoints
  points:
    type: playerpoints
    display-name: "&ePoints"
    color: "#f1c40f"
    format: "{price} Points"
    
  # 3. Tiền tệ tùy chỉnh sử dụng PlaceholderAPI (Ví dụ: Đá Quý/Gems)
  gems:
    type: custom
    display-name: "&dĐá Quý"
    color: "#9b59b6"
    format: "{price} Gems"
    # Placeholder lấy số dư của người chơi
    placeholder: "%playerpoints_points%"
    # Lệnh trừ tiền khi người chơi thực hiện giao dịch mua
    take-command: "playerpoints take {player} {price}"
```

***

#### C. `gui/main-menu.yml` & `gui/category-menu.yml` (Thiết Kế Giao Diện)

SolarShop sử dụng cơ chế bố cục (layout disposition) trực quan bằng ký tự để thiết kế vị trí các biểu tượng trong GUI.

**Ví dụ bố cục ngoài Menu chính (`main-menu.yml`):**

```yaml
# Định dạng tiêu đề và số hàng của kho đồ
title: "&eᴄửᴀ ʜàɴɢ sᴏʟᴀʀsʜᴏᴘ"
gui-disposition:
  - "#########"
  - "#a#b#c#d#"
  - "#########"

# Bản đồ ký tự trỏ đến các ID danh mục (shop/*.yml)
categories:
  a: minerals
  b: tools
  c: foods
  d: shards
```

* Ký tự `#` biểu thị ô trống hoặc được lấp đầy bởi vật phẩm nền (`filler`).
* Các ký tự chữ cái (ví dụ: `a`, `b`, `c`) định vị slot hiển thị của danh mục tương ứng.

***

### 4. CẤU HÌNH DANH MỤC CỬA HÀNG (SHOP CATEGORIES)

Mỗi danh mục cửa hàng được lưu tại một file riêng biệt trong thư mục `plugins/SolarShop/shop/` (Ví dụ: `minerals.yml`).

#### Cấu trúc đầy đủ của một file danh mục:

```yaml
# Thiết lập giao diện hiển thị danh mục ngoài Main Menu và bên trong danh mục
main:
  name: "&6Khoáng Sản"
  lore:
    - "&7Nơi giao dịch các loại quặng"
    - "&eNhấp để mở xem!"
  material: DIAMOND # Biểu tượng danh mục ngoài Menu chính
  title: "&0Cửa Hàng Khoáng Sản"
  glow: true
  hide-attributes: true # Ẩn các dòng thuộc tính mặc định cho biểu tượng ngoài Menu chính
  permission: "" # Quyền yêu cầu để mở danh mục này (để trống nếu không cần)

# Danh sách vật phẩm được bán trong danh mục này
items:
  item1:
    material: IRON_INGOT # Loại vật phẩm
    name: "&fSắt Thỏi" # Tên tùy chỉnh (nếu muốn)
    lore:
      - "&7Sắt chất lượng cao thu thập từ mỏ quặng."
    price: 10.0 # Giá bán
    currency: vault # Loại tiền tệ trong currency.yml (mặc định: vault)
    slots: 0 # Vị trí hiển thị (0-indexed)
    max-amount: 64 # Số lượng mua tối đa mỗi lượt nhấp
    glow: false # Tạo hiệu ứng lấp lánh (phù phép)
    hide-attributes: true # Ẩn các dòng thuộc tính mặc định của Minecraft
    permission: "solarshop.buy.iron" # Quyền yêu cầu để mua (để trống nếu không cần)
    
  item2:
    material: DIAMOND
    price: 50.0
    currency: gems # Mua bằng tiền tệ Đá Quý (gems)
    slots: 1
    # Thực hiện lệnh thay vì cho vật phẩm trực tiếp vào túi đồ
    commands:
      - "give {player} diamond {amount}"
      
  item3:
    material: WRITABLE_BOOK
    slots: 2
    name: "&aMở Menu Nâng Cấp (DeluxeMenus)"
    # Khi nhấp vào vật phẩm này, thay vì mua, nó mở thẳng giao diện DeluxeMenus
    open-gui: "upgrade_menu" 
```

### 5. GIAO DIỆN QUẢN LÝ VẬT PHẨM TRONG GAME (CATEGORY ITEM MANAGER)

Bạn có thể quản lý các vật phẩm trong từng danh mục trực quan 100% bằng cách kéo thả trực tiếp trong game.

#### Cách sử dụng:

1. Gõ lệnh `/solarshop edit` hoặc `/ss edit`. Giao diện chỉnh sửa chính sẽ hiện ra.
2. Nhấp vào danh mục bạn muốn quản lý vật phẩm. Giao diện **Category Item Manager** của danh mục đó sẽ mở ra.
3. **Thao tác thêm vật phẩm**:
   * Cầm một vật phẩm bất kỳ từ túi đồ của bạn bằng con trỏ chuột.
   * Click vào một ô trống bất kỳ trong giao diện Shop. Vật phẩm sẽ được thêm vào ngay lập tức ở vị trí đó với giá mặc định là `0.0 Xu`.
4. **Thao tác xóa/lấy vật phẩm**:
   * **Left-Click (Chuột trái)** vào vật phẩm trong Shop: Nhấc vật phẩm đó ra khỏi shop để đưa về túi đồ của bạn.
   * **Shift-Click (Chuột trái kèm Shift)** vào vật phẩm trong Shop: Xóa vĩnh viễn vật phẩm đó khỏi cửa hàng.
5. Sau khi thao tác xong, các thông số kỹ thuật (như giá cả, tiền tệ, lệnh thực thi) của vật phẩm mới thêm vào có thể được cấu hình chi tiết thông qua tệp tin cấu hình YAML của danh mục đó một cách tiện lợi.

***

### 6. TÍCH HỢP HÀNH ĐỘNG MỞ MENU KHÁC (OPEN-GUI ACTION)

Tính năng `open-gui` cho phép bạn tạo ra các nút điều hướng trung gian trong SolarShop để mở các giao diện thuộc **DeluxeMenus** hoặc **zMenu**.

#### Định dạng linh hoạt:

Plugin hỗ trợ tự động bóc tách và phân tích các định dạng cấu hình sau:

* Tên menu trực tiếp: `open-gui: "menu_chinh"`
* Kèm tiền tố DeluxeMenus: `open-gui: "dm open menu_chinh"`
* Kèm tiền tố zMenu: `open-gui: "zm open menu_chinh"` hoặc `open-gui: "zmenu open menu_chinh"`
* Kèm dấu gạch chéo: `open-gui: "/dm open menu_chinh"`
