ENGLISH
- API pública ampliada — CubixRealmsAPI expone nuevos métodos y añade el modelo
VisitDenialReasonpara que otros plugins puedan reaccionar al motivo exacto por el que se deniega la entrada a un realm.
- Expanded public API — CubixRealmsAPI exposes new methods and adds the
VisitDenialReasonmodel so third-party plugins can react to the exact reason a realm entry is denied.
26.1.x Support & World Reset Fixes
- Added full compatibility with Paper 26.1.x, which moved custom world storage from <root>/<name>/ to world/dimensions/minecraft/<name>/. World reset and delete now resolve the correct folder path regardless of Paper version.
- Fixed realm world reset not generating a new world — the old world folder was silently surviving deletion because File.delete() returns false on failure without throwing. Now uses Files.delete() with retry (×3) and session.lock release.
- Fixed realm deletion leaving world data on disk for the same reason.
- World reset now unloads with save=false and captures the folder path from the loaded World object before unloading, preventing stale path lookups.
- World folder deletion is now performed off the main thread (async) to avoid server freezes during reset.
- WorldFactory now forces a new random seed on every createOverworld / createNether call, preventing Paper from reusing metadata from a previous world of the same name.
- ClockService defers time/weather sync by 1 tick so Paper's generator does not overwrite the values during world load initialisation.
Español
Soporte 26.1.x y corrección del sistema de mundos
- Compatibilidad completa con Paper 26.1.x, que trasladó el almacenamiento de mundos custom de <raíz>/<nombre>/ a world/dimensions/minecraft/<nombre>/. El reset y el borrado de mundos ahora resuelven la ruta correcta independientemente de la versión de Paper.
- Corregido el bug por el que el reset del realm no generaba un mundo nuevo: la carpeta antigua sobrevivía al borrado en silencio porque File.delete() devuelve false sin lanzar excepción. Ahora se usa Files.delete() con reintentos (×3) y liberación del session.lock.
- Corregido el bug por el que el borrado de un realm dejaba los datos del mundo en disco, por la misma causa.
- El reset ahora descarga con save=false y captura la ruta real del mundo desde el objeto World antes de descargarlo, evitando búsquedas con rutas obsoletas.
- El borrado de carpetas de mundo se realiza fuera del hilo principal (async) para evitar congelaciones del servidor durante el reset.
- WorldFactory ahora fuerza una nueva seed aleatoria en cada llamada a createOverworld / createNether, evitando que Paper reutilice metadatos de un mundo anterior con el mismo nombre.
- ClockService retrasa la sincronización de tiempo y clima 1 tick para que el generador de Paper no sobreescriba los valores durante la inicialización de carga del mundo.
CHANGES:
- The bug with the realm leaderboard has been fixed (it now loads when entering or leaving)
- The text and messages in the user interface have been updated
- Visual adjustments have been made to the main menus
- The internal code has been debugged and reorganized
