คู่มือ

วิธีทำปลั๊กอิน BungeeCord

อัปเดตเมื่อ 18 ตุลาคม 2569

ปลั๊กอิน BungeeCord รันบนพร็อกซีที่อยู่หน้าเซิร์ฟเวอร์ของคุณ ไม่ได้รันบนเซิร์ฟเวอร์เกม มันเห็นผู้เล่นเชื่อมต่อ ย้ายเซิร์ฟเวอร์ และออก จึงเป็นที่ที่เหมาะสำหรับแชตทั้งเครือข่าย เครื่องมือทีมงาน โหมดปิดปรับปรุง MOTD และการส่งผู้เล่นไปมาระหว่างเซิร์ฟเวอร์ มันไม่มีโลกหรือบล็อก: เกมเพลย์ต้องอยู่ในปลั๊กอินบนเซิร์ฟเวอร์หลังบ้าน

เปลี่ยนคำสั่งให้เข้ากับเครือข่ายของคุณ

สร้างสิ่งนี้ด้วย Codexe

ทีละขั้นตอน

  1. 1.ยืนยันพร็อกซีที่คุณใช้

    BungeeCord (หรือ fork อย่าง Waterfall) และ Velocity เป็น API คนละตัว ปลั๊กอิน BungeeCord รันบน Velocity ไม่ได้ และกลับกันก็เช่นกัน

  2. 2.ตั้งค่าโปรเจกต์

    โปรเจกต์ Maven หรือ Gradle ที่มี dependency bungeecord-api ใน scope provided พร็อกซีจะจัดหาให้ตอนรัน

  3. 3.เขียนคลาสหลัก

    คลาสที่ extends net.md_5.bungee.api.plugin.Plugin พร้อม onEnable() สำหรับลงทะเบียนคำสั่งและ listener ผ่าน getProxy().getPluginManager()

  4. 4.อธิบายใน bungee.yml

    name, version, main และ author BungeeCord อ่าน plugin.yml ได้ด้วย แต่ bungee.yml ช่วยไม่ให้สับสนกับปลั๊กอิน Spigot คำสั่งลงทะเบียนในโค้ด ไม่ได้อยู่ในไฟล์

  5. 5.เขียนคำสั่งและ listener

    คำสั่ง extends Command ส่วน listener implement Listener พร้อมเมธอด @EventHandler สำหรับอีเวนต์อย่าง PostLoginEvent หรือ ServerSwitchEvent

  6. 6.สื่อสารกับเซิร์ฟเวอร์หลังบ้านถ้าจำเป็น

    พร็อกซีมองไม่เห็นอินเวนทอรีหรือโลก สำหรับเรื่องนั้น ปลั๊กอินเสริมเล็กๆ บนเซิร์ฟเวอร์หลังบ้านแต่ละตัวจะแลกเปลี่ยน plugin message กับปลั๊กอินพร็อกซี

  7. 7.ติดตั้งบนพร็อกซี

    ใส่ .jar ในโฟลเดอร์ plugins/ ของพร็อกซีแล้วรีสตาร์ตพร็อกซี ไม่ใช่เซิร์ฟเวอร์หลังบ้าน

อีเวนต์ของพร็อกซีที่มีประโยชน์

เหตุการณ์ทำงานเมื่อไรการใช้งานทั่วไป
ProxyPingEventไคลเอนต์รีเฟรชรายชื่อเซิร์ฟเวอร์MOTD จำนวนผู้เล่น ข้อความปิดปรับปรุง
PostLoginEventผู้เล่นเข้าพร็อกซีแล้วข้อความเข้าเกม โหลดข้อมูลผู้เล่น
ServerConnectEventผู้เล่นกำลังจะเชื่อมต่อกับเซิร์ฟเวอร์ส่งผู้เล่นไปล็อบบี้ บล็อกเซิร์ฟเวอร์
ServerSwitchEventผู้เล่นย้ายไปเซิร์ฟเวอร์อื่นข้อความ "เข้าเซิร์ฟเวอร์แล้ว" ทั้งเครือข่าย
PlayerDisconnectEventผู้เล่นออกจากเครือข่ายบันทึกข้อมูล แจ้งเตือนทีมงาน
ChatEventผู้เล่นส่งข้อความแชตหรือคำสั่งแชตทั้งเครือข่าย ตัวกรอง แชตทีมงาน

