Hướng dẫn

Cách làm plugin BungeeCord

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

Plugin BungeeCord chạy trên proxy đứng trước các máy chủ của bạn, không chạy trên máy chủ game. Nó thấy người chơi kết nối, chuyển máy chủ và rời đi, nên đây là nơi phù hợp cho chat toàn mạng, công cụ cho staff, chế độ bảo trì, MOTD và việc chuyển người chơi giữa các máy chủ. Nó không có thế giới hay khối: gameplay thuộc về plugin trên các máy chủ backend.

Đổi các lệnh cho phù hợp với mạng máy chủ của bạn.

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

Từng bước

  1. 1.Xác nhận proxy bạn đang chạy

    BungeeCord (hoặc bản fork như Waterfall) và Velocity là hai API khác nhau. Plugin BungeeCord không chạy trên Velocity, và ngược lại.

  2. 2.Thiết lập dự án

    Một dự án Maven hoặc Gradle với dependency bungeecord-api ở scope provided. Proxy cung cấp nó lúc chạy.

  3. 3.Viết lớp chính

    Một lớp kế thừa net.md_5.bungee.api.plugin.Plugin, với onEnable() để đăng ký lệnh và listener qua getProxy().getPluginManager().

  4. 4.Mô tả nó trong bungee.yml

    name, version, main và author. BungeeCord cũng đọc plugin.yml, nhưng bungee.yml tránh nhầm lẫn với plugin Spigot. Lệnh được đăng ký trong mã, không phải trong tệp.

  5. 5.Viết lệnh và listener

    Lệnh kế thừa Command; listener triển khai Listener với các phương thức @EventHandler cho những sự kiện như PostLoginEvent hoặc ServerSwitchEvent.

  6. 6.Giao tiếp với máy chủ backend nếu cần

    Proxy không thấy được túi đồ hay thế giới. Cho việc đó, một plugin đi kèm nhỏ trên mỗi máy chủ backend trao đổi plugin message với plugin proxy.

  7. 7.Cài nó trên proxy

    Đặt tệp .jar vào thư mục plugins/ của proxy và khởi động lại proxy, không phải các máy chủ backend.

Các sự kiện proxy hữu ích

Sự kiệnKhi nào kích hoạtCách dùng thường gặp
ProxyPingEventClient làm mới danh sách máy chủMOTD, số người chơi, thông báo bảo trì
PostLoginEventNgười chơi đã vào proxyTin nhắn chào mừng, nạp dữ liệu người chơi
ServerConnectEventNgười chơi sắp kết nối tới một máy chủĐưa người chơi về sảnh, chặn máy chủ
ServerSwitchEventNgười chơi đã chuyển sang máy chủ khácTin nhắn "đã vào máy chủ" trên toàn mạng
PlayerDisconnectEventNgười chơi đã rời mạngLưu dữ liệu, thông báo cho staff
ChatEventNgười chơi gửi tin nhắn chat hoặc lệnhChat toàn mạng, bộ lọc, chat staff

Thiết lập mạng máy chủ đúng cách

  • Bật ip_forward trong config.yml của proxy và bungeecord: true trong spigot.yml của từng máy chủ Spigot hoặc Paper, để tên và UUID của người chơi được chuyển tiếp.
  • Đặt các máy chủ backend thành online-mode=false và đảm bảo không thể vào chúng trực tiếp từ internet, chỉ qua proxy.
  • Plugin message chỉ được truyền khi có người chơi đang kết nối tới máy chủ backend đó, nên tin nhắn gửi tới một máy chủ trống sẽ không đến nơi.

Mô tả ví dụ

"Một plugin proxy BungeeCord 1.21 tên NetUtils. /lobby đưa người chơi về máy chủ sảnh. /staffchat <message> (alias /sc) gửi tin nhắn tới mọi người có netutils.staff trên bất kỳ máy chủ nào. /maintenance on|off hiển thị MOTD bảo trì và kick những người chơi không có netutils.bypass. Một tin nhắn trong chat staff khi thành viên staff chuyển máy chủ. Tên máy chủ, MOTD và tin nhắn trong config.yml."

Với Codexe

Chọn loại BungeeCord/Velocity và ghi rõ bạn chạy proxy nào, vì đó là hai API khác nhau. Codexe biên dịch plugin bằng Maven và kiểm tra tệp .jar có đúng tệp mô tả trước khi Sẵn sàng; nếu yêu cầu không có phiên bản, API BungeeCord 1.21 sẽ được dùng. Nếu bạn cần một plugin đi kèm trên backend, hãy yêu cầu nó như một dự án Spigot/Paper riêng.

Dùng thử ngay chưa chạy được máy chủ proxy, nên hãy thử plugin proxy trên mạng máy chủ của bạn hoặc một proxy cục bộ với một máy chủ backend. Xem thêm trình tạo plugin BungeeCord.

Câu hỏi

Plugin BungeeCord có thay đổi được khối hay túi đồ không?

Không, proxy chỉ xử lý kết nối và tin nhắn. Hãy dùng plugin backend cho gameplay, và plugin message nếu hai bên phải phối hợp với nhau.

Nó có chạy trên Velocity không?

Không. Velocity có API riêng và velocity-plugin.json. Nếu bạn chạy cả hai, hãy làm hai dự án.

Plugin proxy hay plugin backend cho chat?

Plugin proxy nếu chat phải đến được người chơi trên mọi máy chủ. Plugin backend nếu chat chỉ ở trong một máy chủ.

Làm plugin cho mạng máy chủ của bạn

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

“Một plugin proxy BungeeCord 1.21 tên NetUtils: /lobby đưa người chơi về máy chủ sảnh, /staffchat (alias /sc) gửi tin nhắn tới mọi người có netutils.staff trên bất kỳ máy chủ nào, /maintenance on|off hiển thị MOTD bảo trì và kick người chơi không có netutils.bypass, thông báo trong chat staff khi staff chuyển máy chủ, tên máy chủ, MOTD và tin nhắn trong config.yml.”

Tạo thứ này với Codexe
Cách làm plugin BungeeCord cho mạng máy chủ của bạn | Codexe