Initial loading of the pwarps.yml file:
If the file does not exist, it is created empty (it was implemented but was failing).
Automatically saving after every change:
To avoid data loss, every time a warp is added or removed, changes are saved immediately. It is also saved when the server stops or restarts.
Changes in the management of the pwarps.
Español:
Carga inicial del archivo pwarps.yml:
Si el archivo no existe, se crea vacío (estaba implementado pero fallaba).
Guardar automáticamente después de cada cambio:
Para evitar pérdida de datos, cada vez que se agrega o elimina un warp, los cambios se guardan inmediatamente. También se guarda al parar o reiniciar el servidor.
Warp Persistence: An improvement was implemented so that player warps are not saved to the pwarps.yml file until there are changes. This was achieved by using a flag (warpsChanged) to control whether the warps should be saved. As a result, the file is only updated when something is actually modified, optimizing performance and avoiding unnecessary writes.
Saving and Loading Warps: A method was introduced to load the warps from the pwarps.yml file when the plugin is enabled. The file is loaded using Bukkit's YamlConfiguration class, where we iterate over the keys corresponding to each player and store their warp locations in an in-memory map.
Similarly, saving the warps is done only if there has been a change (marked by the warpsChanged flag). This ensures that the file is not overwritten unnecessarily during the plugin's lifecycle.
Optimization with Conditional Saving: To ensure that changes are not saved to the file every time a player sets or removes a warp, a periodic check system was used to save the warps only if the flag indicates a change. This task is run periodically (in this case every 5 minutes) to avoid multiple writes to the file throughout the day.
Español:
Persistencia de los Warps: Se implementó una mejora para que los warps de los jugadores no se guarden en el archivo pwarps.yml hasta que haya cambios. Esto se hizo utilizando una bandera (warpsChanged) que controla si se deben guardar los warps. De esta forma, el archivo solo se actualiza cuando realmente se modifica algo, optimizando el rendimiento y evitando escrituras innecesarias.
Guardar y Cargar Warps: Se introdujo un método para cargar los warps desde el archivo pwarps.yml cuando el plugin se habilita. El archivo es cargado utilizando la clase YamlConfiguration de Bukkit, donde se iteran las claves correspondientes a cada jugador y se almacenan las ubicaciones de sus warps en un mapa en memoria.
De manera similar, el guardado de los warps se realiza solo si hubo un cambio (marcado por la bandera warpsChanged). Esto asegura que el archivo no se sobrescriba innecesariamente durante el ciclo de vida del plugin.
Optimización con el Guardado Condicional: Para asegurarnos de que no se guarden cambios en el archivo cada vez que un jugador establece o elimina un warp, se utilizó un sistema de verificación periódica que guarda los warps solo si la bandera indica que hubo un cambio. Esta tarea se ejecuta periódicamente (en este caso cada 5 minutos), para evitar múltiples escrituras al archivo durante el transcurso del día.
The new feature added to the PrivateWarps plugin allows you to customize the warp limits for each player based on their rank. This gives you the flexibility to set different warp limits for different player groups, such as default, vip, moderator, admin, or any other group you create.
How does it work?
In the config.yml file, you can define the ranks and the warp limits for each one. This is done very easily, and you can create as many ranks as you want, assigning a maximum number of warps to each one.
Example configuration in config.yml:
# Warp limit by rank
warps_limit:
default: 2 # The 'default' group has a limit of 2 warps
vip: 5 # The 'vip' group has a limit of 5 warps
moderator: 10 # The 'moderator' group has a limit of 10 warps
admin: 20 # The 'admin' group has a limit of 20 warps
builder: 3 # The 'builder' group has a limit of 3 warps
How to add more ranks?
Simply add more lines in the warps_limit block following the same format: rank_name: warp_limit. You can create as many ranks as needed based on your server's requirements.
Español:
La nueva función que se ha añadido al plugin PrivateWarps permite personalizar el límite de warps permitidos para cada jugador según su rango. Esto te da la flexibilidad de establecer límites diferentes de warps para distintos grupos de jugadores, como default, vip, moderator, admin o cualquier otro grupo que crees.
¿Cómo funciona?
Dentro del archivo config.yml, puedes definir los rangos y los límites de warps permitidos para cada uno. Esto se hace de manera muy sencilla, y puedes crear tantos rangos como desees, asignando un número máximo de warps a cada uno.
Ejemplo de configuración en config.yml:
# Límite de warps por rango
warps_limit:
default: 2 # El grupo 'default' tiene un límite de 2 warps
vip: 5 # El grupo 'vip' tiene un límite de 5 warps
moderator: 10 # El grupo 'moderator' tiene un límite de 10 warps
admin: 20 # El grupo 'admin' tiene un límite de 20 warps
builder: 3 # El grupo 'builder' tiene un límite de 3 warps
¿Cómo añadir más rangos?
Simplemente añade más líneas en el bloque warps_limit siguiendo el mismo formato nombre_del_rango: limite_de_warps. Puedes crear tantos rangos como desees según las necesidades de tu servidor.
A new /pwarpreload command has been added to reload the plugin configuration, including message settings and the warp limit, without needing to restart the server.
The maximum number of warps a player can create can now be configured directly in the config.yml file.
You can now customize the plugin messages (including language and other texts) directly from the configuration file, giving you greater flexibility to adapt it to your server's needs.