MineList API ให้เซิร์ฟเวอร์ของคุณเช็กได้ว่าผู้เล่นโหวตแล้วหรือยัง มอบรางวัลได้ครั้งเดียวพอดี และอ่านสถิติสาธารณะได้ ทุก endpoint ตอบกลับเป็น JSON และใช้คำขอ HTTPS GET ธรรมดา จึงใช้ได้กับทุกภาษา
รับ API key
เพิ่มเซิร์ฟเวอร์ ยืนยันความเป็นเจ้าของ แล้วเปิดแผงเจ้าของ API key จะอยู่ในหน้าตั้งค่าเซิร์ฟเวอร์ เก็บไว้เป็นความลับ เพราะมันใช้ระบุเซิร์ฟเวอร์ของคุณ ถ้ารั่วไหล ให้สร้างอันใหม่ในแผงแล้วอัปเดตปลั๊กอินหรือสคริปต์
ที่อยู่หลักของทุก endpoint คือ https://minelist.eu
เช็กโหวต
GET /api/v1/vote?key=API_KEY&username=NICK
บอกว่าผู้เล่นโหวตวันนี้หรือยัง และรับรางวัลไปแล้วหรือไม่
{"voted":true,"claimed":false,"next_vote_utc":"2026-10-31T00:00:00Z"}
votedเป็น true ถ้าชื่อนี้มีโหวตให้เซิร์ฟเวอร์ของคุณในวัน UTC ปัจจุบันclaimedเป็น true ถ้าคุณทำเครื่องหมายว่าโหวตนั้นรับรางวัลแล้วnext_vote_utcคือเวลาที่ผู้เล่นโหวตได้อีกครั้ง
ทำเครื่องหมายรับรางวัล
GET /api/v1/vote/claim?key=API_KEY&username=NICK
ทำเครื่องหมายว่าโหวตของวันนี้รับรางวัลแล้ว เรียกก่อนมอบรางวัลทันที เพื่อไม่ให้ผู้เล่นรับซ้ำสองครั้ง คำตอบที่เป็นไปได้
| การตอบกลับ | ความหมาย |
|---|---|
{"voted":true,"claimed":true} | โหวตถูกต้องและตอนนี้ถูกทำเครื่องหมายรับแล้ว มอบรางวัลได้เลย |
{"voted":true,"claimed":false,"already_claimed":true} | โหวตนี้รับรางวัลไปก่อนหน้าแล้ว อย่ามอบอะไรอีก |
{"voted":false,"claimed":false} | ผู้เล่นยังไม่ได้โหวตวันนี้ |
รายการโหวตของเดือนนี้
GET /api/v1/votes?key=API_KEY
ส่งคืนโหวตทั้งหมดที่เซิร์ฟเวอร์ของคุณได้รับในเดือนปัจจุบัน เหมาะกับรางวัลผู้โหวตสูงสุดประจำเดือนและกระดานอันดับบนเว็บของคุณเอง
สถิติสาธารณะของเซิร์ฟเวอร์
GET /api/v1/server/<slug>
endpoint นี้ไม่ต้องใช้ key ส่วน slug คือส่วนท้ายของที่อยู่เซิร์ฟเวอร์บน MineList ตัวอย่างฟิลด์ในคำตอบ
| ฟิลด์ | คำอธิบาย |
|---|---|
name | ชื่อเซิร์ฟเวอร์ |
url | เว็บไซต์ของเซิร์ฟเวอร์ |
ip | ที่อยู่สำหรับเชื่อมต่อ |
online | การเช็กครั้งล่าสุดสำเร็จหรือไม่ |
players | ผู้เล่นออนไลน์ตอนเช็กครั้งล่าสุด |
max_players | จำนวนช่องผู้เล่น |
version | เวอร์ชันของเซิร์ฟเวอร์ |
votes_month | โหวตของเดือนนี้ |
votes_total | โหวตรวมตั้งแต่เพิ่มเซิร์ฟเวอร์ |
uptime_30 | อัตราออนไลน์ใน 30 วันล่าสุดเป็นเปอร์เซ็นต์ |
rating | คะแนนเฉลี่ย |
last_check | เวลาของการเช็กครั้งล่าสุด |
ตัวอย่างด้วย curl
นี่คือตรรกะทั้งหมดในรูปแบบ shell ภาษาใดก็ตามที่ส่งคำขอ HTTP ได้ เช่น Java, PHP, Python หรือ Node.js ก็ทำแบบเดียวกัน
curl -s "https://minelist.eu/api/v1/vote/claim?key=API_KEY&username=Steve"
แปลง JSON แล้วถ้า claimed เป็น true ให้รันคำสั่งมอบรางวัล เช่น give Steve diamond 3
รองรับ NuVotifier
ถ้าอยากได้รางวัลทันทีโดยไม่ต้องคอยเช็ก MineList ส่งโหวตไปยังเซิร์ฟเวอร์ของคุณผ่าน NuVotifier ได้ รองรับโปรโตคอลทั้งสองเวอร์ชัน เวอร์ชัน 1 ใช้คีย์สาธารณะ RSA เวอร์ชัน 2 ใช้โทเค็น
- ติดตั้ง NuVotifier บนเซิร์ฟเวอร์แล้วรีสตาร์ต
- ในแผงเจ้าของ กรอกโฮสต์ พอร์ต (ค่าเริ่มต้น 8192) และคีย์สาธารณะ (v1) หรือโทเค็น (v2)
- กด ส่งโหวตทดสอบ แล้วดูว่าเซิร์ฟเวอร์บันทึกโหวตลงล็อกหรือไม่
ถ้าทดสอบไม่ผ่าน ให้เช็กว่าเปิดพอร์ต Votifier ในไฟร์วอลล์แล้ว และคัดลอกคีย์มาโดยไม่มีช่องว่างหรือขึ้นบรรทัดใหม่แทรก
แบนเนอร์สด
ทุกเซิร์ฟเวอร์มีแบนเนอร์สดขนาด 468x60 พิกเซล แสดงสถานะและจำนวนผู้เล่นปัจจุบัน
https://minelist.eu/banner/<slug>.png
ตัวอย่างโค้ด HTML สำหรับฝัง
<a href="https://minelist.eu/th/server/your-slug">
<img src="https://minelist.eu/banner/your-slug.png" width="468" height="60" alt="โหวตให้เราบน MineList">
</a>
แนวทางที่ดี
- แคชสถิติสาธารณะอย่างน้อยหนึ่งนาที แทนที่จะเรียก API ทุกครั้งที่มีคนเปิดหน้า
- อย่าใส่ API key ในโค้ดฝั่งไคลเอนต์หรือที่เก็บโค้ดสาธารณะเด็ดขาด
- เรียก endpoint ทำเครื่องหมายรับรางวัลเพียงครั้งเดียวต่อหนึ่งรางวัล