✅ Solución: Ejecutar el código en el hilo principal con Bukkit.getScheduler() ✅ Corrección aplicada:
El evento UserDataRecalculateEvent ahora se ejecuta de manera segura en el hilo principal con Bukkit.getScheduler().runTask(this, () -> updatePlayerTag(player));
⚡ Esto evita el NullPointerException causado por manipular el scoreboard en un hilo asíncrono.