Con tu plugin, puedes enviar notificaciones a jugadores que aparecen de manera similar a la notificación de recogida de ítems en Hytale.
Estructura de una Notificación
Una notificación se compone de tres elementos principales:
Mensaje Primario (
Primary Message)
El mensaje principal que aparece en la notificación.Mensaje Secundario (
Secondary Message)
Mensaje adicional que se muestra debajo del principal.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
ItemStackconvertido aPacket(toPacket()) y casteado aItemWithAllMetadata. - Puedes usar esta técnica para notificaciones de logros, recompensas, mensajes de sistema o alertas personalizadas.
