Saltar al contenido

Configurar NuVotifier en Paper, Velocity y BungeeCord

NuVotifier es la pieza entre una lista de servidores y tu plugin de recompensas: la lista se conecta a él con cada voto, y él pasa el voto al plugin que entrega la recompensa. Esta guía lo configura en un solo servidor Paper y en una red con Velocity o BungeeCord, y después lo comprueba todo con un voto de prueba.

Actualizado:

Cómo entrega Votifier un voto

  1. Un jugador vota por tu servidor en una lista.
  2. 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.
  3. NuVotifier comprueba el mensaje (clave RSA en v1, token en v2) y lanza un evento de voto.
  4. 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 ….

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 es la dirección en la que escucha NuVotifier. Por defecto toma la IP configurada en tu servidor, o 0.0.0.0 para todas las interfaces.
  • port es el puerto de Votifier, 8192 por defecto. No puede ser el puerto de Minecraft.
  • tokens.default se 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/ como public.key y private.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 v1Protocolo v2
SecretoPar de claves RSAToken compartido
Qué necesita la listaContenido de rsa/public.keyEl token de tokens.default
CompatibilidadVotifier clásico; la mayoría de listas lo usanNuVotifier 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)

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"

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)

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

port: -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

  1. Prueba primero en local: /testvote Steve serviceName=BestMCServerList en Paper, o /ptestvote con los mismos argumentos en el proxy. Si tu plugin de recompensas reacciona, la parte interna funciona.
  2. 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.
  3. Pulsa Enviar voto de prueba. Enviamos un voto para TestVote que 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

ProblemaQué revisar
Conexión rechazadaNuVotifier no está en marcha o escucha en otro puerto. Compara el puerto de la configuración con el que has introducido.
Tiempo de espera agotadoUn 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 nadaNo 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 v2El token no coincide. Copia de nuevo tokens.default, sin espacios ni comillas.
Funciona en el proxy, no en el backendEl backend no está en pluginMessaging, o los nombres de canal no coinciden.
Puerto equivocadoResponde 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.

Preguntas frecuentes

¿Qué puerto usa NuVotifier?

El puerto 8192 por defecto. Puedes cambiarlo en la configuración, pero debe ser distinto del puerto de Minecraft y accesible desde internet por TCP.

¿Dónde encuentro el token de NuVotifier?

En plugins/Votifier/config.yml, bajo tokens → default. La consola también lo muestra en el primer arranque.

¿Necesito NuVotifier en todos los servidores de mi red?

Con plugin messaging, sí: en el proxy para recibir los votos, y en cada backend con forwarding.method: pluginMessaging y port: -1 para pasárselos al plugin de recompensas.

¿Uso v1 o v2?

Usa v2 con token cuando la lista lo admita. v1 con la clave pública RSA existe para configuraciones antiguas. BestMCServerList admite las dos.

¿NuVotifier da recompensas por sí solo?

No. Solo recibe votos. Un plugin de recompensas como VotingPlugin tiene que escucharlos.

Fuentes

Revisado con la documentación oficial: