HyVote – Votifier MC Fork (NuVotifier)

HyVote – Votifier MC Fork (NuVotifier)

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:

    DiscordWhitelist

    DiscordWhitelist

    #Bot#Configuración#Discord

    Hytale Discord Whitelist Mod para servidores de Hytale para poner en la lista blanca a los usuarios utilizando un código...

    Naqevl’s PickBlock

    Naqevl’s PickBlock

    #Configuración#Hytale#Mod

    🖱️ Plugin PickBlock de Naqevl Te permite seleccionar el bloque que estás mirando en Hytale haciendo clic con el botón d...

    Admin Portals

    Admin Portals

    #Admin Portals#Configuración#Gestión de Portales

    HiWire &#8211; AdminPortals v0.1.0 Un plugin de gestión de portales personalizado para Hytale en modo un jugador y multi...

    [MultiPlace] RPCommands

    [MultiPlace] RPCommands

    #comandos#Configuración#Instalación

    RPCommands es un modo ligero para agregar comandos de rol ⌨️ Comandos /me /try /do ⚙️ Configuración (config.json) { &#82...

    MAC (ModList And Config)

    MAC (ModList And Config)

    #Configuración#Hytale#MAC (Lista de Mods y Configuración)

    MAC añade una lista de mods en el juego con metadatos ricos y un editor de configuración al que otros plugins pueden acc...

    Push and Pull Entities

    Push and Pull Entities

    #Configuración#empujar#Empujar y Tirar Entidades

    Este MOD es (públicamente) experimental. Es una implementación rudimentaria de empujar y tirar entidades. Puede que se a...