คู่มือ
วิธีทำปลั๊กอินสกอร์บอร์ด Minecraft
อัปเดตเมื่อ 18 ตุลาคม 2569
แถบด้านขวาของหน้าจอคือส่วนที่เห็นชัดที่สุดของหลายเซิร์ฟเวอร์: ชื่อเซิร์ฟเวอร์ ยศของผู้เล่น เงิน จำนวนการฆ่า ผู้เล่นออนไลน์ ปลั๊กอินวาดมันผ่าน Scoreboard API ของ Bukkit ส่วนที่ยากคือการให้ผู้เล่นทุกคนมีบรรทัดของตัวเองและอัปเดตอย่างลื่นไหล
เปลี่ยนบรรทัดให้เข้ากับเซิร์ฟเวอร์ของคุณ
สร้างสิ่งนี้ด้วย Codexeทีละขั้นตอน
1.เขียนบรรทัดต่างๆ
ชื่อบอร์ดและแต่ละบรรทัดจากบนลงล่าง พร้อมค่าที่แสดง: "Rank: Admin", "Coins: 1,250", "Online: 34" แถบด้านข้างแสดงได้สูงสุด 15 บรรทัด
2.ให้ผู้เล่นแต่ละคนมีสกอร์บอร์ดของตัวเอง
บรรทัดที่ต่างกันในแต่ละผู้เล่นต้องใช้สกอร์บอร์ดแยกต่อผู้เล่น จาก
Bukkit.getScoreboardManager().getNewScoreboard()แล้วตั้งด้วยplayer.setScoreboard(...)ตอนเข้าเกม3.สร้าง objective ของแถบด้านข้าง
ลงทะเบียน objective แบบ dummy แล้วตั้งช่องแสดงผลเป็น
DisplaySlot.SIDEBARแต่ละบรรทัดคือ entry ที่มีคะแนนกำหนดตำแหน่ง4.อัปเดตค่า
งานที่ทำซ้ำเป็นรอบ เช่น ทุกวินาที จะอัปเดตเฉพาะบรรทัดที่เปลี่ยน ใช้ prefix และ suffix ของทีมสำหรับข้อความเพื่อไม่ให้บรรทัดกะพริบ
5.เพิ่ม placeholder
ด้วย PlaceholderAPI บรรทัดอย่าง
%vault_eco_balance%จะแสดงค่าจากปลั๊กอินอื่นได้โดยไม่ต้องเขียนโค้ดเพิ่ม6.บิลด์แล้วดูในเกม
ให้ Codexe คอมไพล์ เข้าเซิร์ฟเวอร์ทดสอบแล้วเช็กทุกบรรทัด จากนั้นเปลี่ยนค่าแล้วดูว่าอัปเดตไหม
แถบด้านข้างทำงานอย่างไร
- แต่ละสกอร์บอร์ดแสดง objective ได้ทีละหนึ่งตัวในแถบด้านข้าง ชื่อที่แสดงของมันคือชื่อบอร์ด
- บรรทัดเรียงตามคะแนน จากมากไปน้อย คะแนนจึงเป็นแค่หมายเลขบรรทัดแบบกลับด้าน
- ทุกบรรทัดต้องเป็นคนละ entry: บรรทัดที่เหมือนกันสองบรรทัดต้องมีความต่างที่มองไม่เห็น เช่น รหัสสีที่ต่างกัน
- ตัวเลขสีแดงทางขวาซ่อนได้ตั้งแต่ Minecraft 1.20.3 ซึ่งเพิ่มรูปแบบตัวเลขของคะแนนเข้ามา เวอร์ชันเก่าจะแสดงตลอด
- ผู้เล่นเห็นสกอร์บอร์ดได้แค่อันเดียว: ถ้าปลั๊กอินอื่นตั้งของตัวเอง อันสุดท้ายจะชนะ ใช้ปลั๊กอินเดียวสำหรับแถบด้านข้าง หรือระบุว่าปลั๊กอินอื่นตัวไหนใช้สกอร์บอร์ดร่วมกัน
อัปเดตโดยไม่กะพริบ
การลบบรรทัดแล้วเพิ่มบรรทัดใหม่ทำให้กะพริบ วิธีแก้ทั่วไปคือให้แต่ละบรรทัดมี entry ที่ตายตัวและมองไม่เห็น แล้วใส่ข้อความที่มองเห็นไว้ใน prefix และ suffix ของทีมที่มี entry นั้น การอัปเดตทีมจะเปลี่ยนข้อความในที่เดิม ขอ "ไม่กะพริบ" ในคำขอ แล้วปลั๊กอินจะถูกเขียนด้วยวิธีนี้
ปลั๊กอิน Skript หรือดาต้าแพ็ก?
| ตัวเลือก | ทำได้ | ข้อจำกัด |
|---|---|---|
| ปลั๊กอิน | บรรทัดเฉพาะผู้เล่น ค่าอะไรก็ได้ แอนิเมชัน placeholder | ต้องใช้ Spigot, Paper หรือ fork ของมัน |
| Skript กับ SkBee | แถบด้านข้างเฉพาะผู้เล่นจากสคริปต์ | ต้องมี Skript และส่วนเสริม |
| ดาต้าแพ็ก | แสดง objective เดียว เช่น จำนวนตายหรือจำนวนฆ่า ในแถบด้านข้าง | ตัวเลขเหมือนกันสำหรับทุกคน ไม่มีข้อความอิสระเฉพาะผู้เล่น |
ตัวอย่างคำอธิบาย
"ปลั๊กอิน Paper 1.21.4 ชื่อ Board แถบด้านข้างสำหรับผู้เล่นทุกคน ชื่อบอร์ดสีทอง ตามด้วยยศ (จาก LuckPerms) coins (จาก Vault) จำนวนฆ่า จำนวนตาย ผู้เล่นออนไลน์ และที่อยู่เซิร์ฟเวอร์ อัปเดตทุกวินาทีโดยไม่กะพริบ ซ่อนตัวเลขสีแดง บรรทัด ชื่อบอร์ด และช่วงเวลาอัปเดตอยู่ใน config.yml และใส่ placeholder ของ PlaceholderAPI ได้ทุกบรรทัด /board toggle ซ่อนบอร์ดเฉพาะผู้เล่นนั้น และบันทึกตัวเลือกไว้"
คำถาม
แถบด้านข้างมีได้กี่บรรทัด?
แสดงได้ 15 บรรทัด เนื้อหาที่ยาวกว่านั้นต้องไปไว้ที่อื่น เช่น แท็บลิสต์ แอ็กชันบาร์ หรือบอสบาร์
ใช้กับ 1.8 ได้ไหม?
ได้ Scoreboard API มีใน 1.8 แต่ความยาวข้อความต่อบรรทัดจำกัดกว่า ระบุเวอร์ชันเพื่อให้ปลั๊กอินถูกเขียนมาสำหรับเวอร์ชันนั้น
ทำไมสกอร์บอร์ดของฉันหายไป?
ส่วนใหญ่เป็นเพราะปลั๊กอินอื่นตั้งสกอร์บอร์ดของตัวเองให้ผู้เล่นหลังจากของคุณ ลบแถบด้านข้างอีกตัวออก หรือให้ปลั๊กอินเดียวแสดงทุกอย่าง
สร้างแถบด้านข้างของคุณ
พรอมต์นี้จะเปิดขึ้นพร้อมส่งได้ทันที:
“ปลั๊กอินสกอร์บอร์ดด้านข้าง Paper 1.21.4 ชื่อ Board: แถบด้านข้างเฉพาะผู้เล่น ชื่อบอร์ดสีทอง ยศจาก LuckPerms coins จาก Vault จำนวนฆ่า จำนวนตาย ผู้เล่นออนไลน์ และที่อยู่เซิร์ฟเวอร์ อัปเดตทุกวินาทีโดยไม่กะพริบ ซ่อนตัวเลขสีแดง บรรทัดและช่วงเวลาอยู่ใน config.yml รองรับ PlaceholderAPI และ /board toggle บันทึกแยกตามผู้เล่น”
สร้างสิ่งนี้ด้วย Codexe