Το API του MineList επιτρέπει στο σέρβερ σου να ελέγχει αν ένας παίκτης έχει ψηφίσει, να δίνει μια ανταμοιβή ακριβώς μία φορά και να διαβάζει δημόσια στατιστικά. Όλα τα endpoints επιστρέφουν JSON και χρησιμοποιούν απλά αιτήματα HTTPS GET, οπότε δουλεύουν από οποιαδήποτε γλώσσα προγραμματισμού.
Πώς θα πάρεις το κλειδί API
Πρόσθεσε το σέρβερ σου, διεκδίκησέ το και άνοιξε τον πίνακα ιδιοκτήτη. Το κλειδί API εμφανίζεται στη σελίδα ρυθμίσεων του σέρβερ. Κράτα το ιδιωτικό, γιατί αναγνωρίζει το σέρβερ σου. Αν διαρρεύσει, δημιούργησε νέο στον πίνακα και ενημέρωσε το plugin ή το script σου.
Η βασική διεύθυνση όλων των endpoints είναι 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 αν το nick έχει ψήφο για το σέρβερ σου στην τρέχουσα ημέρα 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 δεν χρειάζεται κλειδί. Το slug είναι το τελευταίο μέρος της διεύθυνσης του σέρβερ στο MineList. Παραδείγματα πεδίων της απάντησης:
| Πεδίο | Περιγραφή |
|---|---|
name | Όνομα σέρβερ |
url | Ιστοσελίδα του σέρβερ |
ip | Διεύθυνση σύνδεσης |
online | Αν ο τελευταίος έλεγχος πέτυχε |
players | Παίκτες online στον τελευταίο έλεγχο |
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 χρησιμοποιεί token.
- Εγκατέστησε το NuVotifier στο σέρβερ σου και κάνε επανεκκίνηση.
- Στον πίνακα ιδιοκτήτη γράψε το host, το port (από προεπιλογή 8192) και το δημόσιο κλειδί (v1) ή το token (v2).
- Πάτα Αποστολή δοκιμαστικής ψήφου και έλεγξε ότι το σέρβερ σου καταγράφει την ψήφο.
Αν η δοκιμή αποτύχει, βεβαιώσου ότι το port του Votifier είναι ανοιχτό στο firewall σου και ότι το κλειδί αντιγράφηκε χωρίς κενά ή αλλαγές γραμμής.
Live banner
Κάθε σέρβερ έχει ένα live banner 468x60 pixel που δείχνει την τρέχουσα κατάσταση και τον αριθμό των παικτών:
https://minelist.eu/banner/<slug>.png
Παράδειγμα ενσωμάτωσης HTML:
<a href="https://minelist.eu/el/server/to-slug-sou">
<img src="https://minelist.eu/banner/to-slug-sou.png" width="468" height="60" alt="Ψήφισέ μας στο MineList">
</a>
Καλές πρακτικές
- Κράτα τα δημόσια στατιστικά στην κρυφή μνήμη (cache) για τουλάχιστον ένα λεπτό αντί να καλείς το API σε κάθε προβολή σελίδας.
- Μη βάζεις ποτέ το κλειδί API σε κώδικα που τρέχει στον client ή σε δημόσιο repository.
- Χρησιμοποίησε το endpoint εξαργύρωσης μόνο μία φορά για κάθε ανταμοιβή.