💡Giới Thiệu

Gemini-AI không chỉ là một chatbot. Nó là một trợ lý ảo toàn năng, một nhân viên hỗ trợ 24/7 và một hệ thống nhiệm vụ động, được thiết kế để nâng cao trải nghiệm người chơi và giảm tải công việc quản lý cho bạn.

✨ TÍNH NĂNG NỔI BẬT CỦA GEMINI-AI ✨

🚀 Tương Tác AI Thông Minh & Theo Ngữ Cảnh

  • Giao tiếp đa dạng: Người chơi có thể trò chuyện với AI qua lệnh (/bot) hoặc gọi trực tiếp trong chat (AI ơi). Cả hai đều có thể tùy chỉnh trong config.yml.
  • Thấu hiểu người chơi: AI không trả lời một cách máy móc! Nhờ tích hợp PlaceholderAPI, nó hiểu rõ ngữ cảnh của người chơi (vị trí, máu, tiền bạc,...) để đưa ra phản hồi phù hợp nhất.
  • Ghi nhớ hội thoại: AI có "trí nhớ" về cuộc trò chuyện, giúp các câu trả lời sau đó trở nên tự nhiên và liền mạch. Kích thước bộ nhớ có thể được tùy chỉnh cho từng nhóm quyền hạn!

⚙️ Hệ Thống Nhiệm Vụ Động & Sâu Sắc

Gemini-AI biến server của bạn thành một thế giới sống với các nhiệm vụ được kích hoạt tự động dựa trên hành động của người chơi.

  • Hàng chục loại Trigger:
    • Sự kiện: Lần đầu tham gia, giết mob, chế tạo vật phẩm, đạt độ cao Y...
    • Nâng cao: Kích hoạt bằng PlaceholderAPI (ví dụ: khi người chơi đạt level 10).
  • Mục tiêu & Phần thưởng phong phú:
    • Mục tiêu: Từ thu thập vật phẩm, thuần hóa động vật, cho đến mặc đủ bộ giáp. Hỗ trợ cả mục tiêu ngẫu nhiên (ví dụ: giết Zombie hoặc Skeleton).
    • Phần thưởng: Không chỉ là vật phẩm! Bạn có thể chạy lệnh (tặng tiền, rank), hoặc cho người chơi tự chọn phần thưởng (CHOICE).
  • Xây dựng Cốt truyện:
    • Tạo ra các chuỗi nhiệm vụ dài hơi bằng cách liên kết chúng với tùy chọn next-quest.
    • Yêu cầu người chơi phải có vật phẩm "đặc biệt" từ nhiệm vụ trước để bắt đầu nhiệm vụ mới.

🔧 Bộ Công Cụ Quản Trị Viên Tối Ưu

Giúp bạn quản lý server một cách dễ dàng và chuyên nghiệp.

  • Dịch Thuật Plugin bằng 1 Lệnh:
    • Dịch toàn bộ file ngôn ngữ (.yml) của bất kỳ plugin nào với lệnh /ai translate.
    • Tích hợp bộ nhớ đệm thông minh giúp tiết kiệm chi phí API và tăng tốc độ.
  • Trình Chỉnh Sửa Nhiệm Vụ Web (Quest Editor):
    • Không cần sửa file YML thủ công! Lệnh /ai editor mở ra một giao diện web trực quan.
    • Đột phá: Tính năng "Tạo bằng AI ✨" cho phép bạn tạo nhiệm vụ hoàn chỉnh chỉ từ một ý tưởng!
  • Hệ Thống Phân Quyền & Kiếm Thu nhập:
    • Tạo các "profile" AI riêng cho từng nhóm (Member, VIP, Admin) trong config.yml.
    • Tùy chỉnh chi tiết các giới hạn: thời gian chờ, bộ nhớ trò chuyện, số nhiệm vụ tối đa. Đây là một công cụ tuyệt vời để tạo ra các gói rank VIP hấp dẫn.

🔑Lệnh và Quyền

Lệnh cho Người Chơi

Lệnh Mô tả
/<tên-lệnh-config> [câu hỏi] Đặt câu hỏi cho AI. Tên lệnh mặc định là /bot và có thể thay đổi trong config.yml.
[tiền-tố-chat] [câu hỏi] Gọi AI trực tiếp trong chat. Tiền tố mặc định là AI ơi và có thể thay đổi trong config.yml.
/ai questlog Mở nhật ký nhiệm vụ, cho phép người chơi xem, theo dõi hoặc hủy bỏ các nhiệm vụ đang hoạt động.

Lệnh cho Quản Trị Viên

Lệnh Mô tả Quyền
/ai reload Tải lại toàn bộ cấu hình của plugin. geminiai.admin
/ai translate <plugin> <file> <lang> Dịch một tệp .yml của plugin khác. geminiai.admin
/ai confirm Xác nhận và ghi đè tệp gốc bằng bản dịch. geminiai.admin
/ai deny Lưu bản dịch thành một tệp mới thay vì ghi đè. geminiai.admin
/ai cancel Hủy bỏ quá trình dịch đang diễn ra. geminiai.admin
/ai editor Tạo một phiên và URL để truy cập Trình chỉnh sửa Nhiệm vụ trên web. geminiai.admin

