Cómo configurar las recompensas por voto (Votifier, VotingPlugin y más)

Instala el plugin complementario, configura Votifier para una entrega instantánea, o conecta VotingPlugin, SuperVotes o SuperbVote a este sitio - con los valores exactos que este sitio realmente espera.

Todo plugin de recompensas necesita dos cosas de ti: una forma de saber que se ha votado, y algo que ejecutar cuando eso ocurre. Aquí repasamos ambas cosas: el plugin complementario que publica este sitio, Votifier para la entrega instantánea, y qué hacer si ya usas VotingPlugin, SuperVotes u otro plugin de recompensas.

Opción A: el plugin de VoxelRank (recomendado)

El plugin complementario habla directamente con la API de este sitio. No necesita Votifier: funciona consultando periódicamente los votos pendientes, así que funciona detrás de NAT y recupera todo lo que se haya perdido mientras el servidor estaba apagado. Votifier también está disponible como complemento opcional para la entrega instantánea (ver Opción B).

  1. Descarga el jar desde tu Panel (la tarjeta de tu servidor tiene un botón de descarga en cuanto existe una build), o directamente desde /download/plugin.
  2. Colócalo en plugins/ e inicia el servidor una vez. Esto genera plugins/VotingSite/config.yml.
  3. Abre la página Editar de tu servidor → pestaña Recompensas y votaciones y copia la Clave API que aparece ahí.
  4. Pégala en site.api-key dentro de config.yml (comprueba que site.url apunte a este sitio) y luego ejecuta /votingsite reload.
  5. Decide cómo quieres recibir los votos configurando mode en config.yml:
    • poll (por defecto) - el plugin obtiene los votos pendientes por sí mismo. No hace falta instalar nada más.
    • votifier - el sitio envía cada voto en el momento en que se emite. Requiere NuVotifier u otro listener de Votifier (Opción B más abajo).
    • both - envío por Votifier con el sondeo (poll) como red de seguridad, sin duplicados gracias al id del voto.
  6. Rellena rewards.commands (y, si quieres, milestones y vote-party) con los comandos de consola que deban ejecutarse al recibir un voto.
  7. Pruébalo: /votingsite testvote <player> simula un voto sin esperar a uno real. /votingsite status muestra el modo, si la clave API se acepta y cuántos votos se han entregado hasta ahora.

Los jugadores obtienen su enlace de voto y su recuento con /voxelrank vote - no con /vote, que este plugin deliberadamente nunca reclama (dos plugins compitiendo por el mismo comando es justo la forma en que una recompensa deja de funcionar sin avisar; consulta la nota al respecto en config.yml).

Opción B: entrega instantánea con NuVotifier

Sáltate esto si el modo poll te funciona lo bastante bien - no es obligatorio. Añádelo cuando esos pocos minutos de retraso del sondeo te importen, o cuando prefieras usar un plugin de recompensas dedicado en lugar del propio de este sitio.

NuVotifier es el fork mantenido activamente del Votifier original - el proyecto original hoy está prácticamente sin mantenimiento, así que "instalar Votifier" en la práctica significa instalar NuVotifier (o un fork compatible como VotifierPlus).

  1. Coloca el jar de NuVotifier en plugins/ y reinicia el servidor. En un servidor Bukkit/Spigot/Paper mantiene el nombre de carpeta clásico plugins/Votifier/ por compatibilidad hacia atrás - es la propia carpeta de NuVotifier, no un resto del plugin antiguo - y genera dentro un config.yml más un par de claves en rsa/ la primera vez que arranca.
  2. Obtén tus credenciales de plugins/Votifier/config.yml: el token v2 (recomendado) se genera automáticamente bajo la clave default en la sección tokens: - cópialo tal cual. Si prefieres el método más antiguo, la clave pública v1 está en plugins/Votifier/rsa/public.key; mantén la private.key correspondiente en la misma carpeta del servidor y no la compartas nunca.
  3. Comprueba el port en el que escucha NuVotifier (8192 por defecto) y asegúrate de que esté abierto en tu firewall o panel de hosting - es un puerto distinto al normal de Minecraft, y la mayoría de hostings no lo abren automáticamente.
  4. En la página Editar de tu servidor → pestaña Recompensas y votaciones, rellena el host de Votifier (la dirección de tu servidor) y ese puerto, y pega después el token v2 o la clave v1 del paso 2. Si rellenas ambos, solo se usa uno: gana el v2.
  5. Haz clic en Enviar voto de prueba ahí mismo, en la pestaña. Esto dispara un paquete Votifier real hacia el host/puerto/clave/token que haya en ese momento en el formulario - no hace falta guardar antes - y te indica al momento si NuVotifier lo aceptó. Si falla, el propio registro de consola de NuVotifier (debug: true por defecto) muestra si la conexión llegó siquiera al plugin, lo que permite distinguir rápido entre "clave incorrecta" y "puerto bloqueado".
  6. Guarda, emite después un voto real y confirma que la recompensa llega al instante en lugar de en el siguiente sondeo.

Por debajo, este sitio envía un handshake estándar VOTIFIER 2 con una carga JSON firmada con HMAC cuando hay un token v2 configurado, y si no, recurre a un bloque v1 clásico cifrado con RSA - el mismo protocolo que ya habla cualquier listener compatible con Votifier, nada específico de este sitio.

¿Ya usas VotingPlugin?

Si tu servidor ya usa VotingPlugin, no necesitas instalar el nuestro - y tampoco necesitas añadir este sitio a mano, porque VotingPlugin tiene un preset mantenido para él.

Ejecuta esto en el juego como operador (o con el permiso VotingPlugin.Commands.AdminVote.VotePresets):