ตั้งค่าเครือข่ายให้ถูกต้อง

  • เปิด ip_forward ใน config.yml ของพร็อกซี และ bungeecord: true ใน spigot.yml ของเซิร์ฟเวอร์ Spigot หรือ Paper แต่ละตัว เพื่อให้ชื่อและ UUID ของผู้เล่นถูกส่งต่อ
  • ตั้งเซิร์ฟเวอร์หลังบ้านเป็น online-mode=false และทำให้แน่ใจว่าเข้าตรงจากอินเทอร์เน็ตไม่ได้ เข้าได้ผ่านพร็อกซีเท่านั้น
  • plugin message ส่งได้เฉพาะตอนที่มีผู้เล่นเชื่อมต่อกับเซิร์ฟเวอร์หลังบ้านนั้นอยู่ ข้อความที่ส่งไปเซิร์ฟเวอร์ที่ว่างจึงไม่ถึง

ตัวอย่างคำอธิบาย

"ปลั๊กอินพร็อกซี BungeeCord 1.21 ชื่อ NetUtils /lobby ส่งผู้เล่นไปเซิร์ฟเวอร์ล็อบบี้ /staffchat <message> (alias /sc) ส่งข้อความถึงทุกคนที่มี netutils.staff บนทุกเซิร์ฟเวอร์ /maintenance on|off แสดง MOTD ปิดปรับปรุงและเตะผู้เล่นที่ไม่มี netutils.bypass มีข้อความในแชตทีมงานเมื่อทีมงานย้ายเซิร์ฟเวอร์ ชื่อเซิร์ฟเวอร์ MOTD และข้อความอยู่ใน config.yml"

ด้วย Codexe

เลือกประเภท BungeeCord/Velocity และระบุว่าคุณใช้พร็อกซีตัวไหน เพราะเป็น API คนละตัว Codexe คอมไพล์ปลั๊กอินด้วย Maven และเช็กว่า .jar มี descriptor ที่ถูกต้องก่อนจะพร้อม ถ้าไม่ระบุเวอร์ชันในคำขอ จะใช้ BungeeCord API 1.21 ถ้าคุณต้องการปลั๊กอินเสริมฝั่งหลังบ้าน ให้ขอแยกเป็นโปรเจกต์ Spigot/Paper อีกโปรเจกต์

ลองเลย ยังไม่รองรับเซิร์ฟเวอร์พร็อกซี จึงต้องทดสอบปลั๊กอินพร็อกซีบนเครือข่ายของคุณเองหรือพร็อกซีในเครื่องที่มีเซิร์ฟเวอร์หลังบ้านหนึ่งตัว ดูเพิ่มเติมที่ ตัวสร้างปลั๊กอิน BungeeCord

คำถาม

ปลั๊กอิน BungeeCord เปลี่ยนบล็อกหรืออินเวนทอรีได้ไหม?

ไม่ได้ พร็อกซีจัดการแค่การเชื่อมต่อและข้อความ ใช้ปลั๊กอินฝั่งหลังบ้านสำหรับเกมเพลย์ และใช้ plugin message ถ้าทั้งสองต้องทำงานร่วมกัน

ใช้กับ Velocity ได้ไหม?

ไม่ได้ Velocity มี API ของตัวเองและ velocity-plugin.json ถ้าคุณใช้ทั้งคู่ ให้ทำสองโปรเจกต์

แชตควรใช้ปลั๊กอินพร็อกซีหรือปลั๊กอินหลังบ้าน?

ใช้ปลั๊กอินพร็อกซีถ้าแชตต้องถึงผู้เล่นทุกเซิร์ฟเวอร์ ใช้ปลั๊กอินหลังบ้านถ้าแชตอยู่แค่ในเซิร์ฟเวอร์เดียว

สร้างปลั๊กอินสำหรับเครือข่ายของคุณ

พรอมต์นี้จะเปิดขึ้นพร้อมส่งได้ทันที:

“ปลั๊กอินพร็อกซี BungeeCord 1.21 ชื่อ NetUtils: /lobby ส่งผู้เล่นไปเซิร์ฟเวอร์ล็อบบี้, /staffchat (alias /sc) ส่งข้อความถึงทุกคนที่มี netutils.staff บนทุกเซิร์ฟเวอร์, /maintenance on|off แสดง MOTD ปิดปรับปรุงและเตะผู้เล่นที่ไม่มี netutils.bypass, ประกาศในแชตทีมงานเมื่อทีมงานย้ายเซิร์ฟเวอร์, ชื่อเซิร์ฟเวอร์ MOTD และข้อความอยู่ใน config.yml”

สร้างสิ่งนี้ด้วย Codexe
วิธีทำปลั๊กอิน BungeeCord สำหรับเครือข่ายของคุณ | Codexe