Các Quyền Hạn Khác

Quyền Mô tả
geminiai.admin Cấp quyền truy cập vào tất cả các lệnh quản trị của Gemini-AI.
geminiai.cooldown.bypass Cho phép người chơi bỏ qua thời gian chờ khi sử dụng lệnh hỏi AI.
geminiai.profile.* Quyền truy cập vào một profile AI cụ thể được định nghĩa trong config.yml (ví dụ: geminiai.profile.vip, geminiai.profile.default).

📄Cấu Hình YML

Dưới đây là nội dung gốc và đầy đủ của các file cấu hình quan trọng. Các file này đã được bình luận chi tiết để bạn có thể dễ dàng tùy chỉnh trực tiếp.

config.yml

▶ Mở rộng để xem toàn bộ file config.yml

# =================================================================
#                 CẤU HÌNH PLUGIN GEMINI-AI
# =================================================================
# Chào mừng bạn đến với file cấu hình của Gemini-AI!
# Tại đây, bạn có thể tùy chỉnh mọi thứ, từ lệnh, tính cách AI,
# cho đến các cài đặt chuyên sâu khác.
# =================================================================

# Phiên bản cấu hình, KHÔNG THAY ĐỔI DÒNG NÀY.
config-version: '1.2.0'

# =================================================================
#               PHƯƠNG THỨC TƯƠNG TÁC VỚI AI
# =================================================================
interaction:
  command:
    # Tên lệnh mà người chơi sẽ sử dụng để gọi AI.
    name: "bot"
  chat:
    # Bất kỳ tin nhắn nào bắt đầu bằng chuỗi ký tự này sẽ kích hoạt AI.
    # Để trống ("") nếu bạn muốn TẮT tính năng này.
    prefix: "AI ơi "
  response:
    # Chế độ hiển thị mặc định của câu trả lời "private" hoặc "public".
    default-mode: "private"
    # Ký hiệu đặc biệt ở cuối câu hỏi để tạm thời đảo ngược chế độ hiển thị.
    public-trigger: "!!"

# =================================================================
#                      CÀI ĐẶT CỐT LÕI CỦA GEMINI
# =================================================================
gemini:
  # (QUAN TRỌNG) Định nghĩa các profile AI dựa trên quyền.
  # Bạn có thể chỉnh sửa, thêm các nhóm tùy ý nhưng hãy đảm bảo
  # đủ các khóa key cần thiết theo mẫu để plugin hoạt động bình thường.

  # Bạn nên thêm nhiều khóa key API của nhiều project khác nhau cho mỗi
  # nhóm để tránh lỗi khi dử dụng hết hạn mức API free của một project.

  ai-profiles:
    # Profile cho admin: quyền cao nhất, không giới hạn.
    admin:
      # (Bắt buộc) Quyền mà người chơi cần có để sử dụng profile này.
      permission: "geminiai.profile.admin"
      # Thời gian chờ (giây) giữa các lần hỏi AI.
      cooldown: 0
      # Số lượng cặp câu hỏi-trả lời gần nhất mà AI sẽ ghi nhớ để hiểu ngữ cảnh.
      conversation-memory-size: 20
      # Số lượng nhiệm vụ tối đa mà người chơi có thể nhận cùng lúc.
      max-active-quests: 10
      # Thời gian (giờ) một nhiệm vụ tồn tại trước khi tự động hết hạn.
      #  Đặt là 0 để không bao giờ hết hạn.
      quest-lifetime-hours: 0
      # Model Gemini sẽ sử dụng cho profile này. "gemini-2.5-flash" được khuyến khích.
      model: "gemini-2.5-flash"
      # Số lượng token (từ/ký tự) tối đa trong mỗi câu trả lời của AI.
      max-output-tokens: 1000
      # "Tính cách" của AI. Đây là chỉ dẫn cốt lõi mà AI luôn tuân theo.
      system-instruction: |
        Bạn là một quản trị viên server toàn năng, hỗ trợ quản lý server một cách hiệu quả.
        Luôn trả lời một cách chính xác và súc tích.
      # Danh sách các API key. Plugin sẽ tự động xoay vòng để tránh quá tải.
      chat-api-keys:
        - "your_admin_api_key_here"

    # Profile cho người chơi VIP: quyền cao cấp hơn người thường.
    vip:
      permission: "geminiai.profile.vip"
      cooldown: 20
      conversation-memory-size: 14
      max-active-quests: 5
      quest-lifetime-hours: 48
      model: "gemini-2.5-flash"
      max-output-tokens: 800
      system-instruction: |
        Bạn là một trợ lý AI cao cấp dành cho những người chơi VIP.
        Luôn tỏ ra thông thái và đưa ra những câu trả lời hữu ích và thân thiện.
      chat-api-keys:
        - "your_vip_api_key_1"
        - "your_vip_api_key_2"

    # Profile mặc định cho người chơi thường
    default:
      permission: "geminiai.profile.default"
      cooldown: 60
      conversation-memory-size: 8
      max-active-quests: 3
      quest-lifetime-hours: 24
      model: "gemini-2.5-flash"
      max-output-tokens: 1000
      system-instruction: |
        Bạn là một trợ lý AI thông minh và thân thiện trong một server Minecraft.
        Luôn trả lời một cách tự nhiên và vui vẻ.
      chat-api-keys:
        - "your_default_player_api_key"

  # --- CÀI ĐẶT RIÊNG CHO TÍNH NĂNG DỊCH THUẬT ---
  # Bạn nên thêm càng nhiều key API càng tốt và tránh trùng lặp với
  # các API đã sử dụng cho các tính năng khác của plugin.
  translation:
    model: "gemini-2.5-flash"
    api-keys:
      - "your_translation_api_key_here"


  # (CẢNH BÁO) ĐÂY LÀ CẤU HÌNH TỐT NHẤT CHO MỌI SERVER KHÔNG NÊN THAY ĐỔI NÓ.
  # Biến {placeholders} sẽ được thay thế bằng thông tin lấy từ placeholders.yml.
  context-format: "Hãy dựa vào bối cảnh sau đây để đưa ra câu trả lời chính xác nhất: {placeholders}"

  # --- CÀI ĐẶT RIÊNG CHO HỆ THỐNG NHIỆM VỤ ---
  quest-generation:
    prompt-format: |
      The objective for a quest in a Minecraft server is: '{objective}'.
      Based on this objective, generate an exciting quest name and a short, immersive description (1-2 sentences).
    quest-generation-profile:
      model: "gemini-2.5-flash"
      max-output-tokens: 1000
      api-keys:
        - "your_quest_api_key_here"
      disable-safety-filters: true

