Μετάβαση στο περιεχόμενο

Εγκατάσταση NuVotifier σε Paper, Velocity και BungeeCord

Το NuVotifier είναι ο κρίκος ανάμεσα σε μια λίστα server και στο plugin ανταμοιβών σου: η λίστα συνδέεται σε αυτό για κάθε ψήφο και αυτό παραδίδει την ψήφο σε όποιο plugin δίνει την ανταμοιβή. Αυτός ο οδηγός το στήνει σε έναν μεμονωμένο Paper server και σε ένα network με Velocity ή BungeeCord, και μετά τα ελέγχει όλα με μια δοκιμαστική ψήφο.

Ενημερώθηκε:

Πώς το Votifier παραδίδει μια ψήφο

  1. Ένας παίκτης ψηφίζει τον server σου σε μια λίστα.
  2. Η λίστα ανοίγει μια σύνδεση TCP στον server σου στο port του Votifier και στέλνει το όνομα του παίκτη, το δικό της service name, μια διεύθυνση και ένα timestamp.
  3. Το NuVotifier ελέγχει το μήνυμα (κλειδί RSA για v1, token για v2) και πυροδοτεί ένα vote event.
  4. Ένα plugin ανταμοιβών όπως το VotingPlugin ακούει αυτό το event και δίνει την ανταμοιβή.

Το ίδιο το NuVotifier δεν δίνει τίποτα. Έρχεται χωρίς κανέναν listener, οπότε χρειάζεσαι πάντα ένα δεύτερο plugin για τις ανταμοιβές.

Βήμα 1: Εγκατάστησε το NuVotifier σε Paper ή Spigot

Βάλε το JAR του NuVotifier στον φάκελο plugins και ξεκίνα τον server μία φορά. Φτιάχνει το config του, ένα ζεύγος κλειδιών RSA και ένα token. Η κονσόλα τυπώνει το token στην πρώτη εκκίνηση: Your default NuVotifier token is ….

plugins/Votifier/config.yml
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
  default: <generated token>
forwarding:
  method: none
  pluginMessaging:
    channel: nuvotifier:votes
  • Το host είναι η διεύθυνση όπου ακούει το NuVotifier. Από προεπιλογή παίρνει την IP για την οποία είναι ρυθμισμένος ο server σου ή 0.0.0.0 για όλα τα interfaces.
  • Το port είναι το port του Votifier, από προεπιλογή 8192. Δεν πρέπει να είναι το port του Minecraft.
  • Το tokens.default χρησιμοποιείται για κάθε λίστα, εκτός αν προσθέσεις token κάτω από το service name μιας λίστας.
  • Τα κλειδιά για το v1 δημιουργούνται στο plugins/Votifier/rsa/ ως public.key και private.key.

Βήμα 2: Κάνε το port προσβάσιμο

Οι λίστες συνδέονται από το internet, οπότε το port του Votifier πρέπει να είναι ανοιχτό για εισερχόμενες συνδέσεις TCP. Εδώ αποτυγχάνουν τα περισσότερα setups.

  • Shared hosting: πολλά panels ανοίγουν μόνο το port του παιχνιδιού. Πρόσθεσε ένα επιπλέον port στο panel και βάλε ακριβώς αυτόν τον αριθμό στο port. Κάποιοι hosts σου δίνουν τον αριθμό μόνοι τους.
  • Δικό σου VPS ή root server: επίτρεψε το port στο firewall, για παράδειγμα ufw allow 8192/tcp.
  • Στο σπίτι: κάνε port forwarding στο router σου προς το μηχάνημα που τρέχει τον server.

Κάνε restart τον server αφού αλλάξεις το config. Το NuVotifier έχει επίσης το /nvreload, που τρέχει από την κονσόλα.

Βήμα 3: Διάλεξε v1 (δημόσιο κλειδί) ή v2 (token)

Πρωτόκολλο v1Πρωτόκολλο v2
ΜυστικόΖεύγος κλειδιών RSAΚοινό token
Τι χρειάζεται η λίσταΤο περιεχόμενο του rsa/public.keyΤο token από το tokens.default
ΥποστήριξηΚλασικό Votifier· το μιλούν οι περισσότερες λίστεςΤο NuVotifier και οι λίστες που το υποστηρίζουν

Μη δώσεις ποτέ σε κανέναν το private.key. Αν μια λίστα υποστηρίζει v2, το token είναι η πιο απλή επιλογή: μία γραμμή, κανένα αρχείο κλειδιού. Το BestMCServerList υποστηρίζει και τα δύο, οπότε διάλεξε ό,τι θέλεις στη σελίδα Votifier.

Κράτα το disable-v1-protocol: false σε μεμονωμένο server. Το ίδιο το NuVotifier προειδοποιεί ότι πολλές λίστες μιλούν μόνο v1.

Βήμα 4: Networks με Velocity ή BungeeCord

Σε ένα network, η λίστα συνδέεται στο proxy. Το NuVotifier τρέχει στο proxy και προωθεί τις ψήφους στους backend servers όπου βρίσκεται το plugin ανταμοιβών. Το wiki του NuVotifier προτείνει plugin messaging για τα περισσότερα networks.

Proxy (Velocity)

plugins/nuvotifier/config.toml
host = "0.0.0.0"
port = 8192
disable-v1-protocol = false

[tokens]
default = "<generated token>"

[forwarding]
method = "pluginMessaging"

[forwarding.pluginMessaging]
channel = "nuvotifier:votes"
cache = "file"

