Cómo entrega Votifier un voto
- Un jugador vota por tu servidor en una lista.
- La lista abre una conexión TCP con tu servidor en el puerto de Votifier y envía el nombre del jugador, su propio nombre de servicio, una dirección y una marca de tiempo.
- NuVotifier comprueba el mensaje (clave RSA en v1, token en v2) y lanza un evento de voto.
- Un plugin de recompensas como VotingPlugin escucha ese evento y entrega la recompensa.
NuVotifier por sí solo no da nada. Viene sin ningún listener, así que siempre necesitas un segundo plugin para las recompensas.
Paso 1: instalar NuVotifier en Paper o Spigot
Pon el JAR de NuVotifier en la carpeta plugins y arranca el servidor una vez. Crea su configuración, un par de claves RSA y un token. La consola muestra el token en el primer arranque: Your default NuVotifier token is ….
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
default: <generated token>
forwarding:
method: none
pluginMessaging:
channel: nuvotifier:voteshostes la dirección en la que escucha NuVotifier. Por defecto toma la IP configurada en tu servidor, o0.0.0.0para todas las interfaces.portes el puerto de Votifier,8192por defecto. No puede ser el puerto de Minecraft.tokens.defaultse usa para todas las listas, salvo que añadas un token bajo el nombre de servicio de una lista.- Las claves para v1 se crean en
plugins/Votifier/rsa/comopublic.keyyprivate.key.
Paso 2: hacer accesible el puerto de Votifier
Las listas se conectan desde internet, así que el puerto de Votifier tiene que estar abierto a conexiones TCP entrantes. Aquí es donde fallan la mayoría de configuraciones.
- Hosting compartido: muchos paneles solo abren el puerto del juego. Añade un puerto extra en el panel y pon exactamente ese número en
port. Algunos hostings te asignan el número. - VPS o servidor dedicado propio: permite el puerto en el firewall, por ejemplo
ufw allow 8192/tcp. - En casa: redirige el puerto en tu router al equipo donde corre el servidor.
Reinicia el servidor después de cambiar la configuración. NuVotifier también tiene /nvreload, que se ejecuta desde la consola.
Paso 3: elegir v1 (clave pública) o v2 (token)
| Protocolo v1 | Protocolo v2 | |
|---|---|---|
| Secreto | Par de claves RSA | Token compartido |
| Qué necesita la lista | Contenido de rsa/public.key | El token de tokens.default |
| Compatibilidad | Votifier clásico; la mayoría de listas lo usan | NuVotifier y las listas que lo admiten |
Nunca le des a nadie private.key. Si una lista admite v2, el token es la opción más sencilla: una línea, sin archivo de clave. BestMCServerList admite las dos, así que elige la que prefieras en tu página de Votifier.
Deja disable-v1-protocol: false en un servidor único. El propio NuVotifier avisa de que muchas listas solo hablan v1.
Paso 4: Votifier con Velocity o BungeeCord
En una red, la lista se conecta al proxy. NuVotifier corre en el proxy y reenvía los votos a los servidores backend, donde está el plugin de recompensas. La wiki de NuVotifier recomienda plugin messaging para la mayoría de redes.
Proxy (Velocity)
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"En BungeeCord las mismas claves están en plugins/NuVotifier/config.yml, en formato YAML. cache = "file" guarda los votos de jugadores desconectados y los entrega más tarde.
Cada servidor backend (Paper)
port: -1
forwarding:
method: pluginMessaging
pluginMessaging:
channel: nuvotifier:votesport: -1 desactiva el listener en el backend, así que solo el proxy recibe votos. Asegúrate de que tus backends solo sean accesibles a través del proxy, o alguien podría enviar votos falsos.
La otra opción, method = "proxy", envía los votos desde el proxy a un puerto de NuVotifier en cada backend, configurado con dirección, puerto y token por servidor bajo [forwarding.proxy.<name>]. No tiene caché de votos, así que plugin messaging suele encajar mejor.
Paso 5: introducir los datos y enviar un voto de prueba
- Prueba primero en local:
/testvote Steve serviceName=BestMCServerListen Paper, o/ptestvotecon los mismos argumentos en el proxy. Si tu plugin de recompensas reacciona, la parte interna funciona. - En BestMCServerList, abre tu servidor en el panel y ve a Votifier. Escribe la dirección pública del servidor o del proxy, el puerto y el token (v2) o la clave pública (v1), y guarda.
- Pulsa Enviar voto de prueba. Enviamos un voto para
TestVoteque no cuenta para el ranking, y el registro de entregas muestra en segundos si ha llegado.
Los votos de BestMCServerList llevan el nombre de servicio BestMCServerList. Los jugadores de Bedrock que entran con Geyser y Floodgate votan con su nombre con prefijo, por ejemplo .Steve, y el nombre llega a NuVotifier sin cambios. Cada nombre de Minecraft puede votar una vez por servidor y día natural, contado en horario de Europe/Berlin.
¿Todavía no estás en la lista? Primero añade tu servidor y luego vuelve a este paso.
Errores frecuentes y soluciones
| Problema | Qué revisar |
|---|---|
| Conexión rechazada | NuVotifier no está en marcha o escucha en otro puerto. Compara el puerto de la configuración con el que has introducido. |
| Tiempo de espera agotado | Un firewall o el hosting bloquea el tráfico. Abre el puerto para TCP o pide un puerto extra a tu hosting. |
| La prueba llega, los jugadores no reciben nada | No hay plugin de recompensas. La consola registra A vote was received, but you don't have any listeners available to listen for it. |
| Voto rechazado con v2 | El token no coincide. Copia de nuevo tokens.default, sin espacios ni comillas. |
| Funciona en el proxy, no en el backend | El backend no está en pluginMessaging, o los nombres de canal no coinciden. |
| Puerto equivocado | Responde el puerto de Minecraft en lugar de NuVotifier. Usa el puerto de Votifier. |
Cuando lleguen los votos, configura las recompensas: nuestra guía de recompensas por votar con VotingPlugin explica el nombre de servicio, VoteSites.yml y los límites diarios. Para ver el panorama completo, lee cómo conseguir jugadores para un servidor nuevo.