# =================================================================
#                       CÁC CÀI ĐẶT CHUNG KHÁC
# =================================================================
general:
  # Chọn ngôn ngữ cho plugin.
  # Tên file phải khớp với file trong thư mục 'lang' (ví dụ: 'en', 'vi').
  # Tiếng Anh ('en') là ngôn ngữ mặc định.
  language: "vi"

  # Bật/tắt việc ghi lại các hoạt động của plugin vào file log.
  enable-logging: true
  # Thời gian trễ (mili-giây) giữa mỗi yêu cầu dịch hàng loạt để tránh lỗi 429.
  translation-delay-ms: 1000
  # Thời gian chờ (phút) sau khi hoàn thành một nhiệm vụ trước khi có thể nhận nhiệm vụ mới.
  quest-completion-cooldown-minutes: 5

  # CHẾ ĐỘ HIỂN THỊ NHIỆM VỤ ĐANG THEO DÕI
  # Bạn có thể chọn cách hiển thị thông tin nhiệm vụ cho người chơi.
  # Các chế độ hợp lệ:
  #   - 'SIDEBAR': Hiển thị trên bảng điểm (scoreboard) bên phải màn hình.
  #   - 'BOSS_BAR': Hiển thị trên thanh Boss Bar ở trên cùng màn hình.
  #   - 'ACTION_BAR': Hiển thị trên thanh hành động (phía trên thanh hotbar).
  #   - 'NONE': Không hiển thị gì cả, người chơi sẽ tự kiểm tra bằng /ai questlog.
  quest-display:
    mode: "SIDEBAR"
                

quests.yml

▶ Mở rộng để xem toàn bộ file quests.yml

