HyVote – Votifier & Rewards (NuVotifier Voting Vote Listener)

HyVote – Votifier & Rewards (NuVotifier Voting Vote Listener)

Por rixafy 18 de enero de 2026
#Configuración#Desarrollo#gaming#Hytale#HyVote - Votifier MC Fork (NuVotifier)#plugin#recompensas#servidores#votación

🗳️ HyVote

Un potente plugin de Hytale que recompensa a los jugadores por votar en listas de servidores utilizando el protocolo Votifier V2.

image

✨ Características

  • 🎁 Comandos de Recompensa – Ejecuta cualquier comando del servidor cuando los jugadores votan
  • 📢 Mensajes de Difusión – Anuncia los votos a todos los jugadores en línea con múltiples mensajes
  • 🎨 Soporte de Color – Formateo completo de colores con etiquetas de TaleMessage (<green>, <gold>, <aqua>, etc.)
  • 🔔 Notificaciones de Voto – Envía notificaciones en la interfaz de usuario del juego a los votantes
  • 🔊 Sonidos Personalizados – Reproduce sonidos cuando los jugadores reciben recompensas por votar
  • 🔗 Menú de Voto – El comando /vote abre una interfaz gráfica con enlaces de sitios de votación clicables
  • 🔐 Protocolo Seguro – Votifier V2 con autenticación HMAC-SHA256
  • 🎯 Sistema de EventosVoteReceivedEvent para que otros plugins se integren
  • 🔧 Modo de Depuración – Registro detallado para solucionar problemas

📦 Instalación

  • Descarga HyVote-1.0.0.jar
  • Colócalo en la carpeta mods de tu servidor Hytale
  • Inicia/reinicia tu servidor
  • Configura el plugin en mods/Hytalist_HyVote/
  • ⚙️ Configuración

    image

    📄 config.json

    Archivo de configuración principal para el servidor Votifier y las recompensas.

    {
      "Port": 8192,
      "Host": "0.0.0.0",
      "Token": "token-seguro-generado-automáticamente",
      "RewardCommands": [
        "give {player} Rock_Gem_Diamond --quantity 1",
        "give {player} Rock_Gem_Emerald --quantity 5"
      ],
      "BroadcastMessage": true,
      "BroadcastMessages": [
        "<green>{player}</green> <gray>ha votado en</gray> <aqua>{service}</aqua><gray>!</gray>",
        "<gold>¡Vota por el servidor para recibir recompensas increíbles!</gold>"
      ],
      "DebugMode": false
    }

    Opciones

    • Puerto – Puerto para el servidor Votifier (entero, por defecto: 8192)
    • Host – Dirección del host a la que enlazar (cadena, por defecto: “0.0.0.0”)
    • Token – Token de autenticación generado automáticamente para los sitios de votación (cadena)
    • ComandosDeRecompensa – Comandos ejecutados cuando un jugador vota (array de cadenas)
    • MensajeDeDifusión – Habilitar/deshabilitar la difusión de votos (true/false)
    • MensajesDeDifusión – Mensajes enviados a todos los jugadores cuando alguien vota (array de cadenas)
    • ModoDeDepuración – Habilitar registro detallado (true/false)

    🏷️ Marcadores de posición

    Utiliza estos en comandos de recompensa y mensajes de difusión:

    • {player} – Nombre de usuario del jugador que votó
    • {service} – Nombre del servicio de votación
    • {address} – Dirección IP del votante
    • {timestamp} – Marca de tiempo Unix del voto

    🔔 notification.json

    image

    Configura la notificación en el juego y el sonido cuando un jugador vota.

    {
      "UI": {
        "Enabled": true,
        "Title": "<green>¡Voto Recibido!</green>",
        "Description": "<gray>¡Gracias por tu voto en</gray> <aqua>{service}</aqua><gray>!</gray>",
        "IconItem": "Rock_Gem_Diamond"
      },
      "Sound": {
        "Enabled": true,
        "Name": "SFX_Player_Pickup_Item"
      }
    }

    Opciones de UI

    • Enabled – Mostrar ventana emergente de notificación (true/false)
    • Title – Título de la notificación, soporta colores (cadena)
    • Description – Descripción de la notificación, soporta colores y marcadores de posición (cadena)
    • IconItem – Icono del ítem a mostrar (cadena)

    Opciones de Sonido

    • Enabled – Reproducir sonido al votar (true/false)
    • Name – Nombre del evento de sonido, por ejemplo SFX_Player_Pickup_Item (cadena)

    🔗 voteCommand.json

    image

    image

    Configura el comando /vote y los enlaces de los sitios de votación. Puedes alternar entre UI, Chat o ambos.

    {
      "Enabled": true,
      "VoteLinks": {
        "Hytalist.com": "https://hytalist.com/test-server?nick={player}",
        "AnotherServerList": "https://example.com"
      },
      "UI": {
        "Enabled": true,
        "Title": "Vota por el Servidor",
        "VoteLinkTitle": "Enlace de Voto (Copia y abre en el Navegador)",
        "VoteLinkDescription": "Haz clic en un sitio arriba para ver el enlace de voto"
      },
      "Chat": {
        "Enabled": true,
        "Header": "<gray>========== <green>Enlaces de Voto</green> ==========</gray>",
        "Format": "<aqua>{siteName}</aqua><gray>:</gray> <white><click:{siteUrl}>{siteUrl}</click></white>",
        "Footer": "<gray>===================================</gray>"
      }
    }

    Opciones

    • Enabled – Habilitar/deshabilitar completamente el comando /vote (true/false)
    • VoteLinks – Mapa de nombres de sitios a URLs de voto (objeto)

    Opciones de UI

    • Enabled – Mostrar la GUI de voto (true/false)
    • Title – Título mostrado en la parte superior de la GUI (cadena)
    • VoteLinkTitle – Etiqueta encima del campo de texto de URL (cadena)
    • VoteLinkDescription – Texto de marcador de posición en el campo de URL antes de la selección (cadena)

    Opciones de Chat

    • Enabled – Enviar enlaces de voto al chat (true/false)
    • Header – Mensaje mostrado antes de los enlaces, soporta colores (cadena)
    • Format – Formato para cada enlace utilizando los marcadores de posición {siteName} y {siteUrl} (cadena)
    • Footer – Mensaje mostrado después de los enlaces, soporta colores (cadena)

    El marcador de posición {player} en las URLs será reemplazado por el nombre de usuario del jugador.

    🎨 Formateo de Color

    image

    HyVote utiliza TaleMessage para el formateo de colores. Etiquetas disponibles:

    <black>, <dark_blue>, <dark_green>, <dark_aqua>, <dark_red>, <dark_purple>, <gold>, <gray>, <dark_gray>, <blue>, <green>, <aqua>, <red>, <light_purple>, <yellow>, <white>

    Ejemplo:

    <green>{player}</green> <gray>ha votado en</gray> <gold>{service}</gold><gray>!</gray>

    ¡Incluso puedes hacer colores de arcoíris! Ejemplo:

    <gradient:red:yellow:green:blue:purple>¡Arcoíris!</gradient>

    🌐 Configurando Sitios de Voto

  • Obtén tu token de config.json (generado automáticamente en la primera ejecución)

  • Configura tu lista de servidores con:

    • IP/Host: La IP de tu servidor
    • Puerto: 8192 (o tu puerto configurado)
    • Token: Copia de config.json
    • Protocolo: Votifier V2
  • Prueba la configuración habilitando DebugMode y votando

  • 👨‍💻 Para Desarrolladores

    VoteReceivedEvent

    Escucha eventos de voto de otros plugins:

    override fun setup() {
        eventRegistry.register(VoteReceivedEvent::class.java, this::onVote)
    }
    
    private fun onVote(event: VoteReceivedEvent) {
        val vote = event.vote
    
        // Obtener información del voto
        val player = vote.username
        val service = vote.serviceName
    
        // Cancelar recompensas predeterminadas
        event.setCancelled(true)
    
        // Manejar con lógica personalizada
    }

    🔧 Solución de Problemas

    Votos no recibidos

  • ✅ Habilita DebugMode en config.json
  • ✅ Verifica el firewall – asegúrate de que el puerto de Votifier esté abierto
  • ✅ Verifica que el token coincida entre la configuración y el sitio de votación
  • ✅ Revisa los registros del servidor para mensajes de HyVote
  • Problemas Comunes

    • “Firma inválida” – Desajuste de token, verifica el token en el sitio de votación
    • “Desajuste de desafío” – Usa el protocolo Votifier V2, no V1
    • “Sin respuesta” – Verifica la configuración de firewall/puerto

    🏗️ Compilando desde la Fuente

    ./gradlew clean jar

    Salida: build/libs/HyVote-1.0.0.jar

    📋 Requisitos

    • Servidor Hytale
    • Java 21+

    📜 Licencia

    Licencia MIT – consulta el archivo LICENSE.

    🙏 Créditos

    • Protocolo basado en la especificación de NuVotifier
    • Formateo de color impulsado por TaleMessage

    Hecho con ❤️ para la comunidad de Hytale

    Relacionados:

    Extra Information

    Extra Information

    #Configuración#HUD#Hytale

    Un mod de Hytale que proporciona a los jugadores información esencial del juego mostrada como elementos de HUD personali...

    Better Stacking

    Better Stacking

    #apilamiento#Configuración#Hytale

    Con este mod, puedes ajustar el flujo del inventario para enrutar automáticamente los objetos recogidos o pilas completa...

    PWI (Per-World Inventory)

    PWI (Per-World Inventory)

    #Configuración#Hytale#Inventario

    ¿Necesitas soporte? ¡Únete al Discord! Inventario por Mundo ¡Inventarios separados para diferentes mundos! Mantén tu equ...

    Voyager’s Veinminer

    Voyager’s Veinminer

    #Configuración#Herramientas#Hytale

    ¡Minas toda una veta de mineral a la vez manteniendo una tecla mientras minas! No más clics en cada bloque de mineral in...

    SmileGuy’s Your Taking Too Long

    SmileGuy’s Your Taking Too Long

    #Configuración#Hytale#Jackenstein

    Este mod añade una probabilidad de 1/1000 cada segundo para que Jackenstein aparezca y diga algo.   Características Siet...

    Headstart

    Headstart

    #comandos#Configuración#Headstart

    Headstart es un mod de Hytale que te permite personalizar la experiencia inicial para un jugador. Dependiendo de la conf...