/av VotePresets

VotingPlugin descarga la lista actual de presets desde su propio repositorio VotingPlugin-Presets, te deja elegir uno - VoxelRank está incluido - y luego pregunta por los valores que ese preset necesita: nombre a mostrar, la URL de voto de tu anuncio, el retraso entre votos y similares. O ve directo al grano con tu propio enlace de voto:

/av VotePresets https://voxelrank.com/server/your-slug/vote

Incluye el https://; VotingPlugin hace coincidir el nombre de host con el preset correcto automáticamente, en lugar de obligarte a buscarlo en una lista.

En cualquier caso, escribe o actualiza la entrada correspondiente bajo VoteSites: en VoteSites.yml - ServiceSite, VoteURL, valores de retraso razonables por defecto, y un objeto de visualización de relleno o un mensaje de agradecimiento si el sitio aún no tiene uno - y después recarga los sitios de voto por ti. Cualquier otra cosa que ya estuviera en el archivo se deja intacta. Haz una copia de seguridad de VoteSites.yml antes si estás modificando una configuración ya establecida en lugar de añadir una nueva, y revisa lo que ha escrito - sobre todo las recompensas, ya que un preset es un punto de partida, no una configuración terminada - antes de anunciarlo a los jugadores.

VotingPlugin sigue necesitando su propia conexión Votifier para recibir votos de verdad - apúntalo a la misma configuración de NuVotifier de la Opción B de arriba. También necesita que el servidor pueda alcanzar GitHub (raw.githubusercontent.com) para descargar presets; si /av VotePresets dice que no hay presets disponibles, es un problema de red o firewall del servidor, no que falte el preset. /av gui, o editar VoteSites.yml directamente, sigue funcionando como alternativa - ServiceSite tiene que decir exactamente VoxelRank.com, algo que puedes confirmar con /av servicesites tras un voto de prueba real o de administrador.

Otros plugins de recompensas

¿Usas algo más ligero que VotingPlugin? SuperVotes y SuperbVote son ambos listeners de Votifier ligeros con sus propios sistemas de vote-party y comandos de recompensa. Ninguno de los dos gestiona presets por sitio como hace VotingPlugin - apunta cualquiera de los dos al mismo host, puerto y token v2 (o clave v1) de Votifier de la pestaña Recompensas y votaciones de arriba, y configura sus recompensas igual que harías con cualquier voto.

Solución de problemas

  • No pasa nada al ejecutar /votingsite testvote. Comprueba primero /votingsite status - si la clave API no se acepta, los votos (reales o de prueba) no tienen adónde ir. Vuelve a copiarla desde la página Editar y asegúrate de que no haya espacios en blanco al final.
  • El envío de Votifier nunca llega, pero el sondeo sí funciona. Normalmente el puerto de Votifier es el que está bloqueado, no la API - la mayoría de hostings abren el tráfico HTTP saliente por defecto, pero no un puerto entrante extra cualquiera. mode: both (o ejecutar el listener de otro plugin de recompensas por separado) es una alternativa permanente razonable en lugar de pelearte con el firewall.
  • La recompensa se dispara pero no aparece nada en el juego. Los comandos de recompensa se ejecutan desde la consola, así que un comando que solo funciona cuando lo escribe un jugador (sin permiso, sin op) fallará en silencio. Prueba primero el comando exacto desde la consola.
  • VotingPlugin registra "invalid service site" o nunca hace coincidir el voto. El valor de ServiceSite tiene que coincidir carácter por carácter, salvo mayúsculas/minúsculas. Compruébalo con /av servicesites en lugar de adivinarlo a partir del dominio de este sitio.
  • /av VotePresets dice que no hay presets disponibles, o una URL no coincide con nada. Descarga la lista de presets desde GitHub en tiempo real, así que casi siempre es la propia red del servidor - firewall, proxy, DNS o una caída de GitHub - bloqueando raw.githubusercontent.com, no una señal de que VoxelRank haya desaparecido de la lista. Una coincidencia por URL también necesita la dirección completa, incluido https://; los nombres de host sin más no se reconocen.
  • Los ajustes de la pestaña Recompensas y votaciones no parecen guardarse. Solo se aplican a un anuncio reclamado - mira el filtro Reclamado en la lista de servidores. Un registro importado y sin reclamar todavía no tiene dueño para el que configurar recompensas; reclámalo primero.

Respuestas rápidas

¿Necesito Votifier en algún caso?

No. El modo poll (el predeterminado del plugin de VoxelRank) funciona sin instalar nada más - Votifier solo acorta el retraso entre el voto y la recompensa, y es la única vía si prefieres usar VotingPlugin, SuperVotes o SuperbVote en su lugar.

¿Puedo usar nuestro plugin y VotingPlugin a la vez?

No para la misma recompensa - elige uno para que sea el que realmente ejecute los comandos de recompensa, o un voto podría pagarse dos veces. El propio Votifier puede avisar a más de un listener, así que esto es una regla de "no configures la misma recompensa dos veces", no un límite técnico.

Mi hosting no me deja abrir puertos adicionales para Votifier.

Usa el modo poll con el plugin de VoxelRank. Solo hace peticiones salientes, así que no hay nada que abrir. VotingPlugin y plugins de recompensas similares no tienen un modo de sondeo equivalente: necesitan un puerto Votifier entrante.

¿Necesitas ayuda?

¿Te has quedado atascado en algún paso de arriba, o algo no coincide con lo que tu servidor realmente envía? Contáctanos - ahí mismo tienes las vías más rápidas para una pregunta sobre votos o recompensas.