Hướng dẫn

Cách làm plugin nhiệm vụ cho Minecraft

Cập nhật 18 tháng 10, 2026

Nhiệm vụ cho người chơi một lý do để chơi: giết 20 zombie, đào 64 sắt, mang 10 ổ bánh mì cho dân làng. Plugin nhiệm vụ gồm ba thứ: mục tiêu lắng nghe các sự kiện trong game, tiến độ được lưu cho từng người chơi, và phần thưởng. Định nghĩa nhiệm vụ trong tệp cấu hình giúp bạn thêm nhiệm vụ mới mà không phải động vào mã.

Đổi nhiệm vụ và phần thưởng theo ý bạn.

Tạo thứ này với Codexe

Từng bước

  1. 1.Chọn các loại mục tiêu

    Bắt đầu với vài loại: giết một loại mob, phá hoặc đặt khối, thu thập vật phẩm, chế tạo, đến một địa điểm, nói chuyện với NPC. Mọi nhiệm vụ đều được ghép từ những loại này.

  2. 2.Định nghĩa nhiệm vụ trong một tệp

    Mỗi nhiệm vụ trong quests.yml: một id, tên, mô tả, các mục tiêu kèm số lượng, phần thưởng và điều kiện (hoàn thành nhiệm vụ khác trước, có quyền, đạt cấp độ).

  3. 3.Theo dõi tiến độ của từng người chơi

    Lắng nghe các sự kiện đứng sau mỗi mục tiêu và cộng vào tiến độ của người chơi. Lưu vào SQLite hoặc một tệp để tiến độ còn nguyên sau khi thoát game và khởi động lại.

  4. 4.Hiển thị tiến độ

    Một menu /quests với các nhiệm vụ đang làm và đã xong, kèm tin nhắn, tiêu đề hoặc boss bar khi tiến độ thay đổi.

  5. 5.Trao phần thưởng

    Vật phẩm, kinh nghiệm, tiền qua Vault, hoặc lệnh console như lp user %player% permission set ... cho mọi thứ khác.

  6. 6.Build và hoàn thành một nhiệm vụ trong game

    Để Codexe biên dịch, vào máy chủ thử nghiệm, nhận một nhiệm vụ và hoàn thành nó. Sau đó khởi động lại và kiểm tra tiến độ và phần thưởng đã được lưu.

Các mục tiêu và sự kiện đứng sau chúng

Mục tiêuSự kiệnChi tiết cần quyết định
Giết mobEntityDeathEventChỉ tính mạng hạ bởi người chơi, hay tính cả thú cưng và mũi tên của họ
Phá khốiBlockBreakEventBỏ qua các khối do người chơi tự đặt, nếu không người chơi sẽ đặt rồi phá cùng một khối
Thu thập vật phẩmKiểm tra túi đồ hoặc sự kiện nhặt đồVật phẩm có bị lấy đi khi nộp nhiệm vụ hay không
Chế tạo vật phẩmCraftItemEventChế tạo bằng shift-click tạo ra nhiều cái cùng lúc
Đến một địa điểmPlayerMoveEventChỉ kiểm tra khi người chơi đổi sang khối khác, không phải mỗi lần di chuyển
Nói chuyện với NPCPlayerInteractEntityEventThực thể nào là người giao nhiệm vụ

Người giao nhiệm vụ

Người giao nhiệm vụ đơn giản nhất là một lệnh hoặc một menu. Với một nhân vật trong thế giới, một dân làng hoặc giá giáp có tên tùy chỉnh và một tag PersistentDataContainer là đủ mà không cần plugin khác: plugin nhận ra nó khi người chơi nhấp chuột phải vào. Nếu máy chủ của bạn đã dùng plugin NPC như Citizens, hãy ghi tên nó trong yêu cầu để plugin kết nối với nó.

Mô tả ví dụ

"Một plugin nhiệm vụ Paper 1.21.4 tên Quests. Các loại mục tiêu: giết mob, phá khối (không phải do người chơi đặt), thu thập vật phẩm và nói chuyện với một dân làng được gắn tag là người giao nhiệm vụ. Nhiệm vụ định nghĩa trong quests.yml với tên, mục tiêu, nhiệm vụ cần hoàn thành trước và phần thưởng (vật phẩm, kinh nghiệm, tiền Vault, lệnh console). /quests mở menu với các nhiệm vụ có sẵn, đang làm và đã xong. Tiến độ hiển thị trên action bar. Tối đa 3 nhiệm vụ đang làm. Nhiệm vụ hằng ngày đặt lại lúc nửa đêm theo giờ máy chủ. Tiến độ lưu trong SQLite."

Nhiệm vụ hằng ngày và lặp lại

  • Ghi rõ khi nào chúng được đặt lại: vào một giờ cố định mỗi ngày, hay 24 giờ sau khi người chơi hoàn thành.
  • Ghi rõ nhiệm vụ hằng ngày là ngẫu nhiên cho từng người chơi hay giống nhau cho tất cả.
  • Lưu thời điểm hoàn thành gần nhất, không phải một cờ đánh dấu, để việc đặt lại vẫn đúng cả khi máy chủ tắt.

Câu hỏi

Nhiệm vụ có dùng được PlaceholderAPI không?

Có. Hãy yêu cầu các placeholder như nhiệm vụ đang làm và tiến độ của nó, để bảng điểm và danh sách tab hiển thị được. Ghi tên PlaceholderAPI trong yêu cầu để nó được thêm làm dependency.

Tôi có thể viết nhiệm vụ bằng Skript không?

Hệ thống nhiệm vụ nhỏ vừa vặn trong một script Skript với biến. Nhiều loại mục tiêu, menu và tiến độ lưu cho hàng trăm người chơi thì dễ giữ nhanh và gọn gàng hơn trong một plugin.

Làm sao kiểm tra nhiệm vụ có hoạt động?

Hãy chơi thử trên máy chủ thử nghiệm của Codexe, và thêm bài kiểm thử bằng lời của bạn, ví dụ "một người chơi thường chạy /quests và thấy một menu mở ra". Bài kiểm thử kiểm tra tin nhắn, vật phẩm và menu, không kiểm tra mob hay khối trong thế giới.

Tạo plugin nhiệm vụ của bạn

Prompt này mở ra sẵn sàng để gửi:

“Một plugin nhiệm vụ Paper 1.21.4: các loại mục tiêu giết mob, phá khối không do người chơi đặt, thu thập vật phẩm và nói chuyện với dân làng được gắn tag; nhiệm vụ trong quests.yml với mục tiêu, nhiệm vụ cần làm trước và phần thưởng (vật phẩm, XP, tiền Vault, lệnh console); menu /quests với nhiệm vụ có sẵn, đang làm và đã xong; tiến độ trên action bar; tối đa 3 nhiệm vụ đang làm; nhiệm vụ hằng ngày đặt lại lúc nửa đêm; tiến độ lưu trong SQLite.”

Tạo thứ này với Codexe
Cách làm plugin nhiệm vụ cho Minecraft | Codexe