# =================================================================================================
#
#                               HƯỚNG DẪN TOÀN DIỆN VỀ quests.yml
#
# =================================================================================================
# Tệp này là trung tâm của hệ thống nhiệm vụ, nơi bạn định nghĩa các "khuôn mẫu" (archetype)
# cho mỗi nhiệm vụ. Mỗi khuôn mẫu bao gồm các điều kiện kích hoạt, yêu cầu, mục tiêu cần
# hoàn thành và phần thưởng.
#
# CẤU TRÚC TỔNG QUAN:
#
# quest-archetypes:
#   # Tên định danh duy nhất cho nhiệm vụ, viết liền không dấu.
#   ten_nhiem_vu_1:
#     trigger-scenarios: [...]
#     requirements: {...}
#     objectives: [...]
#     rewards: [...]
#     next-quest: "..."
#
# =================================================================================================
#
# I. TRIGGER (trigger-scenarios)
#
# -------------------------------------------------------------------------------------------------
# Đây là danh sách các hành động sẽ kích hoạt việc giao nhiệm vụ. Chỉ cần một trong các
# hành động này xảy ra, nhiệm vụ sẽ được giao (nếu người chơi đủ điều kiện).
#
# BẢNG CÁC TRIGGER CÓ SẴN:
#
# --- Chiến đấu & PvP ---
# - KILL_MOB:ZOMBIE           (Giết một loại mob)
# - PLAYER_KILL               (Hạ gục một người chơi khác)
# - TAKE_DAMAGE:FALL          (Nhận sát thương từ một nguồn. VD: FALL, LAVA, ZOMBIE...)
# - BLOCK_ATTACK              (Đỡ đòn thành công bằng khiên)
#
# --- Khám phá & Di chuyển ---
# - JOIN                      (Tham gia server)
# - JOIN:FIRST                (Lần đầu tham gia server)
# - QUIT                      (Thoát server)
# - DEATH                     (Chết)
# - RESPAWN                   (Hồi sinh)
# - BIOME_ENTER:PLAINS        (Đi vào một quần xã sinh vật)
# - PORTAL_USE:NETHER_PORTAL  (Đi qua cổng dịch chuyển. VD: NETHER_PORTAL, END_PORTAL)
# - PLAYER_SLEEP              (Nằm lên giường)
# - REACH_HEIGHT:>=:200       (Đạt độ cao Y. Toán tử: >, >=, <, <=, ==, !=)
#
# --- Nông nghiệp & Tương tác ---
# - BLOCK_BREAK:DIAMOND_ORE   (Phá một loại khối)
# - BLOCK_PLACE:CRAFTING_TABLE (Đặt một loại khối)
# - USE:LEVER                 (Tương tác (chuột phải) với khối hoặc vật phẩm)
# - USE:ENDER_PEARL
# - ITEM_CONSUME:APPLE        (Tiêu thụ (ăn/uống) một vật phẩm)
# - ITEM_CRAFT:DIAMOND_SWORD  (Chế tạo một vật phẩm)
# - FISH:CAUGHT_FISH          (Trạng thái khi câu cá. VD: CAUGHT_FISH, FAILED_ATTEMPT)
# - VILLAGER_TRADE            (Giao dịch thành công với dân làng)
# - PLANT_CROP:WHEAT_SEEDS    (Trồng một loại cây)
# - HARVEST_CROP:WHEAT        (Thu hoạch một cây đã chín)
# - STRIP_LOG:OAK_LOG         (Dùng rìu cạo vỏ cây)
# - TILL_SOIL                 (Dùng cuốc xới đất)
# - SHEAR_ENTITY:SHEEP        (Dùng kéo cắt lông)
# - FILL_BUCKET:WATER_BUCKET  (Múc đầy xô)
# - EMPTY_BUCKET:LAVA_BUCKET  (Đổ xô ra)
#
# --- Trạng thái & Vật phẩm ---
# - LEVEL_UP:30               (Đạt một cấp độ kinh nghiệm)
# - ENCHANT:SHARPNESS         (Phù phép một loại enchantment, mọi cấp độ)
# - ENCHANT:SHARPNESS:5       (Phù phép một loại enchantment với cấp độ V)
# - TAME:WOLF                 (Thuần hóa một con vật)
# - GAIN_EFFECT:SPEED         (Nhận hiệu ứng thuốc)
# - GAIN_EFFECT:SPEED:2       (Nhận hiệu ứng thuốc với cấp độ II)
# - ITEM_BREAK:DIAMOND_PICKAXE (Làm hỏng một vật phẩm)
# - ITEM_REPAIR               (Sửa chữa một vật phẩm tại đe)
# - ITEM_DROP:DIRT            (Vứt một vật phẩm)
# - ITEM_PICKUP:DIAMOND       (Nhặt một vật phẩm)
#
# --- Hệ thống & Khác ---
# - COMMAND:spawn             (Sử dụng một lệnh (không có dấu /))
# - PAPI:player_level>=10     (Trigger dựa trên một placeholder)
#
# =================================================================================================
#
# II. OBJECTIVES (objectives)
#
# -------------------------------------------------------------------------------------------------
# Danh sách các mục tiêu người chơi cần hoàn thành.
# Mỗi mục tiêu có cấu trúc: { type, target, amount }
#
# BẢNG CÁC LOẠI OBJECTIVE:
#
# | type            | target (Mục tiêu)                           | amount (Số lượng)                         |
# |-----------------|---------------------------------------------|-------------------------------------------|
# | KILL_MOB        | Tên EntityType (VD: ZOMBIE)                 | Số lượng mob cần giết.                     |
# | GATHER_ITEM     | Tên Material của vật phẩm (VD: DIAMOND)     | Số lượng vật phẩm cần có trong túi đồ.      |
# | BREAK_BLOCK     | Tên Material của khối (VD: OAK_LOG)        | Số khối cần phá.                          |
# | PLACE_BLOCK     | Tên Material của khối (VD: TORCH)          | Số khối cần đặt.                           |
# | REACH_LEVEL     | *Không dùng đến* | Cấp độ kinh nghiệm cần đạt.               |
# | KILL_PLAYER     | Tên người chơi, hoặc `ANY`                  | Số người chơi cần giết.                    |
# | BREED_ANIMAL    | Tên EntityType (VD: COW)                    | Số lần nhân giống.                        |
# | TAME_ANIMAL     | Tên EntityType (VD: WOLF)                   | Số con vật cần thuần hóa.                  |
# | CONSUME_ITEM    | Tên Material (VD: APPLE)                    | Số vật phẩm cần ăn/uống.                   |
# | SMELT_ITEM      | Tên Material đầu ra (VD: IRON_INGOT)       | Số vật phẩm cần nung chảy.                 |
# | ENCHANT_ITEM    | Tên Enchantment (VD: sharpness)             | Cấp độ enchantment tối thiểu cần đạt.      |
# | TRADE_VILLAGER  | *Không dùng đến* | Số lần giao dịch.                         |
# | FISH_ITEM       | Tên Material câu được (VD: SALMON)         | Số lượng cần câu.                          |
# | WEAR_ARMOR      | Tên loại giáp (VD: DIAMOND, IRON)           | Mặc đủ bộ (luôn là 1).                    |
#
# MỤC TIÊU NGẪU NHIÊN:
# Bạn có thể để AI chọn ngẫu nhiên `target` bằng cách cung cấp một danh sách.
#
# objectives:
#   - type: 'KILL_MOB'
#     target: ['ZOMBIE', 'SKELETON', 'SPIDER']
#     amount: 10
#
# =================================================================================================
#
# III. REWARDS (rewards)
#
# -------------------------------------------------------------------------------------------------
# Phần thưởng khi hoàn thành nhiệm vụ.
#
# - type: COMMAND
#   commands:
#     - "eco give %player% 1000"
#     - "say %player% đã hoàn thành nhiệm vụ!"
#
# - type: ITEM
#   items:
#     - material: "DIAMOND"
#       amount: 10
#
# - type: CHOICE
#   title: "Chọn phần thưởng của bạn"
#   items:
#     - material: "DIAMOND_SWORD"
#       name: "Kiếm Thần"
#       # ... các thuộc tính khác
#     - material: "DIAMOND_AXE"
#       name: "Rìu Chiến"
#       # ... các thuộc tính khác
#
# ĐỊNH DẠNG VẬT PHẨM CHI TIẾT:
# - material: "DIAMOND_SWORD"
#   amount: 1
#   name: "Kiếm Thần"
#   lore:
#     - "Một thanh kiếm sắc bén."
#   enchantments:
#     - "sharpness:5"
#     - "unbreaking:3"
#   # Đặt là true nếu muốn vật phẩm này có "dấu vân tay" để dùng cho
#   # yêu cầu của nhiệm vụ khác.
#   quest-item: true
#
# =================================================================================================
#
# IV. REQUIREMENTS (requirements) & V. NEXT QUEST (next-quest)
#
# -------------------------------------------------------------------------------------------------
#
# requirements:
#   required-items:
#     # Vật phẩm thường, chỉ cần có trong túi đồ
#     - material: "NETHER_STAR"
#       amount: 1
#     # Vật phẩm yêu cầu "dấu vân tay" từ nhiệm vụ 'the_ocean_trial'
#     - material: "HEART_OF_THE_SEA"
#       amount: 1
#       from-quest: "the_ocean_trial"
#
# next-quest: "ten_nhiem_vu_tiep_theo"
#
# =================================================================================================

# PHIÊN BẢN CẤU HÌNH (KHÔNG THAY ĐỔI)
config-version: '${project.version}'

quest-archetypes:
  # =================================================================
  #                    CHUỖI NHIỆM VỤ: KHỞI ĐẦU
  # =================================================================
  newbie_1_wood:
    trigger-scenarios:
      - 'JOIN:FIRST'
    objectives:
      - type: 'BREAK_BLOCK'
        target:
          - 'OAK_LOG'
          - 'BIRCH_LOG'
          - 'SPRUCE_LOG'
        amount: 10
    rewards:
      - type: "ITEM"
        items:
          - material: "STONE_AXE"
    next-quest: "newbie_2_stoneage"

  newbie_2_stoneage:
    objectives:
      - type: 'GATHER_ITEM'
        target: 'COBBLESTONE'
        amount: 20
    rewards:
      - type: "ITEM"
        items:
          - material: "STONE_PICKAXE"
    next-quest: "newbie_3_tools"

  newbie_3_tools:
    objectives:
      - type: 'ITEM_CRAFT'
        target: 'STONE_SWORD'
        amount: 1
      - type: 'ITEM_CRAFT'
        target: 'STONE_SHOVEL'
        amount: 1
    rewards:
      - type: "ITEM"
        items:
          - material: "BREAD"
            amount: 5
    next-quest: "newbie_4_shelter"

  newbie_4_shelter:
    objectives:
      - type: 'PLACE_BLOCK'
        target: 'OAK_PLANKS'
        amount: 30
      - type: 'ITEM_CRAFT'
        target: 'FURNACE'
        amount: 1
    rewards:
      - type: "CHOICE"
        title: "Chọn giường của bạn"
        items:
          - material: "WHITE_BED"
          - material: "RED_BED"
          - material: "BLUE_BED"

  # ... (and many more example quests) ...
                

placeholders.yml

▶ Xem toàn bộ file placeholders.yml

# =================================================================
#                         HƯỚNG DẪN MỚI
# =================================================================
# Bạn có thể nhóm các từ khóa có chung một ý nghĩa lại với nhau.
# Mỗi nhóm sẽ có một chuỗi placeholder và một danh sách các từ khóa liên quan.
# Nếu câu hỏi của người chơi chứa BẤT KỲ từ khóa nào trong danh sách,
# Plugin sẽ sử dụng placeholder tương ứng để cung cấp ngữ cảnh cho AI.
#
# Định dạng:
# ten_nhom_tuy_y:
#   placeholder: '%placeholder_api%'
#   keywords:
#     - 'từ khóa 1'
#     - 'từ khóa 2'
#     - 'từ khóa 3'
# =================================================================

