Envío de Notificaciones en Hytale

Hytale: Guías, Mods, Opiniones | Videojuegos en CIBERED

Con tu plugin, puedes enviar notificaciones a jugadores que aparecen de manera similar a la notificación de recogida de ítems en Hytale.

Explorando el Código de HytaleServer.jar

Estructura de una Notificación

Una notificación se compone de tres elementos principales:

  1. Mensaje Primario (Primary Message)
    El mensaje principal que aparece en la notificación.

  2. Mensaje Secundario (Secondary Message)
    Mensaje adicional que se muestra debajo del principal.

  3. Icono (Icon)
    Un ícono de ítem que representa visualmente la notificación, mostrado a la izquierda.


Enviando Notificaciones

Para enviar notificaciones, utiliza la clase NotificationUtil. Necesitarás acceder al PacketHandler del jugador, que se obtiene desde el PlayerRef mediante getPacketHandler().

Ejemplo completo usando el evento PlayerReadyEvent:

public static void onPlayerReady(PlayerReadyEvent event) {
    var player = event.getPlayer();

    // Obtener la referencia del jugador
    var playerRef = Universe.get().getPlayer(player.getUuid());
    var packetHandler = playerRef.getPacketHandler();

    // Mensajes de la notificación
    var primaryMessage = Message.raw("¡FUNCIONA!").color("#00FF00");
    var secondaryMessage = Message.raw("Este es el mensaje secundario").color("#228B22");

    // Icono representando la notificación
    var icon = new ItemStack("Weapon_Sword_Mithril", 1).toPacket();

    // Enviar la notificación
    NotificationUtil.sendNotification(
        packetHandler,
        primaryMessage,
        secondaryMessage,
        (ItemWithAllMetadata) icon
    );
}

Notas

  • El PacketHandler es necesario para enviar cualquier notificación individual al jugador.
  • Los mensajes utilizan la clase Message, lo que permite colores hexadecimales y estilos de texto.
  • El icono debe ser un ItemStack convertido a Packet (toPacket()) y casteado a ItemWithAllMetadata.
  • Puedes usar esta técnica para notificaciones de logros, recompensas, mensajes de sistema o alertas personalizadas.