Folia 1.21.11 Java 21 Stable Release Redis Sync

LiamjudBedWars
Docs

เอกสารประกอบการใช้งานปลั๊กอินสำหรับ mc.liamjud.online
ออกแบบเพื่อ Folia Regionized Multi-threading โดยเฉพาะ

104
Players
8
Teams
8G
RAM Min
30s
Countdown
01

การตั้งค่าเริ่มต้น

Setup

ปลั๊กอินถูกออกแบบมาเพื่อ Folia โดยเฉพาะ ซึ่งใช้ระบบ Multi-threading แยกตาม Region การติดตั้งจึงต้องการความละเอียดสูงกว่า Bukkit/Spigot ทั่วไป

1
ตรวจสอบ Java: java --version ต้องเป็น Java 21 ขึ้นไป — แนะนำ GraalVM
2
เตรียมฐานข้อมูล: MySQL (Port 3306) และ Redis (Port 6379)
3
ติดตั้งไฟล์ .jar ในโฟลเดอร์ plugins/ แล้วรัน run.bat เพื่อสร้างไฟล์ Config
4
แก้ไข config.yml ใส่ข้อมูล MySQL / Redis แล้วรีสตาร์ทเซิร์ฟเวอร์
02

ระบบจัดการโลก

World Management

ระบบข้ามโลกที่รองรับ Folia Native Async Teleport — ปลอดภัยต่อ Thread Safety ของ Folia

คำสั่ง คำอธิบาย Permission
/bw world import [ชื่อ] [ประเภท] โหลดโลกที่มีอยู่หรือสร้างใหม่ (normal / void) bw.admin.world
/bw world tp [ชื่อโลก] วาร์ปข้ามโลกแบบ Async ปลอดภัยต่อ Folia bw.admin.tp
/bw world list ดูรายชื่อโลกที่โหลดอยู่ในปัจจุบัน bw.admin.world
ข้อแนะนำ: สำหรับ BedWars Arena ให้ Import ด้วยประเภท void เพื่อลดภาระ CPU ของเซิร์ฟเวอร์อย่างมีนัยสำคัญ
03

คำสั่งทั้งหมด

Commands
คำสั่ง คำอธิบาย Permission
/bw join <arena> เข้าเล่นในสนามที่กำหนด bw.player
/bw leave ออกจากเกมปัจจุบัน bw.player
/bw setup เปิดเมนูตั้งค่าสนาม (GUI) bw.admin
/bw reload รีโหลดไฟล์ Config ทั้งหมด bw.admin
/bw world import [ชื่อ] [ประเภท] Import โลกสำหรับ Arena bw.admin.world
/bw world tp [ชื่อโลก] Async Teleport ข้ามโลก bw.admin.tp
/bw world list รายชื่อโลกที่โหลดอยู่ bw.admin.world
04

ไฟล์ Config หลัก

config.yml

ตั้งค่า server-id ให้ไม่ซ้ำกันในแต่ละเซิร์ฟเวอร์เมื่อใช้งาน Cross-server mode

config.yml
cross-server-mode: true

redis:
  server-id: "server-1"  # ต้องไม่ซ้ำกันในแต่ละเครื่อง

arena:
  min-players:        2
  countdown-seconds:  30

auto-load-worlds:
  - "Lobby"
  - "Arena_1"
Cross-server mode: เมื่อเปิดใช้งาน ระบบจะ Sync สถานะห้องเล่นผ่าน Redis แบบ Real-time ข้ามเซิร์ฟเวอร์ได้ทันที
05

การเพิ่มประสิทธิภาพ

Performance

เพื่อรองรับผู้เล่น 104 คน ได้อย่างลื่นไหล ใช้ JVM Flags ชุดนี้:

run.bat / run.sh
java -Xmx8G -Xms8G \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=200 \
  -XX:+ParallelRefProcEnabled \
  -XX:+AlwaysPreTouch \
  -jar folia-1.21.11.jar --nogui
-Xmx8G / -Xms8G จองและกำหนด Heap สูงสุด 8GB — ควรตั้งค่าเท่ากันเพื่อลด GC overhead
-XX:+UseG1GC ใช้ G1 Garbage Collector เหมาะกับ Heap ขนาดใหญ่และผู้เล่นจำนวนมาก
-XX:MaxGCPauseMillis=200 จำกัด GC Pause ไม่เกิน 200ms เพื่อป้องกัน Lag spike ระหว่างเกม
-XX:+AlwaysPreTouch จอง RAM ทั้งหมดตั้งแต่ Startup ลด Latency ช่วงแรกของเกม
GraalVM แนะนำ: ใช้ GraalVM JDK 21 แทน Oracle/OpenJDK เพื่อประสิทธิภาพ JIT compilation ที่ดีกว่า โดยเฉพาะบน Folia Multi-thread workloads