# Phiên bản cấu hình, KHÔNG THAY ĐỔI DÒNG NÀY.
# Plugin dùng nó để tự động cập nhật file config khi cần.
config-version: '${project.version}'

# =================================================================
placeholders:
  location:
    placeholder: '%player_location_world%, %player_location_x%, %player_location_y%, %player_location_z%'
    keywords:
      - 'vị trí'
      - 'tọa độ'
      - 'đang ở đâu'

  biome:
    placeholder: '%player_biome_name%'
    keywords:
      - 'biome'
      - 'khu vực'

  world:
    placeholder: '%player_world_name%'
    keywords:
      - 'thế giới'

  health:
    placeholder: '%player_health_rounded% / %player_max_health_rounded%'
    keywords:
      - 'máu'
      - 'hp'
      - 'sinh lực'

  hunger:
    placeholder: '%player_food_level%/20'
    keywords:
      - 'đói'
      - 'thanh đồ ăn'
      - 'thức ăn'

  level:
    placeholder: '%player_level%'
    keywords:
      - 'cấp độ'
      - 'level'

  server_time:
    placeholder: '%server_time_12%'
    keywords:
      - 'thời gian'
      - 'mấy giờ'

  server_players:
    placeholder: '%server_online% / %server_max_players%'
    keywords:
      - 'người chơi'
      - 'online'
      - 'số người'

  server_tps:
    placeholder: '%server_tps_1%'
    keywords:
      - 'tps'
      - 'hiệu năng'
                

keywords.yml

▶ Xem toàn bộ file keywords.yml

# =================================================================
#            DANH SÁCH TỪ KHÓA KHÔNG THỂ DỊCH TÙY CHỈNH
# =================================================================
# Thêm bất kỳ từ hoặc cụm từ nào bạn KHÔNG muốn trình dịch dịch vào đây.
# Điều này rất hữu ích cho các từ khóa dành riêng cho plugin, tên người chơi,
# tên lệnh, hoặc các giá trị đặc biệt cần được giữ nguyên.
#
# - Quá trình kiểm tra không phân biệt chữ hoa chữ thường.
# - Mỗi từ khóa nên nằm trên một dòng riêng, bắt đầu bằng dấu gạch ngang (-).
# =================================================================

# Phiên bản cấu hình, KHÔNG THAY ĐỔI DÒNG NÀY.
# Plugin dùng nó để tự động cập nhật file config khi cần.
config-version: '${project.version}'

# =================================================================
keywords:
  # General
  - "true"
  - "false"
  - "null"
  - "default"
  - "Lowest"
  - "Low"
  - "Normal"
  - "High"
  - "Highest"

  # Plugin Specific
  - "AdminShop"
  - "AnotherPluginValue"

  # Minecraft Items & Blocks
  - "ACACIA_BOAT"
  - "APPLE"
  - "ARMOR_STAND"
  # ... (and many more keywords)
                

lang/vi.yml (và các file ngôn ngữ khác)

Các tệp trong thư mục lang cho phép bạn tùy chỉnh mọi thông báo mà plugin hiển thị cho người chơi. Bạn có thể thay đổi văn bản để phù hợp với phong cách của máy chủ hoặc dịch sang một ngôn ngữ mới.

▶ Xem ví dụ file lang/vi.yml

# =================================================================
#                 TÙY CHỈNH THÔNG BÁO CỦA PLUGIN
# =================================================================
# Chào mừng bạn đến với file ngôn ngữ!
# Tại đây, bạn có thể thay đổi toàn bộ nội dung các thông báo mà
# Gemini-AI gửi cho người chơi và quản trị viên.
# =================================================================

# TIỀN TỐ CHUNG CHO CÁC THÔNG BÁO
message-prefix: "[alilShady]: "

# DANH SÁCH BỎ QUA TIỀN TỐ
prefix-exemptions:
  - 'public-ask-prefix'
  - 'translation.confirm-prompt'
  # ... (các key khác)

# --- Các tin nhắn chung ---
ask-success: ""
console-ask-success: "[alilShady]: "
reload-success: "Cấu hình đã được tải lại thành công!"
no-permission: "Bạn không có quyền để thực hiện lệnh này!"
# ... (nhiều tin nhắn khác)
                

📖Cấu Hình Nhiệm Vụ

Hệ thống nhiệm vụ của Gemini-AI được định nghĩa trong quests.yml. Dưới đây là hướng dẫn chi tiết về cấu trúc và các giá trị có thể sử dụng.

I. Trigger (Kích hoạt)

Trigger là các sự kiện trong trò chơi kích hoạt việc giao một nhiệm vụ. Nếu bất kỳ trigger nào được liệt kê xảy ra, plugin sẽ kiểm tra các yêu cầu khác và giao nhiệm vụ cho người chơi.

Sử dụng Mô tả
PAPI:<placeholder> <operator> <value> Kích hoạt dựa trên giá trị từ PlaceholderAPI. Các toán tử hợp lệ là >, >=, <, <=, ==, !=.
JOIN Kích hoạt khi một người chơi tham gia máy chủ.
JOIN:FIRST Kích hoạt khi người chơi tham gia máy chủ lần đầu tiên.
QUIT Kích hoạt khi người chơi thoát máy chủ.
DEATH Kích hoạt khi người chơi chết.
RESPAWN Kích hoạt khi người chơi hồi sinh.
WORLD_CHANGE Kích hoạt khi người chơi chuyển đổi giữa các thế giới.
KILL_MOB:<ENTITY_TYPE> Kích hoạt khi người chơi giết một loại mob cụ thể (ví dụ: ZOMBIE).
PLAYER_KILL Kích hoạt khi người chơi giết một người chơi khác.
TAKE_DAMAGE:<DAMAGE_TYPE> Kích hoạt khi người chơi nhận sát thương từ một nguồn cụ thể (ví dụ: FALL, LAVA).
BLOCK_ATTACK Kích hoạt khi người chơi đỡ đòn tấn công bằng khiên.
BIOME_ENTER:<BIOME_NAME> Kích hoạt khi người chơi đi vào một quần xã sinh vật cụ thể (ví dụ: PLAINS).
PORTAL_USE:<PORTAL_TYPE> Kích hoạt khi người chơi sử dụng một cổng dịch chuyển (ví dụ: NETHER_PORTAL, END_PORTAL).
REACH_HEIGHT:<operator>:<Y_level> Kích hoạt khi người chơi đạt đến một độ cao Y cụ thể. Các toán tử hợp lệ là >, >=, <, <=, ==, !=.
BLOCK_BREAK:<MATERIAL_NAME> Kích hoạt khi người chơi phá một loại khối cụ thể (ví dụ: DIAMOND_ORE).
BLOCK_PLACE:<MATERIAL_NAME> Kích hoạt khi người chơi đặt một loại khối cụ thể.
USE:<MATERIAL_NAME> Kích hoạt khi người chơi tương tác (chuột phải) với một vật phẩm hoặc khối cụ thể.
ITEM_CONSUME:<MATERIAL_NAME> Kích hoạt khi người chơi ăn hoặc uống một vật phẩm cụ thể.
ITEM_CRAFT:<MATERIAL_NAME> Kích hoạt khi người chơi chế tạo một vật phẩm cụ thể.
FISH:<STATE> Kích hoạt dựa trên trạng thái câu cá (ví dụ: CAUGHT_FISH, FAILED_ATTEMPT).
VILLAGER_TRADE Kích hoạt khi người chơi hoàn thành một giao dịch với dân làng.
PLANT_CROP:<MATERIAL_NAME> Kích hoạt khi người chơi trồng một loại cây cụ thể.
HARVEST_CROP:<MATERIAL_NAME> Kích hoạt khi người chơi thu hoạch một loại cây cụ thể.
STRIP_LOG:<LOG_TYPE> Kích hoạt khi người chơi cạo vỏ một loại gỗ cụ thể.
TILL_SOIL Kích hoạt khi người chơi dùng cuốc xới đất.
SHEAR_ENTITY:<ENTITY_TYPE> Kích hoạt khi người chơi cạo lông một con vật.
FILL_BUCKET:<BUCKET_TYPE> Kích hoạt khi người chơi múc đầy một xô.
EMPTY_BUCKET:<BUCKET_TYPE> Kích hoạt khi người chơi đổ một xô ra.
PLAYER_SLEEP Kích hoạt khi người chơi nằm lên giường.
TIME_IS:<STATE> Kích hoạt khi thời gian trong game là DAY hoặc NIGHT.
LEVEL_UP:<level> Kích hoạt khi người chơi đạt một cấp độ kinh nghiệm cụ thể.
ENCHANT:<ENCHANTMENT>:<level> Kích hoạt khi người chơi phù phép một vật phẩm với một cấp độ enchantment cụ thể (ví dụ: SHARPNESS:5).
TAME:<ENTITY_TYPE> Kích hoạt khi người chơi thuần hóa một con vật.
GAIN_EFFECT:<POTION_EFFECT>:<level> Kích hoạt khi người chơi nhận một hiệu ứng thuốc cụ thể với cấp độ nhất định.
ITEM_BREAK:<MATERIAL_NAME> Kích hoạt khi một vật phẩm của người chơi bị hỏng.
ITEM_REPAIR Kích hoạt khi người chơi sửa chữa một vật phẩm tại đe.
ITEM_DROP:<MATERIAL_NAME> Kích hoạt khi người chơi vứt một vật phẩm.
ITEM_PICKUP:<MATERIAL_NAME> Kích hoạt khi người chơi nhặt một vật phẩm.

II. Objectives (Mục tiêu)

Mục tiêu là danh sách các yêu cầu mà người chơi phải hoàn thành để kết thúc nhiệm vụ. Bạn có thể sử dụng một mục tiêu duy nhất hoặc một danh sách các mục tiêu.

