คู่มือ
วิธีทำปลั๊กอินระบบเศรษฐกิจ Minecraft
อัปเดตเมื่อ 18 ตุลาคม 2569
ปลั๊กอินระบบเศรษฐกิจจะเก็บยอดเงินของผู้เล่นทุกคน ให้ผู้เล่นโอนเงินให้กัน หาเงิน และใช้จ่ายในร้านค้าได้ ส่วนที่สำคัญไม่ใช่คำสั่ง แต่คือการเชื่อมกับ Vault: สิ่งนี้แหละที่ทำให้ปลั๊กอินร้านค้า อาชีพ และการประมูลใช้เงินของคุณได้ คู่มือนี้ครอบคลุมการออกแบบ การจัดเก็บข้อมูล และวิธีบิลด์และทดสอบ
เริ่มจากตัวอย่างนี้แล้วปรับกฎให้เป็นแบบของคุณ
สร้างสิ่งนี้ด้วย Codexeทีละขั้นตอน
1.ตัดสินใจว่าปลั๊กอินจะเป็นแบบไหน
แบบแรกคือ เป็นระบบเศรษฐกิจเอง (เก็บยอดเงินและลงทะเบียนตัวเองเป็นระบบเศรษฐกิจของ Vault) หรือแบบที่สองคือใช้ระบบเศรษฐกิจที่มีอยู่แล้วผ่าน Vault (ร้านค้า ค่าหัว ปลั๊กอินอาชีพ) เซิร์ฟเวอร์ส่วนใหญ่ต้องการอย่างละหนึ่งตัว ไม่ใช่ระบบเศรษฐกิจสองระบบ
2.เลือกเซิร์ฟเวอร์และเวอร์ชัน
ระบุซอฟต์แวร์เซิร์ฟเวอร์และเวอร์ชัน เช่น Paper 1.21.4 ปลั๊กอินจะถูกบิลด์ตาม API และระดับ Java ของเวอร์ชันนั้น
3.ระบุคำสั่งและกฎ
/balance,/pay <player> <amount>,/baltopและคำสั่งแอดมินอย่าง/eco give|take|setเพิ่มยอดเงินเริ่มต้น ชื่อสกุลเงิน จำนวนทศนิยม และยอดโอนขั้นต่ำ4.เลือกที่เก็บยอดเงิน
SQLite สำหรับเซิร์ฟเวอร์เดียว MySQL หากหลายเซิร์ฟเวอร์ต้องใช้ยอดเงินร่วมกัน เงินต้องอยู่รอดหลังรีสตาร์ตและแครช จึงห้ามเก็บไว้ในหน่วยความจำอย่างเดียว
5.ให้ Codexe เขียนและบิลด์
อธิบายปลั๊กอินและระบุชื่อ Vault ให้ชัดเจนเพื่อให้ถูกเพิ่มเป็น dependency Codexe จะเขียนโค้ด Java,
plugin.ymlและconfig.ymlคอมไพล์ และแก้ข้อผิดพลาดในการบิลด์ก่อนที่โปรเจกต์จะพร้อม6.ทดสอบการโอนเงินในเกม
กด ลองเลย แล้วเข้าเซิร์ฟเวอร์ทดสอบ ลองโอนเงินระหว่างสองบัญชี ลองจำนวนที่มากเกินไป ติดลบ หรือไม่ใช่ตัวเลข จากนั้นรีสตาร์ตแล้วเช็กว่ายอดเงินยังอยู่ครบ
7.ติดตั้ง
ใส่ Vault และ .jar ของคุณในโฟลเดอร์
plugins/ของเซิร์ฟเวอร์แล้วรีสตาร์ต ลบปลั๊กอินระบบเศรษฐกิจตัวอื่นออก หรือกำหนดว่าจะให้ Vault ใช้ตัวไหน
Vault ทำหน้าที่อะไร
Vault เป็นตัวเชื่อม ไม่ใช่ระบบเศรษฐกิจ ปลั๊กอินระบบเศรษฐกิจจะ implement อินเทอร์เฟซ Economy ของ Vault และลงทะเบียนกับ services manager ของเซิร์ฟเวอร์ ปลั๊กอินอื่นจะขอใช้ผ่าน getServer().getServicesManager().getRegistration(Economy.class) และเรียกเมธอดอย่าง getBalance, withdrawPlayer และ depositPlayer
ดังนั้นปลั๊กอินร้านค้าไม่จำเป็นต้องรู้เลยว่าคุณใช้ระบบเศรษฐกิจตัวไหน ใน plugin.yml ให้ใช้ depend: [Vault] เมื่อปลั๊กอินทำงานไม่ได้ถ้าไม่มี Vault หรือ softdepend เมื่อ Vault เป็นตัวเลือกเสริม Vault API จำเป็นแค่ตอนคอมไพล์ ส่วนตัว Vault จะติดตั้งไว้บนเซิร์ฟเวอร์
สิ่งที่ควรระบุในคำขอ
- รูปแบบเงิน: ชื่อสกุลเงินแบบเอกพจน์และพหูพจน์ สัญลักษณ์ และจำนวนทศนิยม
- ขีดจำกัด: ยอดเงินเริ่มต้น ยอดเงินสูงสุด และยอดเงินติดลบได้หรือไม่
- ผู้เล่นออฟไลน์:
/payและ/ecoใช้กับผู้เล่นที่ไม่ได้ออนไลน์ได้หรือไม่ - การบันทึกล็อก: ล็อกธุรกรรมในฐานข้อมูลหรือไฟล์ เพื่อให้ทีมงานตรวจสอบเมื่อมีข้อพิพาท
- การหาเงิน: ฆ่ามอนสเตอร์ รางวัลตามเวลาเล่น ขายไอเทม หรือผ่านคำสั่งแอดมินเท่านั้น
เก็บยอดเงินไว้ที่ไหนดี
| ที่จัดเก็บ | เหมาะกับ | ข้อควรระวัง |
|---|---|---|
| ไฟล์ YAML | เซิร์ฟเวอร์ขนาดเล็กมาก อ่านง่าย | ช้าเมื่อมีผู้เล่นเยอะ เสียหายง่ายเมื่อแครช |
| SQLite | เซิร์ฟเวอร์เดียว ไม่ต้องตั้งค่า | ใช้ร่วมกันระหว่างหลายเซิร์ฟเวอร์ไม่ได้ |
| MySQL / MariaDB | เครือข่ายที่ใช้ยอดเงินร่วมกัน | ต้องมีเซิร์ฟเวอร์ฐานข้อมูลและข้อมูลล็อกอินใน config.yml |
ตัวอย่างคำอธิบาย
"ปลั๊กอินระบบเศรษฐกิจ Paper 1.21.4 ชื่อ Coins ที่ลงทะเบียนตัวเองเป็นระบบเศรษฐกิจของ Vault มี /balance [player], /pay <player> <amount> ขั้นต่ำ 1, /baltop แสดง 10 อันดับแรก และ /eco give|take|set สำหรับผู้เล่นที่มี coins.admin ผู้เล่นใหม่เริ่มต้นด้วย 100 coins ทศนิยมสองตำแหน่ง ทุกการโอนบันทึกวันที่ ผู้โอน ผู้รับ และจำนวนเงิน ยอดเงินบันทึกใน SQLite ชื่อสกุลเงินและข้อความทั้งหมดอยู่ใน config.yml"
Codexe ใช้ SQLite เป็นค่าเริ่มต้นถ้าคุณไม่ได้ขออย่างอื่น ถ้าคุณขอ MySQL ปลั๊กอินจะถูกเขียนให้มีการตั้งค่า storage-type และเซิร์ฟเวอร์ทดสอบจะให้ฐานข้อมูล MySQL แยกเฉพาะระหว่างที่คุณลองใช้
คำถาม
ต้องใช้ Vault ไหม?
ไม่ต้อง ถ้าเป็นระบบเศรษฐกิจแบบเดี่ยวที่ไม่มีปลั๊กอินอื่นใช้ แต่จำเป็นทันทีที่ปลั๊กอินอื่น (ร้านค้า อาชีพ การประมูล) ต้องอ่านหรือแก้ยอดเงิน เพราะนั่นคือ API ที่ปลั๊กอินเหล่านั้นมองหา
ใช้คู่กับ EssentialsX ได้ไหม?
EssentialsX มีระบบเศรษฐกิจของตัวเองและลงทะเบียนกับ Vault เหมือนกัน ให้ใช้ระบบเศรษฐกิจทีละระบบ หรือปิดตัวที่ไม่ต้องการ ไม่อย่างนั้นปลั๊กอินอื่นอาจใช้ยอดเงินคนละชุดกับที่คำสั่งของคุณแสดง
หลายเซิร์ฟเวอร์ใช้ยอดเงินร่วมกันได้ไหม?
ได้ โดยใช้ MySQL หรือ MariaDB เป็นที่จัดเก็บ และตั้งฐานข้อมูลเดียวกันใน config.yml ของทุกเซิร์ฟเวอร์ ระบุไว้ในคำขอเพื่อให้ปลั๊กอินอ่านยอดเงินจากฐานข้อมูลแทนการแคชไว้นานเกินไป
ทดสอบโดยไม่มีเซิร์ฟเวอร์จริงได้อย่างไร?
ใช้ ลองเลย: เซิร์ฟเวอร์ Paper ส่วนตัวตามเวอร์ชันของคุณจะเปิดขึ้นพร้อมปลั๊กอินที่คอมไพล์แล้ว และปลั๊กอินที่อยู่ใน depend และ softdepend เช่น Vault จะถูกติดตั้งให้ด้วย แพ็กเกจฟรีมีเซิร์ฟเวอร์ทดสอบวันละ 3 ตัว ตัวละ 10 นาที
สร้างระบบเศรษฐกิจของเซิร์ฟเวอร์คุณ
พรอมต์นี้จะเปิดขึ้นพร้อมส่งได้ทันที:
“ปลั๊กอินระบบเศรษฐกิจ Paper 1.21.4 ชื่อ Coins ที่ลงทะเบียนเป็นระบบเศรษฐกิจของ Vault: /balance, /pay ขั้นต่ำ 1, /baltop 10 อันดับแรก, /eco give|take|set สำหรับ coins.admin, ยอดเงินเริ่มต้น 100, ทศนิยมสองตำแหน่ง, บันทึกทุกการโอน, ยอดเงินใน SQLite, ชื่อสกุลเงินและข้อความใน config.yml”
สร้างสิ่งนี้ด้วย Codexe