Στο BungeeCord τα ίδια κλειδιά βρίσκονται στο plugins/NuVotifier/config.yml σε μορφή YAML. Το cache = "file" κρατά τις ψήφους για παίκτες που είναι offline και τις παραδίδει αργότερα.

Κάθε backend server (Paper)

plugins/Votifier/config.yml
port: -1
forwarding:
  method: pluginMessaging
  pluginMessaging:
    channel: nuvotifier:votes

Το port: -1 απενεργοποιεί τον listener στο backend, έτσι μόνο το proxy δέχεται ψήφους. Βεβαιώσου ότι οι backends είναι προσβάσιμοι μόνο μέσω του proxy, αλλιώς κάποιος θα μπορούσε να στείλει ψεύτικες ψήφους.

Η άλλη επιλογή, method = "proxy", στέλνει τις ψήφους από το proxy σε ένα port του NuVotifier σε κάθε backend, ρυθμισμένο με διεύθυνση, port και token ανά server κάτω από το [forwarding.proxy.<name>]. Δεν έχει cache ψήφων, οπότε το plugin messaging συνήθως ταιριάζει καλύτερα.

Βήμα 5: Βάλε τα στοιχεία και στείλε δοκιμαστική ψήφο

  1. Δοκίμασε πρώτα τοπικά: /testvote Steve serviceName=BestMCServerList στο Paper ή /ptestvote με τα ίδια ορίσματα στο proxy. Αν αντιδράσει το plugin ανταμοιβών, το εσωτερικό κομμάτι δουλεύει.
  2. Στο BestMCServerList, άνοιξε τον server σου στο dashboard και πήγαινε στο Votifier. Βάλε τη δημόσια διεύθυνση του server ή του proxy, το port και το token (v2) ή το δημόσιο κλειδί (v1) και αποθήκευσε.
  3. Πάτησε Αποστολή δοκιμαστικής ψήφου. Στέλνουμε μια ψήφο για το TestVote που δεν μετράει στην κατάταξη, και το log παράδοσης δείχνει μέσα σε δευτερόλεπτα αν έφτασε.

Οι ψήφοι από το BestMCServerList έχουν το service name BestMCServerList. Οι παίκτες Bedrock που μπαίνουν μέσω Geyser και Floodgate ψηφίζουν με το όνομά τους μαζί με το πρόθεμα, για παράδειγμα .Steve, και το όνομα φτάνει στο NuVotifier χωρίς αλλαγές. Κάθε όνομα Minecraft μπορεί να ψηφίσει μία φορά ανά server ανά ημερολογιακή ημέρα, με βάση την ώρα Europe/Berlin.

Δεν είσαι ακόμα στη λίστα; Πρόσθεσε τον server σου πρώτα και μετά γύρνα σε αυτό το βήμα.

Συχνά λάθη και λύσεις

ΠρόβλημαΤι να ελέγξεις
Connection refusedΤο NuVotifier δεν τρέχει ή ακούει σε άλλο port. Σύγκρινε το port στο config με αυτό που έβαλες.
Timed outΈνα firewall ή ο host πετάει την κίνηση. Άνοιξε το port για TCP ή ζήτα από τον host ένα επιπλέον port.
Η δοκιμή φτάνει, οι παίκτες δεν παίρνουν τίποταΔεν υπάρχει plugin ανταμοιβών. Η κονσόλα γράφει A vote was received, but you don't have any listeners available to listen for it.
Η ψήφος απορρίπτεται με v2Το token δεν ταιριάζει. Αντίγραψε ξανά το tokens.default, χωρίς κενά ή εισαγωγικά.
Δουλεύει στο proxy, όχι στο backendΤο backend δεν είναι ρυθμισμένο σε pluginMessaging ή τα ονόματα των channels διαφέρουν.
Μπήκε λάθος portΑπαντά το port του Minecraft αντί για το NuVotifier. Χρησιμοποίησε το port του Votifier.

Μόλις αρχίσουν να φτάνουν ψήφοι, στήσε τις ανταμοιβές: ο οδηγός μας για ανταμοιβές ψήφων με VotingPlugin καλύπτει το service name, το VoteSites.yml και τα ημερήσια όρια. Για τη μεγάλη εικόνα, δες πώς βρίσκεις παίκτες για νέο server.

Συχνές ερωτήσεις

Ποιο port χρησιμοποιεί το NuVotifier;

Από προεπιλογή το port 8192. Μπορείς να το αλλάξεις στο config, αλλά πρέπει να είναι ξεχωριστό από το port του Minecraft και προσβάσιμο από το internet μέσω TCP.

Πού βρίσκω το token του NuVotifier;

Στο plugins/Votifier/config.yml κάτω από tokens → default. Η κονσόλα το τυπώνει επίσης στην πρώτη εκκίνηση.

Χρειάζομαι NuVotifier σε κάθε server του network μου;

Με plugin messaging, ναι: στο proxy για να δέχεται ψήφους και σε κάθε backend με forwarding.method: pluginMessaging και port: -1 για να τις παραδίδει στο plugin ανταμοιβών.

Να χρησιμοποιήσω v1 ή v2;

Χρησιμοποίησε v2 με token όταν η λίστα το υποστηρίζει. Το v1 με δημόσιο κλειδί RSA υπάρχει για παλαιότερα setups. Το BestMCServerList υποστηρίζει και τα δύο.

Δίνει το NuVotifier ανταμοιβές μόνο του;

Όχι. Μόνο δέχεται ψήφους. Ένα plugin ανταμοιβών όπως το VotingPlugin πρέπει να τις ακούει.

Πηγές

Ελέγχθηκε με βάση την επίσημη τεκμηρίωση: