คู่มือ
วิธีทำปลั๊กอิน BungeeCord
อัปเดตเมื่อ 18 ตุลาคม 2569
ปลั๊กอิน BungeeCord รันบนพร็อกซีที่อยู่หน้าเซิร์ฟเวอร์ของคุณ ไม่ได้รันบนเซิร์ฟเวอร์เกม มันเห็นผู้เล่นเชื่อมต่อ ย้ายเซิร์ฟเวอร์ และออก จึงเป็นที่ที่เหมาะสำหรับแชตทั้งเครือข่าย เครื่องมือทีมงาน โหมดปิดปรับปรุง MOTD และการส่งผู้เล่นไปมาระหว่างเซิร์ฟเวอร์ มันไม่มีโลกหรือบล็อก: เกมเพลย์ต้องอยู่ในปลั๊กอินบนเซิร์ฟเวอร์หลังบ้าน
เปลี่ยนคำสั่งให้เข้ากับเครือข่ายของคุณ
สร้างสิ่งนี้ด้วย Codexeทีละขั้นตอน
1.ยืนยันพร็อกซีที่คุณใช้
BungeeCord (หรือ fork อย่าง Waterfall) และ Velocity เป็น API คนละตัว ปลั๊กอิน BungeeCord รันบน Velocity ไม่ได้ และกลับกันก็เช่นกัน
2.ตั้งค่าโปรเจกต์
โปรเจกต์ Maven หรือ Gradle ที่มี dependency
bungeecord-apiใน scopeprovidedพร็อกซีจะจัดหาให้ตอนรัน3.เขียนคลาสหลัก
คลาสที่ extends
net.md_5.bungee.api.plugin.Pluginพร้อมonEnable()สำหรับลงทะเบียนคำสั่งและ listener ผ่านgetProxy().getPluginManager()4.อธิบายใน bungee.yml
name,version,mainและauthorBungeeCord อ่านplugin.ymlได้ด้วย แต่bungee.ymlช่วยไม่ให้สับสนกับปลั๊กอิน Spigot คำสั่งลงทะเบียนในโค้ด ไม่ได้อยู่ในไฟล์5.เขียนคำสั่งและ listener
คำสั่ง extends
Commandส่วน listener implementListenerพร้อมเมธอด@EventHandlerสำหรับอีเวนต์อย่างPostLoginEventหรือServerSwitchEvent6.สื่อสารกับเซิร์ฟเวอร์หลังบ้านถ้าจำเป็น
พร็อกซีมองไม่เห็นอินเวนทอรีหรือโลก สำหรับเรื่องนั้น ปลั๊กอินเสริมเล็กๆ บนเซิร์ฟเวอร์หลังบ้านแต่ละตัวจะแลกเปลี่ยน plugin message กับปลั๊กอินพร็อกซี
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