Loại (`type`) Mục tiêu (`target`) Mô tả
KILL_MOB Tên EntityType (ví dụ: ZOMBIE) Giết một loại mob cụ thể với số lượng yêu cầu.
GATHER_ITEM Tên Material của vật phẩm (ví dụ: DIAMOND) Thu thập đủ số lượng vật phẩm trong túi đồ.
BREAK_BLOCK Tên Material của khối (ví dụ: OAK_LOG) Phá một số lượng khối cụ thể.
PLACE_BLOCK Tên Material của khối (ví dụ: TORCH) Đặt một số lượng khối cụ thể.
REACH_LEVEL *Không dùng đến* Đạt một cấp độ kinh nghiệm yêu cầu.
KILL_PLAYER Tên người chơi hoặc ANY Giết một người chơi cụ thể hoặc bất kỳ người chơi nào.
BREED_ANIMAL Tên EntityType (ví dụ: COW) Nhân giống một số lượng con vật cụ thể.
TAME_ANIMAL Tên EntityType (ví dụ: WOLF) Thuần hóa một số lượng con vật cụ thể.
CONSUME_ITEM Tên Material (ví dụ: APPLE) Ăn hoặc uống một vật phẩm cụ thể.
SMELT_ITEM Tên Material đầu ra (ví dụ: IRON_INGOT) Nung chảy một số lượng vật phẩm cụ thể.
ENCHANT_ITEM Tên Enchantment (ví dụ: sharpness) Phù phép một vật phẩm với một cấp độ enchantment tối thiểu.
TRADE_VILLAGER *Không dùng đến* Giao dịch với dân làng một số lần cụ thể.
FISH_ITEM Tên Material câu được (ví dụ: SALMON) Câu được một số lượng vật phẩm cụ thể.
WEAR_ARMOR Tên loại giáp (ví dụ: DIAMOND, IRON) Mặc một bộ giáp đầy đủ.
PLANT_CROP Tên Material của hạt giống (ví dụ: WHEAT_SEEDS) Trồng một số lượng cây cụ thể.
ITEM_CRAFT Tên Material của vật phẩm (ví dụ: STONE_SWORD) Chế tạo một số lượng vật phẩm cụ thể.
HARVEST_CROP Tên Material của cây trồng (ví dụ: WHEAT) Thu hoạch một số lượng cây trồng cụ thể.
REACH_HEIGHT *Không dùng đến* Đạt đến một độ cao Y yêu cầu.
BLOCK_ATTACK *Không dùng đến* Đỡ đòn bằng khiên một số lần cụ thể.
BIOME_ENTER Tên Biome (ví dụ: DESERT) Đi vào một quần xã sinh vật yêu cầu.
USE Tên Material (ví dụ: LEVER) Tương tác (chuột phải) với một vật phẩm hoặc khối cụ thể.
STRIP_LOG Tên loại gỗ (ví dụ: OAK_LOG) Cạo vỏ một số lượng gỗ cụ thể.

III. Rewards (Phần thưởng)

Phần thưởng sẽ được trao cho người chơi khi họ hoàn thành nhiệm vụ. Một nhiệm vụ có thể có nhiều loại phần thưởng khác nhau.

Loại (`type`) Thuộc tính Mô tả
COMMAND commands Một danh sách các lệnh sẽ được thực thi từ console. Sử dụng %player% cho tên người chơi.
*không có* Phần thưởng thực thi một hoặc nhiều lệnh.
ITEM items Một danh sách các vật phẩm để tặng cho người chơi.
*không có* Phần thưởng tặng cho người chơi một hoặc nhiều vật phẩm.
CHOICE title Tiêu đề của GUI chọn phần thưởng.
items Một danh sách các vật phẩm mà người chơi có thể lựa chọn.
*không có* Phần thưởng mở một GUI để người chơi tự chọn vật phẩm.

Mỗi vật phẩm trong phần thưởng ITEM hoặc CHOICE có thể có các thuộc tính sau:

Thuộc tính Kiểu Mô tả
material Chuỗi Tên Material của vật phẩm (ví dụ: DIAMOND_SWORD).
amount Số nguyên Số lượng vật phẩm.
name Chuỗi Tên hiển thị của vật phẩm (hỗ trợ MiniMessage).
lore Danh sách chuỗi Mô tả của vật phẩm (mỗi dòng một mục, hỗ trợ MiniMessage).
enchantments Danh sách chuỗi Danh sách các phù phép (ví dụ: sharpness:5).
quest-item Boolean Nếu là true, vật phẩm này có "dấu vân tay" và có thể được sử dụng trong mục yêu cầu của các nhiệm vụ khác.

IV. Requirements (Yêu cầu)

Yêu cầu là các điều kiện mà người chơi phải đáp ứng TRƯỚC KHI nhận một nhiệm vụ. Hiện tại chỉ hỗ trợ yêu cầu về vật phẩm.

Thuộc tính Kiểu Mô tả
material Chuỗi Tên Material của vật phẩm yêu cầu.
amount Số nguyên Số lượng vật phẩm yêu cầu.
from-quest Chuỗi ID của nhiệm vụ mà vật phẩm phải có nguồn gốc (ví dụ: một vật phẩm `quest-item` từ nhiệm vụ khác).

V. Next Quest (Nhiệm vụ tiếp theo)

Bạn có thể tạo một chuỗi nhiệm vụ bằng cách chỉ định ID của nhiệm vụ tiếp theo.

Thuộc tính Kiểu Mô tả
next-quest Chuỗi ID của nhiệm vụ tiếp theo sẽ được giao cho người chơi sau khi nhiệm vụ hiện tại hoàn thành.